kernel: bump 5.10 to 5.10.219

Removed upstreamed:
   bcm27xx/patches-5.10/950-0006-smsx95xx-fix-crimes-against-truesize.patch
   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=c3dc80f63326261fc991ac87a79d82a2e138bbb9

Link: https://github.com/openwrt/openwrt/pull/15843
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Hauke Mehrtens 2024-06-29 18:44:24 +02:00
parent 7b8ccbd37c
commit c54d411ca6
38 changed files with 100 additions and 147 deletions

View File

@ -1,2 +1,2 @@
LINUX_VERSION-5.10 = .218
LINUX_KERNEL_HASH-5.10.218 = 9c36b243e8c3ec1d5963366618f336710b84340bf95be2037b26c452392cb2d6
LINUX_VERSION-5.10 = .219
LINUX_KERNEL_HASH-5.10.219 = 93b73f15cc376463e6422cce09ccd9d0a20fb113921ffebddf3352c44d84cd30

View File

@ -1,47 +0,0 @@
From dbfae4876cd4c8525a0100f19307f16cf7fb384a Mon Sep 17 00:00:00 2001
From: Steve Glendinning <steve.glendinning@smsc.com>
Date: Thu, 19 Feb 2015 18:47:12 +0000
Subject: [PATCH] smsx95xx: fix crimes against truesize
smsc95xx is adjusting truesize when it shouldn't, and following a recent patch from Eric this is now triggering warnings.
This patch stops smsc95xx from changing truesize.
Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
---
drivers/net/usb/smsc95xx.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -68,6 +68,10 @@ static bool turbo_mode = true;
module_param(turbo_mode, bool, 0644);
MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
+static bool truesize_mode = false;
+module_param(truesize_mode, bool, 0644);
+MODULE_PARM_DESC(truesize_mode, "Report larger truesize value");
+
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
@@ -1861,7 +1865,8 @@ static int smsc95xx_rx_fixup(struct usbn
if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(skb);
skb_trim(skb, skb->len - 4); /* remove fcs */
- skb->truesize = size + sizeof(struct sk_buff);
+ if (truesize_mode)
+ skb->truesize = size + sizeof(struct sk_buff);
return 1;
}
@@ -1879,7 +1884,8 @@ static int smsc95xx_rx_fixup(struct usbn
if (dev->net->features & NETIF_F_RXCSUM)
smsc95xx_rx_csum_offload(ax_skb);
skb_trim(ax_skb, ax_skb->len - 4); /* remove fcs */
- ax_skb->truesize = size + sizeof(struct sk_buff);
+ if (truesize_mode)
+ ax_skb->truesize = size + sizeof(struct sk_buff);
usbnet_skb_return(dev, ax_skb);
}

View File

