kernel: bump 6.6 to 6.6.54
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.6 = .47
|
||||
LINUX_KERNEL_HASH-6.6.47 = d43376c9e9eaa92bb1b926054bd160d329c58a62d64bd65fe1222c11c6564f50
|
||||
LINUX_VERSION-6.6 = .54
|
||||
LINUX_KERNEL_HASH-6.6.54 = 5fae869d6a24055c16ffc2d92669e3fb2b258e34d36c850bb8cf9def417ecfa0
|
||||
|
||||
@@ -14,9 +14,9 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
@@ -68,6 +68,9 @@ mtk_wed_update_rx_stats(struct mtk_wed_d
|
||||
struct mtk_wed_wo_rx_stats *stats;
|
||||
int i;
|
||||
@@ -71,6 +71,9 @@ mtk_wed_update_rx_stats(struct mtk_wed_d
|
||||
if (!wed->wlan.update_wo_rx_stats)
|
||||
return;
|
||||
|
||||
+ if (!wed->wlan.update_wo_rx_stats)
|
||||
+ return;
|
||||
|
||||
@@ -168,7 +168,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
ext_mask |= MTK_WED_EXT_INT_STATUS_TX_DRV_R_RESP_ERR;
|
||||
else
|
||||
ext_mask |= MTK_WED_EXT_INT_STATUS_RX_FBUF_LO_TH |
|
||||
@@ -1840,7 +1840,7 @@ mtk_wed_setup_tc(struct mtk_wed_device *
|
||||
@@ -1842,7 +1842,7 @@ mtk_wed_setup_tc(struct mtk_wed_device *
|
||||
{
|
||||
struct mtk_wed_hw *hw = wed->hw;
|
||||
|
||||
@@ -177,7 +177,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
switch (type) {
|
||||
@@ -1914,9 +1914,9 @@ void mtk_wed_add_hw(struct device_node *
|
||||
@@ -1916,9 +1916,9 @@ void mtk_wed_add_hw(struct device_node *
|
||||
hw->wdma = wdma;
|
||||
hw->index = index;
|
||||
hw->irq = irq;
|
||||
@@ -221,7 +221,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
}
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
@@ -207,7 +207,7 @@ int mtk_wed_mcu_msg_update(struct mtk_we
|
||||
@@ -210,7 +210,7 @@ int mtk_wed_mcu_msg_update(struct mtk_we
|
||||
{
|
||||
struct mtk_wed_wo *wo = dev->hw->wed_wo;
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
dev_err(dev->hw->dev, "failed to attach wed device\n");
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
@@ -207,7 +207,7 @@ int mtk_wed_mcu_msg_update(struct mtk_we
|
||||
@@ -210,7 +210,7 @@ int mtk_wed_mcu_msg_update(struct mtk_we
|
||||
{
|
||||
struct mtk_wed_wo *wo = dev->hw->wed_wo;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
}
|
||||
|
||||
static struct sk_buff *
|
||||
@@ -294,18 +310,6 @@ next:
|
||||
@@ -297,18 +313,6 @@ next:
|
||||
static int
|
||||
mtk_wed_mcu_load_firmware(struct mtk_wed_wo *wo)
|
||||
{
|
||||
@@ -64,7 +64,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
const struct mtk_wed_fw_trailer *trailer;
|
||||
const struct firmware *fw;
|
||||
const char *fw_name;
|
||||
@@ -319,11 +323,6 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
@@ -322,11 +326,6 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
@@ -234,19 +234,13 @@ int mtk_wed_mcu_msg_update(struct mtk_we
|
||||
@@ -237,19 +237,13 @@ int mtk_wed_mcu_msg_update(struct mtk_we
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
if (!np)
|
||||
return -ENODEV;
|
||||
|
||||
@@ -258,7 +252,7 @@ mtk_wed_get_memory_region(struct mtk_wed
|
||||
@@ -261,7 +255,7 @@ mtk_wed_get_memory_region(struct mtk_wed
|
||||
|
||||
region->phy_addr = rmem->base;
|
||||
region->size = rmem->size;
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
return !region->addr ? -EINVAL : 0;
|
||||
}
|
||||
@@ -271,6 +265,9 @@ mtk_wed_mcu_run_firmware(struct mtk_wed_
|
||||
@@ -274,6 +268,9 @@ mtk_wed_mcu_run_firmware(struct mtk_wed_
|
||||
const struct mtk_wed_fw_trailer *trailer;
|
||||
const struct mtk_wed_fw_region *fw_region;
|
||||
|
||||
@@ -54,7 +54,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
trailer_ptr = fw->data + fw->size - sizeof(*trailer);
|
||||
trailer = (const struct mtk_wed_fw_trailer *)trailer_ptr;
|
||||
region_ptr = trailer_ptr - trailer->num_region * sizeof(*fw_region);
|
||||
@@ -318,7 +315,13 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
@@ -321,7 +318,13 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
|
||||
/* load firmware region metadata */
|
||||
for (i = 0; i < ARRAY_SIZE(mem_region); i++) {
|
||||
|
||||
@@ -142,7 +142,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
return -ENOMEM;
|
||||
|
||||
wdma_w32(dev, MTK_WDMA_RING_TX(idx) + MTK_WED_RING_OFS_BASE,
|
||||
@@ -1928,7 +1935,12 @@ void mtk_wed_add_hw(struct device_node *
|
||||
@@ -1930,7 +1937,12 @@ void mtk_wed_add_hw(struct device_node *
|
||||
hw->irq = irq;
|
||||
hw->version = eth->soc->version;
|
||||
|
||||
@@ -156,7 +156,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
hw->mirror = syscon_regmap_lookup_by_phandle(eth_np,
|
||||
"mediatek,pcie-mirror");
|
||||
hw->hifsys = syscon_regmap_lookup_by_phandle(eth_np,
|
||||
@@ -1942,6 +1954,8 @@ void mtk_wed_add_hw(struct device_node *
|
||||
@@ -1944,6 +1956,8 @@ void mtk_wed_add_hw(struct device_node *
|
||||
regmap_write(hw->mirror, 0, 0);
|
||||
regmap_write(hw->mirror, 4, 0);
|
||||
}
|
||||
|
||||
@@ -759,7 +759,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
val = wed_r32(dev, MTK_WED_EXT_INT_STATUS);
|
||||
wed_w32(dev, MTK_WED_EXT_INT_STATUS, val);
|
||||
@@ -1939,6 +2130,9 @@ void mtk_wed_add_hw(struct device_node *
|
||||
@@ -1941,6 +2132,9 @@ void mtk_wed_add_hw(struct device_node *
|
||||
case 2:
|
||||
hw->soc = &mt7986_data;
|
||||
break;
|
||||
@@ -837,7 +837,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
int index);
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
@@ -331,10 +331,22 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
@@ -334,10 +334,22 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
wo->hw->index + 1);
|
||||
|
||||
/* load firmware */
|
||||
@@ -864,7 +864,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
ret = request_firmware(&fw, fw_name, wo->hw->dev);
|
||||
if (ret)
|
||||
@@ -355,15 +367,16 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
@@ -358,15 +370,16 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
}
|
||||
|
||||
/* set the start address */
|
||||
@@ -886,7 +886,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
wo_w32(wo, MTK_WO_MCU_CFG_LS_WF_MCU_CFG_WM_WA_ADDR, val);
|
||||
out:
|
||||
release_firmware(fw);
|
||||
@@ -398,3 +411,5 @@ int mtk_wed_mcu_init(struct mtk_wed_wo *
|
||||
@@ -401,3 +414,5 @@ int mtk_wed_mcu_init(struct mtk_wed_wo *
|
||||
MODULE_FIRMWARE(MT7981_FIRMWARE_WO);
|
||||
MODULE_FIRMWARE(MT7986_FIRMWARE_WO0);
|
||||
MODULE_FIRMWARE(MT7986_FIRMWARE_WO1);
|
||||
|
||||
@@ -364,7 +364,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
mtk_wed_start(struct mtk_wed_device *dev, u32 irq_mask)
|
||||
{
|
||||
int i;
|
||||
@@ -2212,6 +2503,10 @@ void mtk_wed_add_hw(struct device_node *
|
||||
@@ -2214,6 +2505,10 @@ void mtk_wed_add_hw(struct device_node *
|
||||
.detach = mtk_wed_detach,
|
||||
.ppe_check = mtk_wed_ppe_check,
|
||||
.setup_tc = mtk_wed_setup_tc,
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
+++ b/drivers/net/ethernet/mediatek/mtk_wed_mcu.c
|
||||
@@ -258,16 +258,12 @@ mtk_wed_get_memory_region(struct mtk_wed
|
||||
@@ -261,16 +261,12 @@ mtk_wed_get_memory_region(struct mtk_wed
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
trailer_ptr = fw->data + fw->size - sizeof(*trailer);
|
||||
trailer = (const struct mtk_wed_fw_trailer *)trailer_ptr;
|
||||
region_ptr = trailer_ptr - trailer->num_region * sizeof(*fw_region);
|
||||
@@ -275,33 +271,41 @@ mtk_wed_mcu_run_firmware(struct mtk_wed_
|
||||
@@ -278,33 +274,41 @@ mtk_wed_mcu_run_firmware(struct mtk_wed_
|
||||
|
||||
while (region_ptr < trailer_ptr) {
|
||||
u32 length;
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -360,11 +364,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
@@ -363,11 +367,9 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
dev_info(wo->hw->dev, "MTK WED WO Chip ID %02x Region %d\n",
|
||||
trailer->chip_id, trailer->num_region);
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
{
|
||||
writel(val, mem_region[MTK_WED_WO_REGION_BOOT].addr + reg);
|
||||
}
|
||||
@@ -373,13 +373,13 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
@@ -376,13 +376,13 @@ mtk_wed_mcu_load_firmware(struct mtk_wed
|
||||
boot_cr = MTK_WO_MCU_CFG_LS_WA_BOOT_ADDR_ADDR;
|
||||
else
|
||||
boot_cr = MTK_WO_MCU_CFG_LS_WM_BOOT_ADDR_ADDR;
|
||||
|
||||
@@ -332,7 +332,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
default:
|
||||
--- a/drivers/net/ethernet/realtek/r8169_phy_config.c
|
||||
+++ b/drivers/net/ethernet/realtek/r8169_phy_config.c
|
||||
@@ -1102,6 +1102,12 @@ static void rtl8125b_hw_phy_config(struc
|
||||
@@ -1104,6 +1104,12 @@ static void rtl8125b_hw_phy_config(struc
|
||||
rtl8125b_config_eee_phy(phydev);
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
void r8169_hw_phy_config(struct rtl8169_private *tp, struct phy_device *phydev,
|
||||
enum mac_version ver)
|
||||
{
|
||||
@@ -1152,6 +1158,7 @@ void r8169_hw_phy_config(struct rtl8169_
|
||||
@@ -1154,6 +1160,7 @@ void r8169_hw_phy_config(struct rtl8169_
|
||||
[RTL_GIGA_MAC_VER_53] = rtl8117_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_61] = rtl8125a_2_hw_phy_config,
|
||||
[RTL_GIGA_MAC_VER_63] = rtl8125b_hw_phy_config,
|
||||
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
return of_get_child_by_name(nvmem->dev.of_node, "nvmem-layout");
|
||||
--- a/include/linux/nvmem-consumer.h
|
||||
+++ b/include/linux/nvmem-consumer.h
|
||||
@@ -241,7 +241,6 @@ struct nvmem_cell *of_nvmem_cell_get(str
|
||||
@@ -242,7 +242,6 @@ struct nvmem_cell *of_nvmem_cell_get(str
|
||||
const char *id);
|
||||
struct nvmem_device *of_nvmem_device_get(struct device_node *np,
|
||||
const char *name);
|
||||
@@ -50,7 +50,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
#else
|
||||
static inline struct nvmem_cell *of_nvmem_cell_get(struct device_node *np,
|
||||
const char *id)
|
||||
@@ -254,12 +253,6 @@ static inline struct nvmem_device *of_nv
|
||||
@@ -255,12 +254,6 @@ static inline struct nvmem_device *of_nv
|
||||
{
|
||||
return ERR_PTR(-EOPNOTSUPP);
|
||||
}
|
||||
|
||||
@@ -330,7 +330,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nvmem_cell_put);
|
||||
|
||||
@@ -2103,11 +2044,22 @@ EXPORT_SYMBOL_GPL(nvmem_dev_name);
|
||||
@@ -2116,11 +2057,22 @@ EXPORT_SYMBOL_GPL(nvmem_dev_size);
|
||||
|
||||
static int __init nvmem_init(void)
|
||||
{
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
From 33cf42e68efc8ff529a7eee08a4f0ba8c8d0a207 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 21 Dec 2023 18:34:17 +0100
|
||||
Subject: [PATCH] nvmem: core: add nvmem_dev_size() helper
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This is required by layouts that need to read whole NVMEM content. It's
|
||||
especially useful for NVMEM devices without hardcoded layout (like
|
||||
U-Boot environment data block).
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/r/20231221173421.13737-2-zajec5@gmail.com
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/nvmem/core.c | 13 +++++++++++++
|
||||
include/linux/nvmem-consumer.h | 1 +
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
--- a/drivers/nvmem/core.c
|
||||
+++ b/drivers/nvmem/core.c
|
||||
@@ -2162,6 +2162,19 @@ const char *nvmem_dev_name(struct nvmem_
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(nvmem_dev_name);
|
||||
|
||||
+/**
|
||||
+ * nvmem_dev_size() - Get the size of a given nvmem device.
|
||||
+ *
|
||||
+ * @nvmem: nvmem device.
|
||||
+ *
|
||||
+ * Return: size of the nvmem device.
|
||||
+ */
|
||||
+size_t nvmem_dev_size(struct nvmem_device *nvmem)
|
||||
+{
|
||||
+ return nvmem->size;
|
||||
+}
|
||||
+EXPORT_SYMBOL_GPL(nvmem_dev_size);
|
||||
+
|
||||
static int __init nvmem_init(void)
|
||||
{
|
||||
int ret;
|
||||
--- a/include/linux/nvmem-consumer.h
|
||||
+++ b/include/linux/nvmem-consumer.h
|
||||
@@ -81,6 +81,7 @@ int nvmem_device_cell_write(struct nvmem
|
||||
struct nvmem_cell_info *info, void *buf);
|
||||
|
||||
const char *nvmem_dev_name(struct nvmem_device *nvmem);
|
||||
+size_t nvmem_dev_size(struct nvmem_device *nvmem);
|
||||
|
||||
void nvmem_add_cell_lookups(struct nvmem_cell_lookup *entries,
|
||||
size_t nentries);
|
||||
@@ -1,126 +0,0 @@
|
||||
From 7c8979b42b1a9c5604f431ba804928e55919263c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 21 Dec 2023 18:34:18 +0100
|
||||
Subject: [PATCH] nvmem: u-boot-env: use nvmem_add_one_cell() nvmem subsystem
|
||||
helper
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Simplify adding NVMEM cells.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/r/20231221173421.13737-3-zajec5@gmail.com
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/nvmem/u-boot-env.c | 55 +++++++++++++++-----------------------
|
||||
1 file changed, 21 insertions(+), 34 deletions(-)
|
||||
|
||||
--- a/drivers/nvmem/u-boot-env.c
|
||||
+++ b/drivers/nvmem/u-boot-env.c
|
||||
@@ -23,13 +23,10 @@ enum u_boot_env_format {
|
||||
|
||||
struct u_boot_env {
|
||||
struct device *dev;
|
||||
+ struct nvmem_device *nvmem;
|
||||
enum u_boot_env_format format;
|
||||
|
||||
struct mtd_info *mtd;
|
||||
-
|
||||
- /* Cells */
|
||||
- struct nvmem_cell_info *cells;
|
||||
- int ncells;
|
||||
};
|
||||
|
||||
struct u_boot_env_image_single {
|
||||
@@ -94,43 +91,36 @@ static int u_boot_env_read_post_process_
|
||||
static int u_boot_env_add_cells(struct u_boot_env *priv, uint8_t *buf,
|
||||
size_t data_offset, size_t data_len)
|
||||
{
|
||||
+ struct nvmem_device *nvmem = priv->nvmem;
|
||||
struct device *dev = priv->dev;
|
||||
char *data = buf + data_offset;
|
||||
char *var, *value, *eq;
|
||||
- int idx;
|
||||
-
|
||||
- priv->ncells = 0;
|
||||
- for (var = data; var < data + data_len && *var; var += strlen(var) + 1)
|
||||
- priv->ncells++;
|
||||
-
|
||||
- priv->cells = devm_kcalloc(dev, priv->ncells, sizeof(*priv->cells), GFP_KERNEL);
|
||||
- if (!priv->cells)
|
||||
- return -ENOMEM;
|
||||
|
||||
- for (var = data, idx = 0;
|
||||
+ for (var = data;
|
||||
var < data + data_len && *var;
|
||||
- var = value + strlen(value) + 1, idx++) {
|
||||
+ var = value + strlen(value) + 1) {
|
||||
+ struct nvmem_cell_info info = {};
|
||||
+
|
||||
eq = strchr(var, '=');
|
||||
if (!eq)
|
||||
break;
|
||||
*eq = '\0';
|
||||
value = eq + 1;
|
||||
|
||||
- priv->cells[idx].name = devm_kstrdup(dev, var, GFP_KERNEL);
|
||||
- if (!priv->cells[idx].name)
|
||||
+ info.name = devm_kstrdup(dev, var, GFP_KERNEL);
|
||||
+ if (!info.name)
|
||||
return -ENOMEM;
|
||||
- priv->cells[idx].offset = data_offset + value - data;
|
||||
- priv->cells[idx].bytes = strlen(value);
|
||||
- priv->cells[idx].np = of_get_child_by_name(dev->of_node, priv->cells[idx].name);
|
||||
+ info.offset = data_offset + value - data;
|
||||
+ info.bytes = strlen(value);
|
||||
+ info.np = of_get_child_by_name(dev->of_node, info.name);
|
||||
if (!strcmp(var, "ethaddr")) {
|
||||
- priv->cells[idx].raw_len = strlen(value);
|
||||
- priv->cells[idx].bytes = ETH_ALEN;
|
||||
- priv->cells[idx].read_post_process = u_boot_env_read_post_process_ethaddr;
|
||||
+ info.raw_len = strlen(value);
|
||||
+ info.bytes = ETH_ALEN;
|
||||
+ info.read_post_process = u_boot_env_read_post_process_ethaddr;
|
||||
}
|
||||
- }
|
||||
|
||||
- if (WARN_ON(idx != priv->ncells))
|
||||
- priv->ncells = idx;
|
||||
+ nvmem_add_one_cell(nvmem, &info);
|
||||
+ }
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -209,7 +199,6 @@ static int u_boot_env_probe(struct platf
|
||||
struct device *dev = &pdev->dev;
|
||||
struct device_node *np = dev->of_node;
|
||||
struct u_boot_env *priv;
|
||||
- int err;
|
||||
|
||||
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
||||
if (!priv)
|
||||
@@ -224,17 +213,15 @@ static int u_boot_env_probe(struct platf
|
||||
return PTR_ERR(priv->mtd);
|
||||
}
|
||||
|
||||
- err = u_boot_env_parse(priv);
|
||||
- if (err)
|
||||
- return err;
|
||||
-
|
||||
config.dev = dev;
|
||||
- config.cells = priv->cells;
|
||||
- config.ncells = priv->ncells;
|
||||
config.priv = priv;
|
||||
config.size = priv->mtd->size;
|
||||
|
||||
- return PTR_ERR_OR_ZERO(devm_nvmem_register(dev, &config));
|
||||
+ priv->nvmem = devm_nvmem_register(dev, &config);
|
||||
+ if (IS_ERR(priv->nvmem))
|
||||
+ return PTR_ERR(priv->nvmem);
|
||||
+
|
||||
+ return u_boot_env_parse(priv);
|
||||
}
|
||||
|
||||
static const struct of_device_id u_boot_env_of_match_table[] = {
|
||||
@@ -1,81 +0,0 @@
|
||||
From a832556d23c5a11115f300011a5874d6107a0d62 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 21 Dec 2023 18:34:19 +0100
|
||||
Subject: [PATCH] nvmem: u-boot-env: use nvmem device helpers
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Use nvmem_dev_size() and nvmem_device_read() to make this driver less
|
||||
mtd dependent.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/r/20231221173421.13737-4-zajec5@gmail.com
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/nvmem/u-boot-env.c | 23 +++++++++++++++--------
|
||||
1 file changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
--- a/drivers/nvmem/u-boot-env.c
|
||||
+++ b/drivers/nvmem/u-boot-env.c
|
||||
@@ -127,27 +127,34 @@ static int u_boot_env_add_cells(struct u
|
||||
|
||||
static int u_boot_env_parse(struct u_boot_env *priv)
|
||||
{
|
||||
+ struct nvmem_device *nvmem = priv->nvmem;
|
||||
struct device *dev = priv->dev;
|
||||
size_t crc32_data_offset;
|
||||
size_t crc32_data_len;
|
||||
size_t crc32_offset;
|
||||
size_t data_offset;
|
||||
size_t data_len;
|
||||
+ size_t dev_size;
|
||||
uint32_t crc32;
|
||||
uint32_t calc;
|
||||
- size_t bytes;
|
||||
uint8_t *buf;
|
||||
+ int bytes;
|
||||
int err;
|
||||
|
||||
- buf = kcalloc(1, priv->mtd->size, GFP_KERNEL);
|
||||
+ dev_size = nvmem_dev_size(nvmem);
|
||||
+
|
||||
+ buf = kcalloc(1, dev_size, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
err = -ENOMEM;
|
||||
goto err_out;
|
||||
}
|
||||
|
||||
- err = mtd_read(priv->mtd, 0, priv->mtd->size, &bytes, buf);
|
||||
- if ((err && !mtd_is_bitflip(err)) || bytes != priv->mtd->size) {
|
||||
- dev_err(dev, "Failed to read from mtd: %d\n", err);
|
||||
+ bytes = nvmem_device_read(nvmem, 0, dev_size, buf);
|
||||
+ if (bytes < 0) {
|
||||
+ err = bytes;
|
||||
+ goto err_kfree;
|
||||
+ } else if (bytes != dev_size) {
|
||||
+ err = -EIO;
|
||||
goto err_kfree;
|
||||
}
|
||||
|
||||
@@ -169,8 +176,8 @@ static int u_boot_env_parse(struct u_boo
|
||||
break;
|
||||
}
|
||||
crc32 = le32_to_cpu(*(__le32 *)(buf + crc32_offset));
|
||||
- crc32_data_len = priv->mtd->size - crc32_data_offset;
|
||||
- data_len = priv->mtd->size - data_offset;
|
||||
+ crc32_data_len = dev_size - crc32_data_offset;
|
||||
+ data_len = dev_size - data_offset;
|
||||
|
||||
calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L;
|
||||
if (calc != crc32) {
|
||||
@@ -179,7 +186,7 @@ static int u_boot_env_parse(struct u_boo
|
||||
goto err_kfree;
|
||||
}
|
||||
|
||||
- buf[priv->mtd->size - 1] = '\0';
|
||||
+ buf[dev_size - 1] = '\0';
|
||||
err = u_boot_env_add_cells(priv, buf, data_offset, data_len);
|
||||
if (err)
|
||||
dev_err(dev, "Failed to add cells: %d\n", err);
|
||||
@@ -1,62 +0,0 @@
|
||||
From 6bafe07c930676d6430be471310958070816a595 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
|
||||
Date: Thu, 21 Dec 2023 18:34:20 +0100
|
||||
Subject: [PATCH] nvmem: u-boot-env: improve coding style
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
1. Prefer kzalloc() over kcalloc()
|
||||
See memory-allocation.rst which says: "to be on the safe side it's
|
||||
best to use routines that set memory to zero, like kzalloc()"
|
||||
2. Drop dev_err() for u_boot_env_add_cells() fail
|
||||
It can fail only on -ENOMEM. We don't want to print error then.
|
||||
3. Add extra "crc32_addr" variable
|
||||
It makes code reading header's crc32 easier to understand / review.
|
||||
|
||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
|
||||
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
Link: https://lore.kernel.org/r/20231221173421.13737-5-zajec5@gmail.com
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
---
|
||||
drivers/nvmem/u-boot-env.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/drivers/nvmem/u-boot-env.c
|
||||
+++ b/drivers/nvmem/u-boot-env.c
|
||||
@@ -132,6 +132,7 @@ static int u_boot_env_parse(struct u_boo
|
||||
size_t crc32_data_offset;
|
||||
size_t crc32_data_len;
|
||||
size_t crc32_offset;
|
||||
+ __le32 *crc32_addr;
|
||||
size_t data_offset;
|
||||
size_t data_len;
|
||||
size_t dev_size;
|
||||
@@ -143,7 +144,7 @@ static int u_boot_env_parse(struct u_boo
|
||||
|
||||
dev_size = nvmem_dev_size(nvmem);
|
||||
|
||||
- buf = kcalloc(1, dev_size, GFP_KERNEL);
|
||||
+ buf = kzalloc(dev_size, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
err = -ENOMEM;
|
||||
goto err_out;
|
||||
@@ -175,7 +176,8 @@ static int u_boot_env_parse(struct u_boo
|
||||
data_offset = offsetof(struct u_boot_env_image_broadcom, data);
|
||||
break;
|
||||
}
|
||||
- crc32 = le32_to_cpu(*(__le32 *)(buf + crc32_offset));
|
||||
+ crc32_addr = (__le32 *)(buf + crc32_offset);
|
||||
+ crc32 = le32_to_cpu(*crc32_addr);
|
||||
crc32_data_len = dev_size - crc32_data_offset;
|
||||
data_len = dev_size - data_offset;
|
||||
|
||||
@@ -188,8 +190,6 @@ static int u_boot_env_parse(struct u_boo
|
||||
|
||||
buf[dev_size - 1] = '\0';
|
||||
err = u_boot_env_add_cells(priv, buf, data_offset, data_len);
|
||||
- if (err)
|
||||
- dev_err(dev, "Failed to add cells: %d\n", err);
|
||||
|
||||
err_kfree:
|
||||
kfree(buf);
|
||||
@@ -51,8 +51,8 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||
static const struct mhi_pci_dev_info mhi_qcom_sdx65_info = {
|
||||
.name = "qcom-sdx65m",
|
||||
.fw = "qcom/sdx65m/xbl.elf",
|
||||
@@ -600,6 +620,8 @@ static const struct pci_device_id mhi_pc
|
||||
.driver_data = (kernel_ulong_t) &mhi_telit_fn990_info },
|
||||
@@ -609,6 +629,8 @@ static const struct pci_device_id mhi_pc
|
||||
.driver_data = (kernel_ulong_t) &mhi_telit_fe990a_info },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0308),
|
||||
.driver_data = (kernel_ulong_t) &mhi_qcom_sdx65_info },
|
||||
+ { PCI_DEVICE(PCI_VENDOR_ID_QCOM, 0x0309),
|
||||
|
||||
@@ -123,7 +123,7 @@ Signed-off-by: Justin Stitt <justinstitt@google.com>
|
||||
#endif /* _LINUX_ETHTOOL_H */
|
||||
--- a/net/ethtool/ioctl.c
|
||||
+++ b/net/ethtool/ioctl.c
|
||||
@@ -1991,6 +1991,13 @@ __printf(2, 3) void ethtool_sprintf(u8 *
|
||||
@@ -1994,6 +1994,13 @@ __printf(2, 3) void ethtool_sprintf(u8 *
|
||||
}
|
||||
EXPORT_SYMBOL(ethtool_sprintf);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Subject: [PATCH] Kconfig: add tristate for OID and ASNI string
|
||||
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1990,7 +1990,7 @@ config PADATA
|
||||
@@ -1993,7 +1993,7 @@ config PADATA
|
||||
bool
|
||||
|
||||
config ASN1
|
||||
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
#include <linux/crc32.h>
|
||||
#include <linux/if_vlan.h>
|
||||
#include <linux/uaccess.h>
|
||||
@@ -7035,6 +7036,22 @@ static void rtl_tally_reset(struct r8152
|
||||
@@ -7044,6 +7045,22 @@ static void rtl_tally_reset(struct r8152
|
||||
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
static void r8152b_init(struct r8152 *tp)
|
||||
{
|
||||
u32 ocp_data;
|
||||
@@ -7076,6 +7093,8 @@ static void r8152b_init(struct r8152 *tp
|
||||
@@ -7085,6 +7102,8 @@ static void r8152b_init(struct r8152 *tp
|
||||
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
|
||||
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
|
||||
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
|
||||
@@ -54,7 +54,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
}
|
||||
|
||||
static void r8153_init(struct r8152 *tp)
|
||||
@@ -7216,6 +7235,8 @@ static void r8153_init(struct r8152 *tp)
|
||||
@@ -7225,6 +7244,8 @@ static void r8153_init(struct r8152 *tp)
|
||||
tp->coalesce = COALESCE_SLOW;
|
||||
break;
|
||||
}
|
||||
@@ -63,7 +63,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
|
||||
}
|
||||
|
||||
static void r8153b_init(struct r8152 *tp)
|
||||
@@ -7298,6 +7319,8 @@ static void r8153b_init(struct r8152 *tp
|
||||
@@ -7307,6 +7328,8 @@ static void r8153b_init(struct r8152 *tp
|
||||
rtl_tally_reset(tp);
|
||||
|
||||
tp->coalesce = 15000; /* 15 us */
|
||||
|
||||
@@ -43,7 +43,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
||||
|
||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
@@ -1156,6 +1161,11 @@ static const struct usb_device_id option
|
||||
@@ -1158,6 +1163,11 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
||||
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
||||
@@ -55,7 +55,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
||||
/* Quectel products using Qualcomm vendor ID */
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
||||
@@ -1197,6 +1207,11 @@ static const struct usb_device_id option
|
||||
@@ -1199,6 +1209,11 @@ static const struct usb_device_id option
|
||||
.driver_info = ZLP },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||
.driver_info = RSVD(4) },
|
||||
|
||||
@@ -131,7 +131,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
struct gpio_desc *desc)
|
||||
--- a/drivers/gpio/gpiolib-sysfs.c
|
||||
+++ b/drivers/gpio/gpiolib-sysfs.c
|
||||
@@ -557,7 +557,7 @@ static struct class gpio_class = {
|
||||
@@ -558,7 +558,7 @@ static struct class gpio_class = {
|
||||
*
|
||||
* Returns zero on success, else an error.
|
||||
*/
|
||||
@@ -140,7 +140,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
{
|
||||
struct gpio_chip *chip;
|
||||
struct gpio_device *gdev;
|
||||
@@ -619,6 +619,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
@@ -620,6 +620,8 @@ int gpiod_export(struct gpio_desc *desc,
|
||||
offset = gpio_chip_hwgpio(desc);
|
||||
if (chip->names && chip->names[offset])
|
||||
ioname = chip->names[offset];
|
||||
@@ -149,7 +149,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
dev = device_create_with_groups(&gpio_class, &gdev->dev,
|
||||
MKDEV(0, 0), data, gpio_groups,
|
||||
@@ -640,8 +642,21 @@ err_unlock:
|
||||
@@ -641,8 +643,21 @@ err_unlock:
|
||||
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *,
|
||||
u32));
|
||||
INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *,
|
||||
@@ -2247,9 +2264,11 @@ static void __sk_free(struct sock *sk)
|
||||
@@ -2239,9 +2256,11 @@ static void __sk_free(struct sock *sk)
|
||||
if (likely(sk->sk_net_refcnt))
|
||||
sock_inuse_add(sock_net(sk), -1);
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!pe)
|
||||
--- a/mm/vmalloc.c
|
||||
+++ b/mm/vmalloc.c
|
||||
@@ -4455,6 +4455,8 @@ static const struct seq_operations vmall
|
||||
@@ -4448,6 +4448,8 @@ static const struct seq_operations vmall
|
||||
|
||||
static int __init proc_vmalloc_init(void)
|
||||
{
|
||||
@@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/core/sock.c
|
||||
+++ b/net/core/sock.c
|
||||
@@ -4148,6 +4148,8 @@ static __net_initdata struct pernet_oper
|
||||
@@ -4140,6 +4140,8 @@ static __net_initdata struct pernet_oper
|
||||
|
||||
static int __init proto_init(void)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -646,6 +646,7 @@ static void option_instat_callback(struc
|
||||
@@ -648,6 +648,7 @@ static void option_instat_callback(struc
|
||||
|
||||
|
||||
static const struct usb_device_id option_ids[] = {
|
||||
@@ -8,7 +8,7 @@
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
|
||||
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
|
||||
@@ -2461,6 +2462,15 @@ static int option_probe(struct usb_seria
|
||||
@@ -2466,6 +2467,15 @@ static int option_probe(struct usb_seria
|
||||
if (device_flags & NUMEP2 && iface_desc->bNumEndpoints != 2)
|
||||
return -ENODEV;
|
||||
|
||||
|
||||
@@ -299,7 +299,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
||||
void nf_conntrack_ecache_work(struct net *net, enum nf_ct_ecache_state state)
|
||||
--- a/net/netfilter/nf_conntrack_netlink.c
|
||||
+++ b/net/netfilter/nf_conntrack_netlink.c
|
||||
@@ -723,12 +723,19 @@ static size_t ctnetlink_nlmsg_size(const
|
||||
@@ -720,12 +720,19 @@ static size_t ctnetlink_nlmsg_size(const
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -319,7 +319,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
||||
struct nf_conn *ct = item->ct;
|
||||
struct sk_buff *skb;
|
||||
unsigned int type;
|
||||
@@ -3751,11 +3758,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
||||
@@ -3748,11 +3755,17 @@ static int ctnetlink_stat_exp_cpu(struct
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
@@ -337,7 +337,7 @@ Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
|
||||
|
||||
static const struct nfnl_callback ctnl_cb[IPCTNL_MSG_MAX] = {
|
||||
[IPCTNL_MSG_CT_NEW] = {
|
||||
@@ -3854,8 +3867,12 @@ static int __net_init ctnetlink_net_init
|
||||
@@ -3851,8 +3864,12 @@ static int __net_init ctnetlink_net_init
|
||||
static void ctnetlink_net_pre_exit(struct net *net)
|
||||
{
|
||||
#ifdef CONFIG_NF_CONNTRACK_EVENTS
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
From ecb8f9a7d69698ce20fc6f4d107718d56fa861df Mon Sep 17 00:00:00 2001
|
||||
From: Tony Ambardar <Tony.Ambardar@gmail.com>
|
||||
Date: Sat, 9 Mar 2024 16:44:53 -0800
|
||||
Subject: [PATCH] selftests/bpf: Improve portability of unprivileged tests
|
||||
|
||||
The addition of general support for unprivileged tests in test_loader.c
|
||||
breaks building test_verifier on non-glibc (e.g. musl) systems, due to the
|
||||
inclusion of glibc extension '<error.h>' in 'unpriv_helpers.c'. However,
|
||||
the header is actually not needed, so remove it to restore building.
|
||||
|
||||
Fixes: 1d56ade032a4 ("selftests/bpf: Unprivileged tests for test_loader.c")
|
||||
Signed-off-by: Tony Ambardar <Tony.Ambardar@gmail.com>
|
||||
---
|
||||
tools/testing/selftests/bpf/unpriv_helpers.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
--- a/tools/testing/selftests/bpf/unpriv_helpers.c
|
||||
+++ b/tools/testing/selftests/bpf/unpriv_helpers.c
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
-#include <error.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "unpriv_helpers.h"
|
||||
@@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
|
||||
return -1;
|
||||
|
||||
@@ -1543,6 +1704,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
@@ -1544,6 +1705,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
|
||||
t->parms.link = p->link;
|
||||
t->parms.proto = p->proto;
|
||||
t->parms.fwmark = p->fwmark;
|
||||
@@ -353,7 +353,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
dst_cache_reset(&t->dst_cache);
|
||||
ip6_tnl_link_config(t);
|
||||
}
|
||||
@@ -1577,6 +1746,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
@@ -1578,6 +1747,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
|
||||
p->flowinfo = u->flowinfo;
|
||||
p->link = u->link;
|
||||
p->proto = u->proto;
|
||||
@@ -361,7 +361,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
memcpy(p->name, u->name, sizeof(u->name));
|
||||
}
|
||||
|
||||
@@ -1964,6 +2134,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
@@ -1966,6 +2136,15 @@ static int ip6_tnl_validate(struct nlatt
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -377,7 +377,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
static void ip6_tnl_netlink_parms(struct nlattr *data[],
|
||||
struct __ip6_tnl_parm *parms)
|
||||
{
|
||||
@@ -2001,6 +2180,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
@@ -2003,6 +2182,46 @@ static void ip6_tnl_netlink_parms(struct
|
||||
|
||||
if (data[IFLA_IPTUN_FWMARK])
|
||||
parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
|
||||
@@ -424,7 +424,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
}
|
||||
|
||||
static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
|
||||
@@ -2084,6 +2303,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
@@ -2086,6 +2305,12 @@ static void ip6_tnl_dellink(struct net_d
|
||||
|
||||
static size_t ip6_tnl_get_size(const struct net_device *dev)
|
||||
{
|
||||
@@ -437,7 +437,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
return
|
||||
/* IFLA_IPTUN_LINK */
|
||||
nla_total_size(4) +
|
||||
@@ -2113,6 +2338,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
@@ -2115,6 +2340,24 @@ static size_t ip6_tnl_get_size(const str
|
||||
nla_total_size(0) +
|
||||
/* IFLA_IPTUN_FWMARK */
|
||||
nla_total_size(4) +
|
||||
@@ -462,7 +462,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
0;
|
||||
}
|
||||
|
||||
@@ -2120,6 +2363,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2122,6 +2365,9 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
{
|
||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||
struct __ip6_tnl_parm *parm = &tunnel->parms;
|
||||
@@ -472,7 +472,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
|
||||
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
|
||||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
|
||||
@@ -2129,9 +2375,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
@@ -2131,9 +2377,27 @@ static int ip6_tnl_fill_info(struct sk_b
|
||||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
|
||||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
|
||||
nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
|
||||
@@ -501,7 +501,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
|
||||
if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
|
||||
nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
|
||||
@@ -2171,6 +2435,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
@@ -2173,6 +2437,7 @@ static const struct nla_policy ip6_tnl_p
|
||||
[IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
|
||||
[IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG },
|
||||
[IFLA_IPTUN_FWMARK] = { .type = NLA_U32 },
|
||||
|
||||
@@ -18,7 +18,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
--- a/net/netfilter/nf_tables_api.c
|
||||
+++ b/net/netfilter/nf_tables_api.c
|
||||
@@ -8279,7 +8279,7 @@ static int nft_register_flowtable_net_ho
|
||||
@@ -8333,7 +8333,7 @@ static int nft_register_flowtable_net_ho
|
||||
err = flowtable->data.type->setup(&flowtable->data,
|
||||
hook->ops.dev,
|
||||
FLOW_BLOCK_BIND);
|
||||
|
||||
@@ -36,7 +36,7 @@ Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||
|
||||
--- a/drivers/nvmem/u-boot-env.c
|
||||
+++ b/drivers/nvmem/u-boot-env.c
|
||||
@@ -181,7 +181,7 @@ static int u_boot_env_parse(struct u_boo
|
||||
@@ -188,7 +188,7 @@ static int u_boot_env_parse(struct u_boo
|
||||
crc32_data_len = dev_size - crc32_data_offset;
|
||||
data_len = dev_size - data_offset;
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
|
||||
--- a/drivers/pci/quirks.c
|
||||
+++ b/drivers/pci/quirks.c
|
||||
@@ -300,6 +300,7 @@ static void quirk_mmio_always_on(struct
|
||||
@@ -313,6 +313,7 @@ static void quirk_mmio_always_on(struct
|
||||
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
|
||||
|
||||
@@ -33,7 +33,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
/*
|
||||
* The Mellanox Tavor device gives false positive parity errors. Disable
|
||||
* parity error reporting.
|
||||
@@ -3488,6 +3489,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
@@ -3501,6 +3502,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
|
||||
|
||||
@@ -42,7 +42,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
/*
|
||||
* Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.
|
||||
* To work around this, query the size it should be configured to by the
|
||||
@@ -3513,6 +3516,8 @@ static void quirk_intel_ntb(struct pci_d
|
||||
@@ -3526,6 +3529,8 @@ static void quirk_intel_ntb(struct pci_d
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb);
|
||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb);
|
||||
|
||||
@@ -51,7 +51,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
/*
|
||||
* Some BIOS implementations leave the Intel GPU interrupts enabled, even
|
||||
* though no one is handling them (e.g., if the i915 driver is never
|
||||
@@ -3551,6 +3556,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
@@ -3564,6 +3569,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
|
||||
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
kfree(ap);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ata_port_free);
|
||||
@@ -5927,7 +5950,23 @@ int ata_host_register(struct ata_host *h
|
||||
@@ -5929,7 +5952,23 @@ int ata_host_register(struct ata_host *h
|
||||
host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
|
||||
host->ports[i]->local_port_no = i + 1;
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
|
||||
|
||||
--- a/drivers/char/hw_random/bcm2835-rng.c
|
||||
+++ b/drivers/char/hw_random/bcm2835-rng.c
|
||||
@@ -169,6 +169,7 @@ static int bcm2835_rng_probe(struct plat
|
||||
@@ -171,6 +171,7 @@ static int bcm2835_rng_probe(struct plat
|
||||
priv->rng.init = bcm2835_rng_init;
|
||||
priv->rng.read = bcm2835_rng_read;
|
||||
priv->rng.cleanup = bcm2835_rng_cleanup;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
--- a/drivers/net/usb/qmi_wwan.c
|
||||
+++ b/drivers/net/usb/qmi_wwan.c
|
||||
@@ -1438,6 +1438,9 @@ static const struct usb_device_id produc
|
||||
{QMI_QUIRK_SET_DTR(0x1546, 0x1312, 4)}, /* u-blox LARA-R6 01B */
|
||||
@@ -1439,6 +1439,9 @@ static const struct usb_device_id produc
|
||||
{QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */
|
||||
{QMI_QUIRK_SET_DTR(0x33f8, 0x0104, 4)}, /* Rolling RW101 RMNET */
|
||||
{QMI_FIXED_INTF(0x2dee, 0x4d22, 5)}, /* MeiG Smart SRM825L */
|
||||
+ {QMI_FIXED_INTF(0x2077, 0x2002, 4)}, /* T&W TW04C */
|
||||
+ {QMI_FIXED_INTF(0x2077, 0x2003, 4)}, /* T&W TW12G */
|
||||
+ {QMI_FIXED_INTF(0x2077, 0x2004, 4)}, /* T&W TW510M */
|
||||
@@ -12,7 +12,7 @@
|
||||
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
|
||||
--- a/drivers/usb/serial/option.c
|
||||
+++ b/drivers/usb/serial/option.c
|
||||
@@ -2322,9 +2322,13 @@ static const struct usb_device_id option
|
||||
@@ -2324,9 +2324,13 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a06, 0xff) }, /* Fibocom FM650-CN (RNDIS mode) */
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0a07, 0xff) }, /* Fibocom FM650-CN (MBIM mode) */
|
||||
{ USB_DEVICE_INTERFACE_CLASS(0x2df3, 0x9d03, 0xff) }, /* LongSung M5710 */
|
||||
|
||||
@@ -15,7 +15,7 @@ Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||
|
||||
--- a/drivers/usb/dwc3/core.c
|
||||
+++ b/drivers/usb/dwc3/core.c
|
||||
@@ -818,8 +818,20 @@ static int dwc3_clk_enable(struct dwc3 *
|
||||
@@ -839,8 +839,20 @@ static int dwc3_clk_enable(struct dwc3 *
|
||||
if (ret)
|
||||
goto disable_ref_clk;
|
||||
|
||||
@@ -36,7 +36,7 @@ Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||
disable_ref_clk:
|
||||
clk_disable_unprepare(dwc->ref_clk);
|
||||
disable_bus_clk:
|
||||
@@ -829,6 +841,8 @@ disable_bus_clk:
|
||||
@@ -850,6 +862,8 @@ disable_bus_clk:
|
||||
|
||||
static void dwc3_clk_disable(struct dwc3 *dwc)
|
||||
{
|
||||
@@ -45,7 +45,7 @@ Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||
clk_disable_unprepare(dwc->susp_clk);
|
||||
clk_disable_unprepare(dwc->ref_clk);
|
||||
clk_disable_unprepare(dwc->bus_clk);
|
||||
@@ -1840,6 +1854,18 @@ static int dwc3_get_clocks(struct dwc3 *
|
||||
@@ -1876,6 +1890,18 @@ static int dwc3_get_clocks(struct dwc3 *
|
||||
return dev_err_probe(dev, PTR_ERR(dwc->susp_clk),
|
||||
"could not get suspend clock\n");
|
||||
}
|
||||
@@ -66,7 +66,7 @@ Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||
return 0;
|
||||
--- a/drivers/usb/dwc3/core.h
|
||||
+++ b/drivers/usb/dwc3/core.h
|
||||
@@ -996,6 +996,8 @@ struct dwc3_scratchpad_array {
|
||||
@@ -997,6 +997,8 @@ struct dwc3_scratchpad_array {
|
||||
* @bus_clk: clock for accessing the registers
|
||||
* @ref_clk: reference clock
|
||||
* @susp_clk: clock used when the SS phy is in low power (S3) state
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||
* @reset: reset control
|
||||
* @regs: base address for our registers
|
||||
* @regs_size: address space size
|
||||
@@ -1166,6 +1168,8 @@ struct dwc3 {
|
||||
@@ -1167,6 +1169,8 @@ struct dwc3 {
|
||||
struct clk *bus_clk;
|
||||
struct clk *ref_clk;
|
||||
struct clk *susp_clk;
|
||||
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
|
||||
|
||||
--- a/drivers/usb/typec/tcpm/tcpm.c
|
||||
+++ b/drivers/usb/typec/tcpm/tcpm.c
|
||||
@@ -6621,9 +6621,9 @@ struct tcpm_port *tcpm_register_port(str
|
||||
@@ -6620,9 +6620,9 @@ struct tcpm_port *tcpm_register_port(str
|
||||
port->partner_desc.identity = &port->partner_ident;
|
||||
port->port_type = port->typec_caps.type;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
--- a/drivers/irqchip/irq-gic-v3-its.c
|
||||
+++ b/drivers/irqchip/irq-gic-v3-its.c
|
||||
@@ -4736,7 +4736,9 @@ static bool __maybe_unused its_enable_rk
|
||||
@@ -4734,7 +4734,9 @@ static bool __maybe_unused its_enable_rk
|
||||
{
|
||||
struct its_node *its = data;
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
|
||||
if (alloc_lpis) {
|
||||
lpi_map = its_lpi_alloc(nvecs, &lpi_base, &nr_lpis);
|
||||
if (lpi_map)
|
||||
@@ -5071,6 +5087,7 @@ static int __init its_probe_one(struct i
|
||||
@@ -5069,6 +5085,7 @@ static int __init its_probe_one(struct i
|
||||
struct page *page;
|
||||
u32 ctlr;
|
||||
int err;
|
||||
@@ -91,7 +91,7 @@ Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
|
||||
|
||||
its_enable_quirks(its);
|
||||
|
||||
@@ -5104,7 +5121,10 @@ static int __init its_probe_one(struct i
|
||||
@@ -5102,7 +5119,10 @@ static int __init its_probe_one(struct i
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user