@ -11,9 +11,9 @@ See: http://forum.kodi.tv/showthread.php?tid=285288
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -72,6 +72,10 @@ static bool truesize_mode = false;
module_param(truesize_mode, bool, 0644);
MODULE_PARM_DESC(truesize_mode, "Report larger truesize value");
@@ -68,6 +68,10 @@ static bool turbo_mode = true;
module_param(turbo_mode, bool, 0644);
MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
+static int packetsize = 2560;
+module_param(packetsize, int, 0644);
@ -22,7 +22,7 @@ See: http://forum.kodi.tv/showthread.php?tid=285288
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
@@ -920,13 +924,13 @@ static int smsc95xx_reset(struct usbnet
@@ -916,13 +920,13 @@ static int smsc95xx_reset(struct usbnet
if (!turbo_mode) {
burst_cap = 0;

View File

@ -18,7 +18,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
struct smsc95xx_priv {
u32 mac_cr;
@@ -76,6 +77,10 @@ static int packetsize = 2560;
@@ -72,6 +73,10 @@ static int packetsize = 2560;
module_param(packetsize, int, 0644);
MODULE_PARM_DESC(packetsize, "Override the RX URB packet size");
@ -29,7 +29,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
u32 *data, int in_pm)
{
@@ -776,6 +781,53 @@ static int smsc95xx_ioctl(struct net_dev
@@ -772,6 +777,53 @@ static int smsc95xx_ioctl(struct net_dev
return phy_mii_ioctl(netdev->phydev, rq, cmd);
}
@ -83,7 +83,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
static void smsc95xx_init_mac_address(struct usbnet *dev)
{
/* maybe the boot loader passed the MAC address in devicetree */
@@ -798,6 +850,10 @@ static void smsc95xx_init_mac_address(st
@@ -794,6 +846,10 @@ static void smsc95xx_init_mac_address(st
}
}

View File

@ -27,7 +27,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -32,6 +32,8 @@ struct rpi_firmware {
@@ -33,6 +33,8 @@ struct rpi_firmware {
struct kref consumers;
};
@ -36,7 +36,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
static DEFINE_MUTEX(transaction_lock);
static void response_callback(struct mbox_client *cl, void *msg)
@@ -280,6 +282,7 @@ static int rpi_firmware_probe(struct pla
@@ -281,6 +283,7 @@ static int rpi_firmware_probe(struct pla
kref_init(&fw->consumers);
platform_set_drvdata(pdev, fw);
@ -44,7 +44,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
rpi_firmware_print_firmware_revision(fw);
rpi_register_hwmon_driver(dev, fw);
@@ -309,6 +312,8 @@ static int rpi_firmware_remove(struct pl
@@ -310,6 +313,8 @@ static int rpi_firmware_remove(struct pl
rpi_firmware_put(fw);
@ -53,7 +53,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
return 0;
}
@@ -322,7 +327,7 @@ static int rpi_firmware_remove(struct pl
@@ -323,7 +328,7 @@ static int rpi_firmware_remove(struct pl
*/
struct rpi_firmware *rpi_firmware_get(struct device_node *firmware_node)
{
@ -62,7 +62,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
struct rpi_firmware *fw;
if (!pdev)
@@ -335,12 +340,9 @@ struct rpi_firmware *rpi_firmware_get(st
@@ -336,12 +341,9 @@ struct rpi_firmware *rpi_firmware_get(st
if (!kref_get_unless_zero(&fw->consumers))
goto err_put_device;
@ -75,7 +75,7 @@ Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
return NULL;
}
EXPORT_SYMBOL_GPL(rpi_firmware_get);
@@ -382,7 +384,18 @@ static struct platform_driver rpi_firmwa
@@ -383,7 +385,18 @@ static struct platform_driver rpi_firmwa
.shutdown = rpi_firmware_shutdown,
.remove = rpi_firmware_remove,
};

View File

@ -13,7 +13,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -46,7 +46,7 @@ static void response_callback(struct mbo
@@ -47,7 +47,7 @@ static void response_callback(struct mbo
* Sends a request to the firmware through the BCM2835 mailbox driver,
* and synchronously waits for the reply.
*/
@ -22,7 +22,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
rpi_firmware_transaction(struct rpi_firmware *fw, u32 chan, u32 data)
{
u32 message = MBOX_MSG(chan, data);
@@ -71,6 +71,7 @@ rpi_firmware_transaction(struct rpi_firm
@@ -72,6 +72,7 @@ rpi_firmware_transaction(struct rpi_firm
return ret;
}

View File

@ -13,7 +13,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -12,6 +12,7 @@
@@ -13,6 +13,7 @@
#include <linux/module.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
@ -21,7 +21,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
#include <linux/slab.h>
#include <soc/bcm2835/raspberrypi-firmware.h>
@@ -180,6 +181,26 @@ int rpi_firmware_property(struct rpi_fir
@@ -181,6 +182,26 @@ int rpi_firmware_property(struct rpi_fir
}
EXPORT_SYMBOL_GPL(rpi_firmware_property);
@ -48,7 +48,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
static void
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
{
@@ -386,15 +407,32 @@ static struct platform_driver rpi_firmwa
@@ -387,15 +408,32 @@ static struct platform_driver rpi_firmwa
.remove = rpi_firmware_remove,
};

View File

@ -16,7 +16,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -29,6 +29,7 @@ struct rpi_firmware {
@@ -30,6 +30,7 @@ struct rpi_firmware {
struct mbox_chan *chan; /* The property channel. */
struct completion c;
u32 enabled;
@ -24,7 +24,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
struct kref consumers;
};
@@ -177,6 +178,12 @@ int rpi_firmware_property(struct rpi_fir
@@ -178,6 +179,12 @@ int rpi_firmware_property(struct rpi_fir
kfree(data);
@ -37,7 +37,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
return ret;
}
EXPORT_SYMBOL_GPL(rpi_firmware_property);
@@ -201,6 +208,27 @@ static int rpi_firmware_notify_reboot(st
@@ -202,6 +209,27 @@ static int rpi_firmware_notify_reboot(st
return 0;
}
@ -65,7 +65,7 @@ Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
static void
rpi_firmware_print_firmware_revision(struct rpi_firmware *fw)
{
@@ -230,6 +258,11 @@ rpi_register_hwmon_driver(struct device
@@ -231,6 +259,11 @@ rpi_register_hwmon_driver(struct device
rpi_hwmon = platform_device_register_data(dev, "raspberrypi-hwmon",
-1, NULL, 0);

View File

@ -27,7 +27,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -234,6 +234,15 @@ rpi_firmware_print_firmware_revision(str
@@ -235,6 +235,15 @@ rpi_firmware_print_firmware_revision(str
{
time64_t date_and_time;
u32 packet;
@ -43,7 +43,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
int ret = rpi_firmware_property(fw,
RPI_FIRMWARE_GET_FIRMWARE_REVISION,
&packet, sizeof(packet));
@@ -243,7 +252,35 @@ rpi_firmware_print_firmware_revision(str
@@ -244,7 +253,35 @@ rpi_firmware_print_firmware_revision(str
/* This is not compatible with y2038 */
date_and_time = packet;
@ -80,7 +80,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
}
static void
@@ -340,6 +377,7 @@ static int rpi_firmware_probe(struct pla
@@ -341,6 +378,7 @@ static int rpi_firmware_probe(struct pla
g_pdev = pdev;
rpi_firmware_print_firmware_revision(fw);

View File

@ -36,7 +36,7 @@ Co-authored-by: Phil Elwell <phil@raspberrypi.org>
MODULE_DESCRIPTION("BCM2835 clock driver");
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -498,7 +498,7 @@ out2:
@@ -499,7 +499,7 @@ out2:
out1:
return ret;
}

View File

@ -32,7 +32,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -3340,6 +3340,7 @@ static int __spi_validate_bits_per_word(
@@ -3344,6 +3344,7 @@ static int __spi_validate_bits_per_word(
*/
int spi_setup(struct spi_device *spi)
{
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
unsigned bad_bits, ugly_bits;
int status;
@@ -3357,6 +3358,14 @@ int spi_setup(struct spi_device *spi)
@@ -3361,6 +3362,14 @@ int spi_setup(struct spi_device *spi)
(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL |
SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL)))
return -EINVAL;

View File

@ -12,7 +12,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1488,9 +1488,6 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1490,9 +1490,6 @@ static int vc4_hdmi_cec_init(struct vc4_
u32 value;
int ret;
@ -22,7 +22,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
vc4_hdmi->cec_adap = cec_allocate_adapter(&vc4_hdmi_cec_adap_ops,
vc4_hdmi,
vc4_hdmi->variant->card_name,
@@ -1924,7 +1921,6 @@ static const struct vc4_hdmi_variant bcm
@@ -1926,7 +1923,6 @@ static const struct vc4_hdmi_variant bcm
.debugfs_name = "hdmi_regs",
.card_name = "vc4-hdmi",
.max_pixel_clock = 162000000,

View File

@ -94,7 +94,7 @@ Signed-off-by: Matthias Reichl <hias@horus.com>
};
static const struct snd_soc_dapm_widget vc4_hdmi_audio_widgets[] = {
@@ -1306,6 +1361,11 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1308,6 +1363,11 @@ static int vc4_hdmi_audio_init(struct vc
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
vc4_hdmi->audio.dma_data.maxburst = 2;

View File

@ -29,7 +29,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
return 0;
}
@@ -1738,6 +1744,7 @@ static int vc5_hdmi_init_resources(struc
@@ -1740,6 +1746,7 @@ static int vc5_hdmi_init_resources(struc
struct platform_device *pdev = vc4_hdmi->pdev;
struct device *dev = &pdev->dev;
struct resource *res;
@ -37,7 +37,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi");
if (!res)
@@ -1828,6 +1835,38 @@ static int vc5_hdmi_init_resources(struc
@@ -1830,6 +1837,38 @@ static int vc5_hdmi_init_resources(struc
return PTR_ERR(vc4_hdmi->reset);
}

View File

@ -20,7 +20,7 @@ mechanism to be implemented for OS upgrades.
--- a/drivers/firmware/raspberrypi.c
+++ b/drivers/firmware/raspberrypi.c
@@ -194,6 +194,7 @@ static int rpi_firmware_notify_reboot(st
@@ -195,6 +195,7 @@ static int rpi_firmware_notify_reboot(st
{
struct rpi_firmware *fw;
struct platform_device *pdev = g_pdev;
@ -28,7 +28,7 @@ mechanism to be implemented for OS upgrades.
if (!pdev)
return 0;
@@ -202,8 +203,28 @@ static int rpi_firmware_notify_reboot(st
@@ -203,8 +204,28 @@ static int rpi_firmware_notify_reboot(st
if (!fw)
return 0;

View File

@ -201,7 +201,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5642,17 +5642,19 @@ static void dm_update_crtc_active_planes
@@ -5643,17 +5643,19 @@ static void dm_update_crtc_active_planes
}
static int dm_crtc_helper_atomic_check(struct drm_crtc *crtc,
@ -225,7 +225,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201028123222.1732139-1-max
WARN_ON(1);
return ret;
}
@@ -5663,8 +5665,8 @@ static int dm_crtc_helper_atomic_check(s
@@ -5664,8 +5666,8 @@ static int dm_crtc_helper_atomic_check(s
* planes are disabled, which is not supported by the hardware. And there is legacy
* userspace which stops using the HW cursor altogether in response to the resulting EINVAL.
*/

View File

@ -27,7 +27,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
value |= clk_cnt << VC4_HDMI_CEC_DIV_CLK_CNT_SHIFT;
HDMI_WRITE(HDMI_CEC_CNTRL_1, value);
}
@@ -1871,6 +1871,7 @@ static int vc4_hdmi_init_resources(struc
@@ -1873,6 +1873,7 @@ static int vc4_hdmi_init_resources(struc
return PTR_ERR(vc4_hdmi->hsm_clock);
}
vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock;
@ -35,7 +35,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
}
@@ -1965,6 +1966,12 @@ static int vc5_hdmi_init_resources(struc
@@ -1967,6 +1968,12 @@ static int vc5_hdmi_init_resources(struc
return PTR_ERR(vc4_hdmi->audio_clock);
}

View File

@ -19,7 +19,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1575,15 +1575,22 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1577,15 +1577,22 @@ static int vc4_hdmi_audio_init(struct vc
}
#ifdef CONFIG_DRM_VC4_HDMI_CEC
@ -48,7 +48,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
cec_transmit_done(vc4_hdmi->cec_adap, CEC_TX_STATUS_OK,
0, 0, 0, 0);
} else {
@@ -1597,6 +1604,19 @@ static irqreturn_t vc4_cec_irq_handler_t
@@ -1599,6 +1606,19 @@ static irqreturn_t vc4_cec_irq_handler_t
return IRQ_HANDLED;
}
@ -68,7 +68,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
static void vc4_cec_read_msg(struct vc4_hdmi *vc4_hdmi, u32 cntrl1)
{
struct drm_device *dev = vc4_hdmi->connector.dev;
@@ -1621,31 +1641,55 @@ static void vc4_cec_read_msg(struct vc4_
@@ -1623,31 +1643,55 @@ static void vc4_cec_read_msg(struct vc4_
}
}

View File

@ -20,7 +20,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1726,9 +1726,11 @@ static int vc4_hdmi_cec_adap_enable(stru
@@ -1728,9 +1728,11 @@ static int vc4_hdmi_cec_adap_enable(stru
((3600 / usecs) << VC4_HDMI_CEC_CNT_TO_3600_US_SHIFT) |
((3500 / usecs) << VC4_HDMI_CEC_CNT_TO_3500_US_SHIFT));
@ -34,7 +34,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
HDMI_WRITE(HDMI_CEC_CNTRL_5, val |
VC4_HDMI_CEC_TX_SW_RESET | VC4_HDMI_CEC_RX_SW_RESET);
}
@@ -1801,8 +1803,6 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1803,8 +1805,6 @@ static int vc4_hdmi_cec_init(struct vc4_
cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector);
cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info);
@ -43,7 +43,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
value = HDMI_READ(HDMI_CEC_CNTRL_1);
/* Set the logical address to Unregistered */
value |= VC4_HDMI_CEC_ADDR_MASK;
@@ -1810,12 +1810,32 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1812,12 +1812,32 @@ static int vc4_hdmi_cec_init(struct vc4_
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
@ -82,7 +82,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
if (ret < 0)
@@ -2290,6 +2310,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2292,6 +2312,7 @@ static const struct vc4_hdmi_variant bcm
PHY_LANE_CK,
},
.unsupported_odd_h_timings = true,
@ -90,7 +90,7 @@ Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
.init_resources = vc5_hdmi_init_resources,
.csc_setup = vc5_hdmi_csc_setup,
@@ -2316,6 +2337,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2318,6 +2339,7 @@ static const struct vc4_hdmi_variant bcm
PHY_LANE_2,
},
.unsupported_odd_h_timings = true,

View File

@ -19,7 +19,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1788,9 +1788,15 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1790,9 +1790,15 @@ static int vc4_hdmi_cec_init(struct vc4_
{
struct cec_connector_info conn_info;
struct platform_device *pdev = vc4_hdmi->pdev;

View File

@ -61,7 +61,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
}
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
@@ -2300,6 +2325,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2302,6 +2327,7 @@ static const struct vc4_hdmi_variant bcm
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
.channel_map = vc4_hdmi_channel_map,
@ -69,7 +69,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
};
static const struct vc4_hdmi_variant bcm2711_hdmi0_variant = {
@@ -2327,6 +2353,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2329,6 +2355,7 @@ static const struct vc4_hdmi_variant bcm
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
.channel_map = vc5_hdmi_channel_map,
@ -77,7 +77,7 @@ Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
};
static const struct vc4_hdmi_variant bcm2711_hdmi1_variant = {
@@ -2354,6 +2381,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2356,6 +2383,7 @@ static const struct vc4_hdmi_variant bcm
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
.channel_map = vc5_hdmi_channel_map,

View File

@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -6568,9 +6568,7 @@ void amdgpu_dm_connector_init_helper(str
@@ -6569,9 +6569,7 @@ void amdgpu_dm_connector_init_helper(str
if (connector_type == DRM_MODE_CONNECTOR_HDMIA ||
connector_type == DRM_MODE_CONNECTOR_DisplayPort ||
connector_type == DRM_MODE_CONNECTOR_eDP) {

View File

@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5513,25 +5513,6 @@ static int fill_hdr_info_packet(const st
@@ -5514,25 +5514,6 @@ static int fill_hdr_info_packet(const st
return 0;
}
@ -47,7 +47,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static int
amdgpu_dm_connector_atomic_check(struct drm_connector *conn,
struct drm_atomic_state *state)
@@ -5547,7 +5528,7 @@ amdgpu_dm_connector_atomic_check(struct
@@ -5548,7 +5529,7 @@ amdgpu_dm_connector_atomic_check(struct
if (!crtc)
return 0;

View File

@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1691,6 +1691,46 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1693,6 +1693,46 @@ static int vc4_hdmi_audio_init(struct vc
}
@ -65,7 +65,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#ifdef CONFIG_DRM_VC4_HDMI_CEC
static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
{
@@ -2319,6 +2359,10 @@ static int vc4_hdmi_bind(struct device *
@@ -2321,6 +2361,10 @@ static int vc4_hdmi_bind(struct device *
if (ret)
goto err_destroy_encoder;

View File

@ -70,7 +70,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static void vc4_hdmi_encoder_post_crtc_disable(struct drm_encoder *encoder,
struct drm_atomic_state *state)
{
@@ -2277,6 +2301,7 @@ static int vc4_hdmi_bind(struct device *
@@ -2279,6 +2303,7 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi = devm_kzalloc(dev, sizeof(*vc4_hdmi), GFP_KERNEL);
if (!vc4_hdmi)
return -ENOMEM;

View File

@ -11,7 +11,7 @@ Signed-off-by: Dom Cobley <popcornmix@gmail.com>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1730,6 +1730,7 @@ static int vc4_hdmi_hotplug_init(struct
@@ -1732,6 +1732,7 @@ static int vc4_hdmi_hotplug_init(struct
{
struct platform_device *pdev = vc4_hdmi->pdev;
struct device *dev = &pdev->dev;

View File

@ -434,7 +434,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
const __be32 *addr;
int index, len;
int ret;
@@ -1651,11 +1508,6 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1653,11 +1510,6 @@ static int vc4_hdmi_audio_init(struct vc
vc4_hdmi->audio.dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
vc4_hdmi->audio.dma_data.maxburst = 2;
@ -446,7 +446,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = devm_snd_dmaengine_pcm_register(dev, &pcm_conf, 0);
if (ret) {
dev_err(dev, "Could not register PCM component: %d\n", ret);
@@ -1669,12 +1521,13 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1671,12 +1523,13 @@ static int vc4_hdmi_audio_init(struct vc
return ret;
}
@ -466,7 +466,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
}
dai_link->cpus = &vc4_hdmi->audio.cpu;
@@ -1687,9 +1540,9 @@ static int vc4_hdmi_audio_init(struct vc
@@ -1689,9 +1542,9 @@ static int vc4_hdmi_audio_init(struct vc
dai_link->name = "MAI";
dai_link->stream_name = "MAI PCM";

View File

@ -157,7 +157,7 @@ Signed-off-by: Joerg Quinten <aBUGSworstnightmare@gmail.com>
static const struct drm_display_mode innolux_at070tn92_mode = {
.clock = 33333,
.hdisplay = 800,
@@ -4087,6 +4119,9 @@ static const struct of_device_id platfor
@@ -4090,6 +4122,9 @@ static const struct of_device_id platfor
.compatible = "innolux,at043tn24",
.data = &innolux_at043tn24,
}, {

View File

@ -102,7 +102,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
static u32 vc4_hdmi_channel_map(struct vc4_hdmi *vc4_hdmi, u32 channel_mask)
{
int i;
@@ -2338,6 +2355,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2340,6 +2357,7 @@ static const struct vc4_hdmi_variant bcm
.phy_disable = vc4_hdmi_phy_disable,
.phy_rng_enable = vc4_hdmi_phy_rng_enable,
.phy_rng_disable = vc4_hdmi_phy_rng_disable,
@ -110,7 +110,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
.channel_map = vc4_hdmi_channel_map,
.supports_hdr = false,
};
@@ -2366,6 +2384,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2368,6 +2386,7 @@ static const struct vc4_hdmi_variant bcm
.phy_disable = vc5_hdmi_phy_disable,
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,
@ -118,7 +118,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
.channel_map = vc5_hdmi_channel_map,
.supports_hdr = true,
};
@@ -2394,6 +2413,7 @@ static const struct vc4_hdmi_variant bcm
@@ -2396,6 +2415,7 @@ static const struct vc4_hdmi_variant bcm
.phy_disable = vc5_hdmi_phy_disable,
.phy_rng_enable = vc5_hdmi_phy_rng_enable,
.phy_rng_disable = vc5_hdmi_phy_rng_disable,

View File

@ -15,7 +15,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1757,7 +1757,7 @@ static irqreturn_t vc4_cec_irq_handler(i
@@ -1759,7 +1759,7 @@ static irqreturn_t vc4_cec_irq_handler(i
return ret;
}
@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
{
struct vc4_hdmi *vc4_hdmi = cec_get_drvdata(adap);
/* clock period in microseconds */
@@ -1770,38 +1770,53 @@ static int vc4_hdmi_cec_adap_enable(stru
@@ -1772,38 +1772,53 @@ static int vc4_hdmi_cec_adap_enable(stru
val |= ((4700 / usecs) << VC4_HDMI_CEC_CNT_TO_4700_US_SHIFT) |
((4500 / usecs) << VC4_HDMI_CEC_CNT_TO_4500_US_SHIFT);

View File

@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1898,25 +1898,23 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1900,25 +1900,23 @@ static int vc4_hdmi_cec_init(struct vc4_
vc4_hdmi_cec_update_clk_div(vc4_hdmi);
if (vc4_hdmi->variant->external_irq_controller) {
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
vc4_cec_irq_handler,
vc4_cec_irq_handler_thread, 0,
"vc4 hdmi cec", vc4_hdmi);
@@ -1926,10 +1924,20 @@ static int vc4_hdmi_cec_init(struct vc4_
@@ -1928,10 +1926,20 @@ static int vc4_hdmi_cec_init(struct vc4_
ret = cec_register_adapter(vc4_hdmi->cec_adap, &pdev->dev);
if (ret < 0)
@ -77,7 +77,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
err_delete_cec_adap:
cec_delete_adapter(vc4_hdmi->cec_adap);
@@ -1938,6 +1946,15 @@ err_delete_cec_adap:
@@ -1940,6 +1948,15 @@ err_delete_cec_adap:
static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi)
{

View File

@ -25,7 +25,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1613,26 +1613,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
@@ -1615,26 +1615,28 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
static int vc4_hdmi_hotplug_init(struct vc4_hdmi *vc4_hdmi)
{
struct platform_device *pdev = vc4_hdmi->pdev;
@ -66,7 +66,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
connector->polled = DRM_CONNECTOR_POLL_HPD;
}
@@ -1640,6 +1642,16 @@ static int vc4_hdmi_hotplug_init(struct
@@ -1642,6 +1644,16 @@ static int vc4_hdmi_hotplug_init(struct
return 0;
}
@ -83,7 +83,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
#ifdef CONFIG_DRM_VC4_HDMI_CEC
static irqreturn_t vc4_cec_irq_handler_rx_thread(int irq, void *priv)
{
@@ -2307,7 +2319,7 @@ static int vc4_hdmi_bind(struct device *
@@ -2309,7 +2321,7 @@ static int vc4_hdmi_bind(struct device *
ret = vc4_hdmi_cec_init(vc4_hdmi);
if (ret)
@ -92,7 +92,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
ret = vc4_hdmi_audio_init(vc4_hdmi);
if (ret)
@@ -2321,6 +2333,8 @@ static int vc4_hdmi_bind(struct device *
@@ -2323,6 +2335,8 @@ static int vc4_hdmi_bind(struct device *
err_free_cec:
vc4_hdmi_cec_exit(vc4_hdmi);
@ -101,7 +101,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
err_destroy_conn:
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
@@ -2362,6 +2376,7 @@ static void vc4_hdmi_unbind(struct devic
@@ -2364,6 +2378,7 @@ static void vc4_hdmi_unbind(struct devic
kfree(vc4_hdmi->hd_regset.regs);
vc4_hdmi_cec_exit(vc4_hdmi);

View File

@ -24,7 +24,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -1604,7 +1604,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
@@ -1606,7 +1606,7 @@ static irqreturn_t vc4_hdmi_hpd_irq_thre
struct vc4_hdmi *vc4_hdmi = priv;
struct drm_device *dev = vc4_hdmi->connector.dev;

View File

@ -42,7 +42,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20201211114237.213288-2-tomi
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -5029,7 +5029,6 @@ static void dm_disable_vblank(struct drm
@@ -5030,7 +5030,6 @@ static void dm_disable_vblank(struct drm
static const struct drm_crtc_funcs amdgpu_dm_crtc_funcs = {
.reset = dm_crtc_reset_state,
.destroy = amdgpu_dm_crtc_destroy,

View File

@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
+++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
@@ -2297,6 +2297,18 @@ static int vc4_hdmi_bind(struct device *
@@ -2299,6 +2299,18 @@ static int vc4_hdmi_bind(struct device *
if (ret)
goto err_put_ddc;
@ -37,7 +37,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
if (vc4_hdmi->variant->reset)
vc4_hdmi->variant->reset(vc4_hdmi);
@@ -2308,8 +2320,6 @@ static int vc4_hdmi_bind(struct device *
@@ -2310,8 +2322,6 @@ static int vc4_hdmi_bind(struct device *
clk_prepare_enable(vc4_hdmi->pixel_bvb_clock);
}
@ -46,7 +46,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS);
drm_encoder_helper_add(encoder, &vc4_hdmi_encoder_helper_funcs);
@@ -2333,6 +2343,8 @@ static int vc4_hdmi_bind(struct device *
@@ -2335,6 +2345,8 @@ static int vc4_hdmi_bind(struct device *
vc4_hdmi_debugfs_regs,
vc4_hdmi);
@ -55,7 +55,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech>
return 0;
err_free_cec:
@@ -2343,6 +2355,7 @@ err_destroy_conn:
@@ -2345,6 +2357,7 @@ err_destroy_conn:
vc4_hdmi_connector_destroy(&vc4_hdmi->connector);
err_destroy_encoder:
drm_encoder_cleanup(encoder);

View File

@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -410,6 +410,9 @@ static struct pernet_operations ip_rt_pr
@@ -411,6 +411,9 @@ static struct pernet_operations ip_rt_pr
static int __init ip_rt_proc_init(void)
{

View File

@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
@@ -3346,6 +3348,7 @@ static int packet_create(struct net *net
@@ -3345,6 +3347,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
@@ -3986,6 +3989,16 @@ packet_setsockopt(struct socket *sock, i
@@ -3985,6 +3988,16 @@ packet_setsockopt(struct socket *sock, i
WRITE_ONCE(po->xmit, val ? packet_direct_xmit : dev_queue_xmit);
return 0;
}
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
default:
return -ENOPROTOOPT;
}
@@ -4042,6 +4055,13 @@ static int packet_getsockopt(struct sock
@@ -4041,6 +4054,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;

View File

@ -110,7 +110,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
return -EINVAL;
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -95,6 +95,8 @@ static int ip6_pkt_discard(struct sk_bu
@@ -96,6 +96,8 @@ static int ip6_pkt_discard(struct sk_bu
static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb);
static int ip6_pkt_prohibit(struct sk_buff *skb);
static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb);
@ -119,7 +119,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static void ip6_link_failure(struct sk_buff *skb);
static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk,
struct sk_buff *skb, u32 mtu,
@@ -310,6 +312,18 @@ static const struct rt6_info ip6_prohibi
@@ -311,6 +313,18 @@ static const struct rt6_info ip6_prohibi
.rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP),
};
@ -138,7 +138,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = {
.__refcnt = ATOMIC_INIT(1),
@@ -1031,6 +1045,7 @@ static const int fib6_prop[RTN_MAX + 1]
@@ -1032,6 +1046,7 @@ static const int fib6_prop[RTN_MAX + 1]
[RTN_BLACKHOLE] = -EINVAL,
[RTN_UNREACHABLE] = -EHOSTUNREACH,
[RTN_PROHIBIT] = -EACCES,
@ -146,7 +146,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
[RTN_THROW] = -EAGAIN,
[RTN_NAT] = -EINVAL,
[RTN_XRESOLVE] = -EINVAL,
@@ -1066,6 +1081,10 @@ static void ip6_rt_init_dst_reject(struc
@@ -1067,6 +1082,10 @@ static void ip6_rt_init_dst_reject(struc
rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit;
break;
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW:
case RTN_UNREACHABLE:
default:
@@ -4446,6 +4465,17 @@ static int ip6_pkt_prohibit_out(struct n
@@ -4450,6 +4469,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
}
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/*
* Allocate a dst for local (unicast / anycast) address.
*/
@@ -4933,7 +4963,8 @@ static int rtm_to_fib6_config(struct sk_
@@ -4937,7 +4967,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT ||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL)
@@ -6126,6 +6157,8 @@ static int ip6_route_dev_notify(struct n
@@ -6130,6 +6161,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif
@@ -6137,6 +6170,7 @@ static int ip6_route_dev_notify(struct n
@@ -6141,6 +6174,7 @@ static int ip6_route_dev_notify(struct n
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
#endif
}
@@ -6328,6 +6362,8 @@ static int __net_init ip6_route_net_init
@@ -6332,6 +6366,8 @@ static int __net_init ip6_route_net_init
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.fib6_has_custom_rules = false;
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
sizeof(*net->ipv6.ip6_prohibit_entry),
GFP_KERNEL);
@@ -6338,11 +6374,21 @@ static int __net_init ip6_route_net_init
@@ -6342,11 +6378,21 @@ static int __net_init ip6_route_net_init
ip6_template_metrics, true);
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached);
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true);
@@ -6369,6 +6415,8 @@ out:
@@ -6373,6 +6419,8 @@ out:
return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry:
@@ -6388,6 +6436,7 @@ static void __net_exit ip6_route_net_exi
@@ -6392,6 +6440,7 @@ static void __net_exit ip6_route_net_exi
kfree(net->ipv6.ip6_null_entry);
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry);
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
kfree(net->ipv6.ip6_blk_hole_entry);
#endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
@@ -6471,6 +6520,9 @@ void __init ip6_route_init_special_entri
@@ -6475,6 +6524,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);