generic: 6.12: manually rebuilding pending patches
authorMieczyslaw Nalewaj <namiltd@yahoo.com>
Mon, 16 Dec 2024 07:20:14 +0000 (08:20 +0100)
committerZoltan HERPAI <wigyori@uid0.hu>
Tue, 17 Dec 2024 22:28:10 +0000 (23:28 +0100)
Manually rebuilding pending patches:
 - 103-kbuild-export-SUBARCH.patch
 - 141-jffs2-add-RENAME_EXCHANGE-support.patch
 - 203-kallsyms_uncompressed.patch
 - 270-platform-mikrotik-build-bits.patch
 - 308-mips32r2_tune.patch
 - 330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
 - 402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
 - 451-block-partitions-populate-fwnode.patch
 - 476-mtd-spi-nor-add-eon-en25q128.patch
 - 477-mtd-spi-nor-add-eon-en25qx128a.patch
 - 479-mtd-spi-nor-add-xtx-xt25f128b.patch
 - 481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
 - 482-mtd-spi-nor-add-gd25q512.patch
 - 484-mtd-spi-nor-add-esmt-f25l16pa.patch
 - 485-mtd-spi-nor-add-xmc-xm25qh128c.patch
 - 488-mtd-spi-nor-add-xmc-xm25qh64c.patch
 - 490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
 - 497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch
 - 498-mtd-spi-nor-locking-support-for-MX25L6405D.patch
 - 510-block-add-uImage.FIT-subimage-block-driver.patch
 - 530-jffs2_make_lzma_available.patch
 - 630-packet_socket_type.patch
 - 666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
 - 681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
 - 700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
 - 702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
 - 706-net-phy-populate-host_interfaces-when-attaching-PHY.patch
 - 711-03-net-dsa-qca8k-add-support-for-port_change_master.patch
 - 737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
 - 739-03-net-pcs-pcs-mtk-lynxi-add-platform-driver-for-MT7988.patch
 - 739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch
 - 742-net-phy-air_en8811h-reset-netdev-rules-when-LED-is-s.patch
 - 801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch
 - 834-ledtrig-libata.patch
 - 870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch
 - 920-mangle_bootargs.patch

All other patches automatically rebased.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
82 files changed:
target/linux/generic/pending-6.12/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch
target/linux/generic/pending-6.12/103-kbuild-export-SUBARCH.patch
target/linux/generic/pending-6.12/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
target/linux/generic/pending-6.12/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
target/linux/generic/pending-6.12/141-jffs2-add-RENAME_EXCHANGE-support.patch
target/linux/generic/pending-6.12/203-kallsyms_uncompressed.patch
target/linux/generic/pending-6.12/205-backtrace_module_info.patch
target/linux/generic/pending-6.12/270-platform-mikrotik-build-bits.patch
target/linux/generic/pending-6.12/300-mips_expose_boot_raw.patch
target/linux/generic/pending-6.12/308-mips32r2_tune.patch
target/linux/generic/pending-6.12/310-arm_module_unresolved_weak_sym.patch
target/linux/generic/pending-6.12/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
target/linux/generic/pending-6.12/333-arc-enable-unaligned-access-in-kernel-mode.patch
target/linux/generic/pending-6.12/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch
target/linux/generic/pending-6.12/350-mips-kernel-fix-detect_memory_region-function.patch
target/linux/generic/pending-6.12/400-mtd-mtdsplit-support.patch
target/linux/generic/pending-6.12/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch
target/linux/generic/pending-6.12/402-mtd-spi-nor-write-support-for-minor-aligned-partitions.patch
target/linux/generic/pending-6.12/430-mtd-add-myloader-partition-parser.patch
target/linux/generic/pending-6.12/435-mtd-add-routerbootpart-parser-config.patch
target/linux/generic/pending-6.12/451-block-partitions-populate-fwnode.patch
target/linux/generic/pending-6.12/452-block-add-support-for-notifications.patch
target/linux/generic/pending-6.12/453-block-add-new-genhd-flag-GENHD_FL_NVMEM.patch
target/linux/generic/pending-6.12/456-mmc-core-set-card-fwnode_handle.patch
target/linux/generic/pending-6.12/457-mmc-block-set-fwnode-of-disk-devices.patch
target/linux/generic/pending-6.12/458-mmc-block-set-GENHD_FL_NVMEM.patch
target/linux/generic/pending-6.12/465-m25p80-mx-disable-software-protection.patch
target/linux/generic/pending-6.12/476-mtd-spi-nor-add-eon-en25q128.patch
target/linux/generic/pending-6.12/477-mtd-spi-nor-add-eon-en25qx128a.patch
target/linux/generic/pending-6.12/479-mtd-spi-nor-add-xtx-xt25f128b.patch
target/linux/generic/pending-6.12/481-mtd-spi-nor-add-support-for-Gigadevice-GD25D05.patch
target/linux/generic/pending-6.12/482-mtd-spi-nor-add-gd25q512.patch
target/linux/generic/pending-6.12/484-mtd-spi-nor-add-esmt-f25l16pa.patch
target/linux/generic/pending-6.12/485-mtd-spi-nor-add-xmc-xm25qh128c.patch
target/linux/generic/pending-6.12/487-mtd-spinand-Add-support-for-Etron-EM73D044VCx.patch
target/linux/generic/pending-6.12/488-mtd-spi-nor-add-xmc-xm25qh64c.patch
target/linux/generic/pending-6.12/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
target/linux/generic/pending-6.12/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
target/linux/generic/pending-6.12/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
target/linux/generic/pending-6.12/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
target/linux/generic/pending-6.12/494-mtd-ubi-add-EOF-marker-support.patch
target/linux/generic/pending-6.12/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch
target/linux/generic/pending-6.12/498-mtd-spi-nor-locking-support-for-MX25L6405D.patch
target/linux/generic/pending-6.12/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch
target/linux/generic/pending-6.12/510-block-add-uImage.FIT-subimage-block-driver.patch
target/linux/generic/pending-6.12/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch
target/linux/generic/pending-6.12/530-jffs2_make_lzma_available.patch
target/linux/generic/pending-6.12/620-net_sched-codel-do-not-defer-queue-length-update.patch
target/linux/generic/pending-6.12/630-packet_socket_type.patch
target/linux/generic/pending-6.12/655-increase_skb_pad.patch
target/linux/generic/pending-6.12/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
target/linux/generic/pending-6.12/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/pending-6.12/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
target/linux/generic/pending-6.12/681-net-remove-NETIF_F_GSO_FRAGLIST-from-NETIF_F_GSO_SOF.patch
target/linux/generic/pending-6.12/700-netfilter-nft_flow_offload-handle-netdevice-events-f.patch
target/linux/generic/pending-6.12/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch
target/linux/generic/pending-6.12/702-net-ethernet-mtk_eth_soc-enable-threaded-NAPI.patch
target/linux/generic/pending-6.12/703-phy-add-detach-callback-to-struct-phy_driver.patch
target/linux/generic/pending-6.12/706-net-phy-populate-host_interfaces-when-attaching-PHY.patch
target/linux/generic/pending-6.12/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch
target/linux/generic/pending-6.12/711-01-net-dsa-qca8k-implement-lag_fdb_add-del-ops.patch
target/linux/generic/pending-6.12/711-02-net-dsa-qca8k-enable-flooding-to-both-CPU-port.patch
target/linux/generic/pending-6.12/711-03-net-dsa-qca8k-add-support-for-port_change_master.patch
target/linux/generic/pending-6.12/712-net-dsa-qca8k-enable-assisted-learning-on-CPU-port.patch
target/linux/generic/pending-6.12/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch
target/linux/generic/pending-6.12/732-00-net-ethernet-mtk_eth_soc-compile-out-netsys-v2-code-.patch
target/linux/generic/pending-6.12/737-net-ethernet-mtk_eth_soc-add-paths-and-SerDes-modes-.patch
target/linux/generic/pending-6.12/739-03-net-pcs-pcs-mtk-lynxi-add-platform-driver-for-MT7988.patch
target/linux/generic/pending-6.12/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch
target/linux/generic/pending-6.12/741-net-phy-broadcom-update-dependency-condition.patch
target/linux/generic/pending-6.12/742-net-phy-air_en8811h-reset-netdev-rules-when-LED-is-s.patch
target/linux/generic/pending-6.12/791-tg3-Fix-DMA-allocations-on-57766-devices.patch
target/linux/generic/pending-6.12/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch
target/linux/generic/pending-6.12/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch
target/linux/generic/pending-6.12/804-nvmem-core-support-mac-base-fixed-layout-cells.patch
target/linux/generic/pending-6.12/810-pci_disable_common_quirks.patch
target/linux/generic/pending-6.12/834-ledtrig-libata.patch
target/linux/generic/pending-6.12/840-hwrng-bcm2835-set-quality-to-1000.patch
target/linux/generic/pending-6.12/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch
target/linux/generic/pending-6.12/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch
target/linux/generic/pending-6.12/900-net-ag71xx-fix-qca9530-and-qca9550-mdio-probe.patch
target/linux/generic/pending-6.12/920-mangle_bootargs.patch

index 0844fcd6dbd6577ec569ce4430e18d1698357429..0547d1e451ec1fc973e2b6908f221954ed49aedb 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/compiler.h
 +++ b/include/linux/compiler.h
-@@ -202,6 +202,8 @@ void ftrace_likely_update(struct ftrace_
+@@ -214,6 +214,8 @@ void ftrace_likely_update(struct ftrace_
        __v;                                                            \
  })
  
@@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif /* __KERNEL__ */
  
  /*
-@@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const
+@@ -314,6 +316,4 @@ static inline void *offset_to_ptr(const
   */
  #define prevent_tail_call_optimization()      mb()
  
index ea7a25d8a0c28406aa5d708c4a8d2a92a5ad7efd..da67f254355ae53ef1a6ffdfeacc1d84df53ac26 100644 (file)
@@ -10,12 +10,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -599,7 +599,7 @@ endif
+@@ -583,7 +583,7 @@ endif
  # Allows the usage of unstable features in stable compilers.
  export RUSTC_BOOTSTRAP := 1
  
 -export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG
 +export ARCH SRCARCH SUBARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG
- export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN CARGO
+ export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN
  export HOSTRUSTC KBUILD_HOSTRUSTFLAGS
  export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
index 099b07ef7aff0de38b3039baf5390fd7f112bc49..9c903598bec95c1c534be95111d64bc4031b4fc9 100644 (file)
@@ -71,7 +71,7 @@ Signed-off-by: Tobias Wolf <dev-NTEO@vplace.de>
 
 --- a/mm/mm_init.c
 +++ b/mm/mm_init.c
-@@ -1673,7 +1673,7 @@ static void __init alloc_node_mem_map(st
+@@ -1632,7 +1632,7 @@ static void __init alloc_node_mem_map(st
        if (pgdat == NODE_DATA(0)) {
                mem_map = NODE_DATA(0)->node_mem_map;
                if (page_to_pfn(mem_map) != pgdat->node_start_pfn)
index b82f3d80129e02c3acd1d374e75be2a26efd0407..b5cc52dc028fdffff0bc3cbd8acbde262067d986 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -617,8 +617,8 @@ static int jffs2_rmdir (struct inode *di
+@@ -620,8 +620,8 @@ static int jffs2_rmdir (struct inode *di
        return ret;
  }
  
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  {
        struct jffs2_inode_info *f, *dir_f;
        struct jffs2_sb_info *c;
-@@ -758,7 +758,11 @@ static int jffs2_mknod (struct mnt_idmap
+@@ -761,7 +761,11 @@ static int jffs2_mknod (struct mnt_idmap
        mutex_unlock(&dir_f->sem);
        jffs2_complete_reservation(c);
  
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        return 0;
  
   fail:
-@@ -766,6 +770,19 @@ static int jffs2_mknod (struct mnt_idmap
+@@ -769,6 +773,19 @@ static int jffs2_mknod (struct mnt_idmap
        return ret;
  }
  
@@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int jffs2_rename (struct mnt_idmap *idmap,
                         struct inode *old_dir_i, struct dentry *old_dentry,
                         struct inode *new_dir_i, struct dentry *new_dentry,
-@@ -777,7 +794,7 @@ static int jffs2_rename (struct mnt_idma
+@@ -780,7 +797,7 @@ static int jffs2_rename (struct mnt_idma
        uint8_t type;
        uint32_t now;
  
@@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                return -EINVAL;
  
        /* The VFS will check for us and prevent trying to rename a
-@@ -843,9 +860,14 @@ static int jffs2_rename (struct mnt_idma
+@@ -846,9 +863,14 @@ static int jffs2_rename (struct mnt_idma
        if (d_is_dir(old_dentry) && !victim_f)
                inc_nlink(new_dir_i);
  
index c3a528ec9026aa8bde34ed7af9b564d82aeb4823..44ba3bd959c6c630bc1934de2cb400624005c29e 100644 (file)
@@ -6,7 +6,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/fs/jffs2/dir.c
 +++ b/fs/jffs2/dir.c
-@@ -791,18 +791,31 @@ static int jffs2_rename (struct mnt_idma
+@@ -794,18 +794,31 @@ static int jffs2_rename (struct mnt_idma
        int ret;
        struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb);
        struct jffs2_inode_info *victim_f = NULL;
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                victim_f = JFFS2_INODE_INFO(d_inode(new_dentry));
                if (d_is_dir(new_dentry)) {
                        struct jffs2_full_dirent *fd;
-@@ -837,7 +850,7 @@ static int jffs2_rename (struct mnt_idma
+@@ -840,7 +853,7 @@ static int jffs2_rename (struct mnt_idma
        if (ret)
                return ret;
  
@@ -49,7 +49,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                /* There was a victim. Kill it off nicely */
                if (d_is_dir(new_dentry))
                        clear_nlink(d_inode(new_dentry));
-@@ -863,6 +876,12 @@ static int jffs2_rename (struct mnt_idma
+@@ -866,6 +879,12 @@ static int jffs2_rename (struct mnt_idma
        if (flags & RENAME_WHITEOUT)
                /* Replace with whiteout */
                ret = jffs2_whiteout(idmap, old_dir_i, old_dentry);
@@ -62,7 +62,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        else
                /* Unlink the original */
                ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i),
-@@ -895,7 +914,7 @@ static int jffs2_rename (struct mnt_idma
+@@ -898,7 +917,7 @@ static int jffs2_rename (struct mnt_idma
                return ret;
        }
  
@@ -70,4 +70,4 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +      if (d_is_dir(old_dentry) && !(flags & RENAME_EXCHANGE))
                drop_nlink(old_dir_i);
  
-       old_dir_i->i_mtime = inode_set_ctime_to_ts(old_dir_i, ITIME(now));
+       inode_set_mtime_to_ts(old_dir_i,
index 94b22603d8c261d4db30285cdb8d8eb29704832e..fcb1881762e69067deec7d65381478e0e51ccf7b 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1460,6 +1460,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1525,6 +1525,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
          the unaligned access emulation.
          see arch/parisc/kernel/unaligned.c for reference
  
@@ -63,32 +63,30 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int all_symbols;
 +static int uncompressed;
  static int absolute_percpu;
- static int base_relative;
- static int lto_clang;
-@@ -453,13 +454,15 @@ static void write_src(void)
-       }
-       printf("\n");
  
--      /*
--       * Now that we wrote out the compressed symbol names, restore the
--       * original names, which are needed in some of the later steps.
--       */
--      for (i = 0; i < table_cnt; i++) {
+ static int token_profit[0x10000];
+@@ -412,12 +413,14 @@ static void write_src(void)
+               for (k = 0; k < table[i]->len; k++)
+                       printf(", 0x%02x", table[i]->sym[k]);
+-              /*
+-               * Now that we wrote out the compressed symbol name, restore the
+-               * original name and print it in the comment.
+-               */
 -              expand_symbol(table[i]->sym, table[i]->len, buf);
 -              strcpy((char *)table[i]->sym, buf);
-+      if (!uncompressed) {
-+              /*
-+               * Now that we wrote out the compressed symbol names, restore the
-+               * original names, which are needed in some of the later steps.
-+               */
-+              for (i = 0; i < table_cnt; i++) {
++              if (!uncompressed) {
++                      /*
++                       * Now that we wrote out the compressed symbol name, restore the
++                       * original name and print it in the comment.
++                       */
 +                      expand_symbol(table[i]->sym, table[i]->len, buf);
 +                      strcpy((char *)table[i]->sym, buf);
 +              }
+               printf("\t/* %s */\n", table[i]->sym);
        }
-       output_label("kallsyms_markers");
-@@ -469,20 +472,22 @@ static void write_src(void)
+       printf("\n");
+@@ -429,20 +432,22 @@ static void write_src(void)
  
        free(markers);
  
@@ -99,8 +97,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 -              expand_symbol(best_table[i], best_table_len[i], buf);
 -              printf("\t.asciz\t\"%s\"\n", buf);
 -              off += strlen(buf) + 1;
--      }
--      printf("\n");
 +      if (!uncompressed) {
 +              output_label("kallsyms_token_table");
 +              off = 0;
@@ -111,20 +107,22 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +                      off += strlen(buf) + 1;
 +              }
 +              printf("\n");
--      output_label("kallsyms_token_index");
--      for (i = 0; i < 256; i++)
--              printf("\t.short\t%d\n", best_idx[i]);
--      printf("\n");
++
 +              output_label("kallsyms_token_index");
 +              for (i = 0; i < 256; i++)
 +                      printf("\t.short\t%d\n", best_idx[i]);
 +              printf("\n");
-+      }
+       }
+-      printf("\n");
+-
+-      output_label("kallsyms_token_index");
+-      for (i = 0; i < 256; i++)
+-              printf("\t.short\t%d\n", best_idx[i]);
+-      printf("\n");
  
-       if (!base_relative)
-               output_label("kallsyms_addresses");
-@@ -582,6 +587,9 @@ static unsigned char *find_token(unsigne
+       output_label("kallsyms_offsets");
+@@ -532,6 +537,9 @@ static unsigned char *find_token(unsigne
  {
        int i;
  
@@ -134,7 +132,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        for (i = 0; i < len - 1; i++) {
                if (str[i] == token[0] && str[i+1] == token[1])
                        return &str[i];
-@@ -654,6 +662,9 @@ static void optimize_result(void)
+@@ -604,6 +612,9 @@ static void optimize_result(void)
  {
        int i, best;
  
@@ -144,24 +142,24 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        /* using the '\0' symbol last allows compress_symbols to use standard
         * fast string functions */
        for (i = 255; i >= 0; i--) {
-@@ -815,6 +826,7 @@ int main(int argc, char **argv)
+@@ -763,6 +774,7 @@ int main(int argc, char **argv)
+               static const struct option long_options[] = {
+                       {"all-symbols",     no_argument, &all_symbols,     1},
                        {"absolute-percpu", no_argument, &absolute_percpu, 1},
-                       {"base-relative",   no_argument, &base_relative,   1},
-                       {"lto-clang",       no_argument, &lto_clang,       1},
 +                      {"uncompressed",   no_argument, &uncompressed,   1},
                        {},
                };
  
 --- a/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
-@@ -165,6 +165,10 @@ kallsyms()
-               kallsymopt="${kallsymopt} --lto-clang"
+@@ -144,6 +144,10 @@ kallsyms()
+               kallsymopt="${kallsymopt} --absolute-percpu"
        fi
  
 +      if is_enabled CONFIG_KALLSYMS_UNCOMPRESSED; then
 +              kallsymopt="${kallsymopt} --uncompressed"
 +      fi
 +
-       info KSYMS ${2}
-       scripts/kallsyms ${kallsymopt} ${1} > ${2}
- }
+       info KSYMS "${2}.S"
+       scripts/kallsyms ${kallsymopt} "${1}" > "${2}.S"
index 34018e2c2f7420a3717cf0037bf27b848aa6b651..52d6f5c8689161402d0e7025cc03f73df3ceb186 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/lib/vsprintf.c
 +++ b/lib/vsprintf.c
-@@ -982,8 +982,10 @@ char *symbol_string(char *buf, char *end
+@@ -983,8 +983,10 @@ char *symbol_string(char *buf, char *end
                    struct printf_spec spec, const char *fmt)
  {
        unsigned long value;
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
  
        if (fmt[1] == 'R')
-@@ -1004,8 +1006,14 @@ char *symbol_string(char *buf, char *end
+@@ -1005,8 +1007,14 @@ char *symbol_string(char *buf, char *end
  
        return string_nocheck(buf, end, sym, spec);
  #else
index 7ca84e040def50640f8dcc36e726ebe3e8d84c2b..772d9feeb8b003cacf58a55f6937d2b6c972640e 100644 (file)
@@ -16,16 +16,16 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
 
 --- a/drivers/platform/Kconfig
 +++ b/drivers/platform/Kconfig
-@@ -14,3 +14,5 @@ source "drivers/platform/olpc/Kconfig"
- source "drivers/platform/surface/Kconfig"
+@@ -18,3 +18,5 @@ source "drivers/platform/surface/Kconfig
  source "drivers/platform/x86/Kconfig"
+ source "drivers/platform/arm64/Kconfig"
 +
 +source "drivers/platform/mikrotik/Kconfig"
 --- a/drivers/platform/Makefile
 +++ b/drivers/platform/Makefile
-@@ -11,3 +11,4 @@ obj-$(CONFIG_OLPC_EC)                += olpc/
- obj-$(CONFIG_GOLDFISH)                += goldfish/
- obj-$(CONFIG_CHROME_PLATFORMS)        += chrome/
+@@ -13,3 +13,4 @@ obj-$(CONFIG_CHROME_PLATFORMS)       += chrome
+ obj-$(CONFIG_CZNIC_PLATFORMS) += cznic/
  obj-$(CONFIG_SURFACE_PLATFORMS)       += surface/
+ obj-$(CONFIG_ARM64_PLATFORM_DEVICES)  += arm64/
 +obj-$(CONFIG_MIKROTIK)                += mikrotik/
index ebeeb7bae703a735baf2bc8a2a63e1dfaab05f68..a4e0daa91dd2309c4b7b665232a0bdc42f0b5a1a 100644 (file)
@@ -9,7 +9,7 @@ Acked-by: Rob Landley <rob@landley.net>
 ---
 --- a/arch/mips/Kconfig
 +++ b/arch/mips/Kconfig
-@@ -1013,9 +1013,6 @@ config FW_ARC
+@@ -1055,9 +1055,6 @@ config FW_ARC
  config ARCH_MAY_HAVE_PC_FDC
        bool
  
@@ -19,7 +19,7 @@ Acked-by: Rob Landley <rob@landley.net>
  config CEVT_BCM1480
        bool
  
-@@ -2996,6 +2993,18 @@ choice
+@@ -2991,6 +2988,18 @@ choice
                bool "Extend builtin kernel arguments with bootloader arguments"
  endchoice
  
index b12058053b1d63a8e436f63cdc1a733802a057c3..b9bd6104a4265d9b277e3d00c9282b8f8a96ecd3 100644 (file)
@@ -11,9 +11,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -163,7 +163,7 @@ cflags-$(CONFIG_CPU_R4300) += -march=r43
- cflags-$(CONFIG_CPU_R4X00)    += -march=r4600 -Wa,--trap
- cflags-$(CONFIG_CPU_TX49XX)   += -march=r4600 -Wa,--trap
+@@ -153,7 +153,7 @@ cflags-$(CONFIG_CPU_R4300) += $(call cc-
+ cflags-$(CONFIG_CPU_R4X00)    += $(call cc-option,-march=r4600,-march=mips3) -Wa,--trap
+ cflags-$(CONFIG_CPU_TX49XX)   += $(call cc-option,-march=r4600,-march=mips3) -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R1)        += -march=mips32 -Wa,--trap
 -cflags-$(CONFIG_CPU_MIPS32_R2)        += -march=mips32r2 -Wa,--trap
 +cflags-$(CONFIG_CPU_MIPS32_R2)        += -march=mips32r2 -mtune=34kc -Wa,--trap
index 54cc9ba64767d87c89d931b70b88320db25d5e23..c654f6baf6d0cfa6bb5d6a0ac21c294bedc066a6 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/arch/arm/kernel/module.c
 +++ b/arch/arm/kernel/module.c
-@@ -146,6 +146,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons
+@@ -112,6 +112,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons
                        return -ENOEXEC;
                }
  
index 3f553b28b34be7a292ccee52039609a777198cf8..a8c6b7a5da3a54c8505c204507c2208eda4698df 100644 (file)
@@ -11,9 +11,9 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
 
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
-@@ -9,14 +9,11 @@
- #include <linux/delay.h>
+@@ -10,14 +10,11 @@
  #include <linux/libfdt.h>
+ #include <linux/reboot.h>
  
 +#include <asm/bootinfo.h>
  #include <asm/cacheflush.h>
@@ -29,7 +29,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
  static unsigned long reboot_code_buffer;
  
-@@ -30,6 +27,101 @@ void (*_crash_smp_send_stop)(void) = NUL
+@@ -31,6 +28,101 @@ void (*_crash_smp_send_stop)(void) = NUL
  void (*_machine_kexec_shutdown)(void) = NULL;
  void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL;
  
@@ -131,7 +131,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  static void kexec_image_info(const struct kimage *kimage)
  {
        unsigned long i;
-@@ -99,6 +191,18 @@ machine_kexec_prepare(struct kimage *kim
+@@ -100,6 +192,18 @@ machine_kexec_prepare(struct kimage *kim
  #endif
  
        kexec_image_info(kimage);
@@ -150,7 +150,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
        if (_machine_kexec_prepare)
                return _machine_kexec_prepare(kimage);
-@@ -161,7 +265,7 @@ machine_crash_shutdown(struct pt_regs *r
+@@ -162,7 +266,7 @@ machine_crash_shutdown(struct pt_regs *r
  void kexec_nonboot_cpu_jump(void)
  {
        local_flush_icache_range((unsigned long)relocated_kexec_smp_wait,
@@ -159,7 +159,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
        relocated_kexec_smp_wait(NULL);
  }
-@@ -199,7 +303,7 @@ void kexec_reboot(void)
+@@ -200,7 +304,7 @@ void kexec_reboot(void)
         * machine_kexec() CPU.
         */
        local_flush_icache_range(reboot_code_buffer,
@@ -168,7 +168,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
        do_kexec = (void *)reboot_code_buffer;
        do_kexec();
-@@ -212,10 +316,12 @@ machine_kexec(struct kimage *image)
+@@ -213,10 +317,12 @@ machine_kexec(struct kimage *image)
        unsigned long *ptr;
  
        reboot_code_buffer =
@@ -182,7 +182,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
        if (image->type == KEXEC_TYPE_DEFAULT) {
                kexec_indirection_page =
-@@ -223,9 +329,19 @@ machine_kexec(struct kimage *image)
+@@ -224,9 +330,19 @@ machine_kexec(struct kimage *image)
        } else {
                kexec_indirection_page = (unsigned long)&image->head;
        }
@@ -204,7 +204,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
        /*
         * The generic kexec code builds a page list with physical
-@@ -256,7 +372,7 @@ machine_kexec(struct kimage *image)
+@@ -257,7 +373,7 @@ machine_kexec(struct kimage *image)
  #ifdef CONFIG_SMP
        /* All secondary cpus now may jump to kexec_wait cycle */
        relocated_kexec_smp_wait = reboot_code_buffer +
@@ -251,7 +251,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
        PTR_L a0,       arg0
        PTR_L a1,       arg1
        PTR_L a2,       arg2
-@@ -98,7 +99,7 @@ done:
+@@ -97,7 +98,7 @@ done:
  #endif
        /* jump to kexec_start_address */
        j               s1
@@ -260,7 +260,7 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  
  #ifdef CONFIG_SMP
  /*
-@@ -177,8 +178,15 @@ EXPORT(kexec_indirection_page)
+@@ -176,8 +177,15 @@ EXPORT(kexec_indirection_page)
        PTR_WD          0
        .size           kexec_indirection_page, PTRSIZE
  
index 1848a84cc4970f0f60983e1f45d5580b00c27c49..2c9808de2a3cb831b658617f31cdd2f20374f96a 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
 
 --- a/arch/arc/kernel/unaligned.c
 +++ b/arch/arc/kernel/unaligned.c
-@@ -202,7 +202,7 @@ int misaligned_fixup(unsigned long addre
+@@ -203,7 +203,7 @@ int misaligned_fixup(unsigned long addre
        char buf[TASK_COMM_LEN];
  
        /* handle user mode only and only if enabled by sysadmin */
index 71173b081c104c09a557fdb5c11abc1f97a3613f..c812a08b91d2e40eb53cfaf4b42053f769d4b257 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
 
 --- a/arch/powerpc/Kconfig
 +++ b/arch/powerpc/Kconfig
-@@ -251,7 +251,7 @@ config PPC
+@@ -254,7 +254,7 @@ config PPC
        select HAVE_KERNEL_GZIP
        select HAVE_KERNEL_LZMA                 if DEFAULT_UIMAGE
        select HAVE_KERNEL_LZO                  if DEFAULT_UIMAGE
index 3bf7ae98bf35f2cdf4483434aada998ee51ac888..a99eed4716ada9394678dedb89122fe7070b9172 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
  extern void prom_free_prom_memory(void);
 --- a/arch/mips/kernel/setup.c
 +++ b/arch/mips/kernel/setup.c
-@@ -90,21 +90,27 @@ static struct resource bss_resource = {
+@@ -86,21 +86,27 @@ static struct resource bss_resource = {
  unsigned long __kaslr_offset __ro_after_init;
  EXPORT_SYMBOL(__kaslr_offset);
  
@@ -64,7 +64,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
        }
  
        pr_debug("Memory: %lluMB of RAM detected at 0x%llx (min: %lluMB, max: %lluMB)\n",
-@@ -115,6 +121,7 @@ void __init detect_memory_region(phys_ad
+@@ -111,6 +117,7 @@ void __init detect_memory_region(phys_ad
  
        memblock_add(start, size);
  }
index bd1c3a123f0f0d58619fa8dd6809ad18700cff62..838f9ac9906b19dc52c3a3d9a2ae1c20ff55dee4 100644 (file)
@@ -230,7 +230,7 @@ Subject: [PATCH] mtd: mtdsplit support
                mtd_add_partition_attrs(child);
  
                /* Look for subpartitions */
-@@ -439,31 +584,6 @@ err_del_partitions:
+@@ -443,31 +588,6 @@ err_del_partitions:
        return ret;
  }
  
index 54a02d8ecd95d3a6f3934526ec5ab1a8b24b8518..119f1da6dc499ea35120e45fd025db90f4583a4e 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 
 --- a/drivers/mtd/mtdcore.c
 +++ b/drivers/mtd/mtdcore.c
-@@ -548,6 +548,29 @@ static int mtd_nvmem_add(struct mtd_info
+@@ -549,6 +549,29 @@ static int mtd_nvmem_add(struct mtd_info
        struct device_node *node = mtd_get_of_node(mtd);
        struct nvmem_config config = {};
  
index 5a812b86bfeab41035f5b8db3f774bec899ca12b..e8ad20433730d43311bf6429b1f86bc30eb87af8 100644 (file)
@@ -80,7 +80,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
 
 --- a/drivers/mtd/mtdcore.c
 +++ b/drivers/mtd/mtdcore.c
-@@ -198,6 +198,15 @@ static ssize_t mtd_erasesize_show(struct
+@@ -199,6 +199,15 @@ static ssize_t mtd_erasesize_show(struct
  }
  MTD_DEVICE_ATTR_RO(erasesize);
  
@@ -96,7 +96,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
  static ssize_t mtd_writesize_show(struct device *dev,
                struct device_attribute *attr, char *buf)
  {
-@@ -343,6 +352,7 @@ static struct attribute *mtd_attrs[] = {
+@@ -344,6 +353,7 @@ static struct attribute *mtd_attrs[] = {
        &dev_attr_flags.attr,
        &dev_attr_size.attr,
        &dev_attr_erasesize.attr,
@@ -193,24 +193,24 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
        default y
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -1150,6 +1150,8 @@ static u8 spi_nor_convert_3to4_erase(u8
+@@ -1158,6 +1158,8 @@ static u8 spi_nor_convert_3to4_erase(u8
  
  static bool spi_nor_has_uniform_erase(const struct spi_nor *nor)
  {
 +      if (IS_ENABLED(CONFIG_MTD_SPI_NOR_USE_VARIABLE_ERASE))
 +              return false;
-       return !!nor->params->erase_map.uniform_erase_type;
+       return !!nor->params->erase_map.uniform_region.erase_mask;
  }
  
-@@ -2582,6 +2584,7 @@ static int spi_nor_select_erase(struct s
+@@ -2516,6 +2518,7 @@ static int spi_nor_select_erase(struct s
  {
        struct spi_nor_erase_map *map = &nor->params->erase_map;
        const struct spi_nor_erase_type *erase = NULL;
 +      const struct spi_nor_erase_type *erase_minor = NULL;
        struct mtd_info *mtd = &nor->mtd;
-       u32 wanted_size = nor->info->sector_size;
        int i;
-@@ -2614,8 +2617,9 @@ static int spi_nor_select_erase(struct s
+@@ -2542,8 +2545,9 @@ static int spi_nor_select_erase(struct s
         */
        for (i = SNOR_ERASE_TYPE_MAX - 1; i >= 0; i--) {
                if (map->erase_type[i].size) {
@@ -222,7 +222,7 @@ Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
                }
        }
  
-@@ -2623,6 +2627,9 @@ static int spi_nor_select_erase(struct s
+@@ -2551,6 +2555,9 @@ static int spi_nor_select_erase(struct s
                return -EINVAL;
  
        mtd->erasesize = erase->size;
index 35e80d6dcc95b53d56a48edc3f11e0c780649479..8ce112357a27db6e73836380f8d06e84f43afed6 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
 
 --- a/drivers/mtd/parsers/Kconfig
 +++ b/drivers/mtd/parsers/Kconfig
-@@ -67,6 +67,22 @@ config MTD_CMDLINE_PARTS
+@@ -62,6 +62,22 @@ config MTD_CMDLINE_PARTS
  
          If unsure, say 'N'.
  
@@ -35,7 +35,7 @@ Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
        default y
 --- a/drivers/mtd/parsers/Makefile
 +++ b/drivers/mtd/parsers/Makefile
-@@ -4,6 +4,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS)                += bcm4
+@@ -3,6 +3,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS)                += bcm4
  obj-$(CONFIG_MTD_BCM63XX_PARTS)               += bcm63xxpart.o
  obj-$(CONFIG_MTD_BRCM_U_BOOT)         += brcm_u-boot.o
  obj-$(CONFIG_MTD_CMDLINE_PARTS)               += cmdlinepart.o
index a42dcc868f7baff23efeca3a704be576e9c83e8f..d516e1dc78d631e12e9f6ad1d80ceca25a7cc409 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
 
 --- a/drivers/mtd/parsers/Kconfig
 +++ b/drivers/mtd/parsers/Kconfig
-@@ -236,3 +236,12 @@ config MTD_SERCOMM_PARTS
+@@ -231,3 +231,12 @@ config MTD_SERCOMM_PARTS
          partition map. This partition table contains real partition
          offsets, which may differ from device to device depending on the
          number and location of bad blocks on NAND.
@@ -31,7 +31,7 @@ Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
 +       formatted DTS.
 --- a/drivers/mtd/parsers/Makefile
 +++ b/drivers/mtd/parsers/Makefile
-@@ -17,3 +17,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS)              += scpa
+@@ -16,3 +16,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS)              += scpa
  obj-$(CONFIG_MTD_SHARPSL_PARTS)               += sharpslpart.o
  obj-$(CONFIG_MTD_REDBOOT_PARTS)               += redboot.o
  obj-$(CONFIG_MTD_QCOMSMEM_PARTS)      += qcomsmempart.o
index 35b908ca6d6c31485ca3da42b95024a5a1538ff0..dbc66da8007e97ae8b46d877767be3c686443673 100644 (file)
@@ -49,7 +49,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  #include "check.h"
  
  static int (*const check_part[])(struct parsed_partitions *) = {
-@@ -295,6 +297,74 @@ static ssize_t whole_disk_show(struct de
+@@ -284,6 +286,74 @@ static ssize_t whole_disk_show(struct de
  }
  static const DEVICE_ATTR(whole_disk, 0444, whole_disk_show, NULL);
  
@@ -108,7 +108,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +               * the specified partno needs to match.
 +               */
 +              got_partno = !fwnode_property_read_u32(fw_part, "partno", &partno);
-+              if (got_partno && bdev->bd_partno != partno)
++              if (got_partno && (atomic_read(&bdev->__bd_flags) & BD_PARTNO) != partno)
 +                      continue;
 +
 +              /* Skip if no matching criteria is present in firmware node */
@@ -124,7 +124,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /*
   * Must be called either with open_mutex held, before a disk can be opened or
   * after all disk users are gone.
-@@ -377,6 +447,8 @@ static struct block_device *add_partitio
+@@ -358,6 +428,8 @@ static struct block_device *add_partitio
                        goto out_put;
        }
  
index 667852e38794af4aa7b76585a506bf530edf16c6..3100e159b2e1e3cbb45d63a59d11d3bb54fd2bf3 100644 (file)
@@ -44,7 +44,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/block/Kconfig
 +++ b/block/Kconfig
-@@ -208,6 +208,12 @@ config BLK_INLINE_ENCRYPTION_FALLBACK
+@@ -209,6 +209,12 @@ config BLK_INLINE_ENCRYPTION_FALLBACK
          by falling back to the kernel crypto API when inline
          encryption hardware is not present.
  
@@ -59,7 +59,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  config BLK_MQ_PCI
 --- a/block/Makefile
 +++ b/block/Makefile
-@@ -40,3 +40,4 @@ obj-$(CONFIG_BLK_INLINE_ENCRYPTION)  += b
+@@ -38,3 +38,4 @@ obj-$(CONFIG_BLK_INLINE_ENCRYPTION)  += b
                                           blk-crypto-sysfs.o
  obj-$(CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK)  += blk-crypto-fallback.o
  obj-$(CONFIG_BLOCK_HOLDER_DEPRECATED) += holder.o
@@ -156,7 +156,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +device_initcall(blk_notifications_init);
 --- a/include/linux/blkdev.h
 +++ b/include/linux/blkdev.h
-@@ -1567,4 +1567,15 @@ struct io_comp_batch {
+@@ -1689,4 +1689,15 @@ static inline bool bdev_can_atomic_write
  
  #define DEFINE_IO_COMP_BATCH(name)    struct io_comp_batch name = { }
  
index 79abcd0e6bfef04f94de22fe825fe8124ae687f8..36dc9e6a515ef13efba8d2d16afa249a14edd5f2 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/include/linux/blkdev.h
 +++ b/include/linux/blkdev.h
-@@ -80,11 +80,13 @@ struct partition_meta_info {
+@@ -82,11 +82,13 @@ struct partition_meta_info {
   * ``GENHD_FL_NO_PART``: partition support is disabled.  The kernel will not
   * scan for partitions from add_disk, and users can't add partitions manually.
   *
index 2ee170d47b855f0157848cef4357b095a87435ca..85438df61b637346e2443065517b83261542ff86 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mmc/core/bus.c
 +++ b/drivers/mmc/core/bus.c
-@@ -364,6 +364,8 @@ int mmc_add_card(struct mmc_card *card)
+@@ -368,6 +368,8 @@ int mmc_add_card(struct mmc_card *card)
  
        mmc_add_card_debugfs(card);
        card->dev.of_node = mmc_of_find_child_device(card->host, 0);
index 66f35156218e0f45d8ce7946194a530fff32e07f..e37d15b1243881056ebfcfe0fadcb27ef2af10e6 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mmc/core/block.c
 +++ b/drivers/mmc/core/block.c
-@@ -2620,6 +2620,10 @@ static struct mmc_blk_data *mmc_blk_allo
+@@ -2678,6 +2678,10 @@ static struct mmc_blk_data *mmc_blk_allo
        if (area_type == MMC_BLK_DATA_AREA_MAIN)
                dev_set_drvdata(&card->dev, md);
        disk_fwnode = mmc_blk_get_partitions_node(parent, subname);
index 7f9c512e457063cde79d03abaa97ac94feac0aee..7ef0d0198806dc5442a45d81802c6b07ce729567 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mmc/core/block.c
 +++ b/drivers/mmc/core/block.c
-@@ -2566,6 +2566,7 @@ static struct mmc_blk_data *mmc_blk_allo
+@@ -2644,6 +2644,7 @@ static struct mmc_blk_data *mmc_blk_allo
        md->disk->major = MMC_BLOCK_MAJOR;
        md->disk->minors = perdev_minors;
        md->disk->first_minor = devidx * perdev_minors;
index 09a508b29e836f198f3f176af32259e360ac2381..5667e273f1724a528ac47a898298ad9e867bab19 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -114,6 +114,7 @@ static int macronix_nor_late_init(struct
+@@ -194,6 +194,7 @@ static int macronix_nor_late_init(struct
  {
        if (!nor->params->set_4byte_addr_mode)
                nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
index 303e488433a07a36013f46d300e68e8e9138395f..afc5e48981e322fbb9a7ec0bf5d896f6450311d4 100644 (file)
@@ -8,12 +8,15 @@ Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
 
 --- a/drivers/mtd/spi-nor/eon.c
 +++ b/drivers/mtd/spi-nor/eon.c
-@@ -17,6 +17,8 @@ static const struct flash_info eon_nor_p
-       { "en25p64",    INFO(0x1c2017, 0, 64 * 1024,  128) },
-       { "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128)
-               NO_SFDP_FLAGS(SECT_4K) },
-+      { "en25q128",   INFO(0x1c3018, 0, 64 * 1024,  256)
-+              NO_SFDP_FLAGS(SECT_4K) },
-       { "en25q80a",   INFO(0x1c3014, 0, 64 * 1024,   16)
-               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ) },
-       { "en25qh16",   INFO(0x1c7015, 0, 64 * 1024,   32)
+@@ -18,6 +18,11 @@ static const struct flash_info eon_nor_p
+               .name = "en25p64",
+               .size = SZ_8M,
+       }, {
++              .id = SNOR_ID(0x1c, 0x30, 0x18),
++              .name = "en25q128",
++              .size = SZ_16M,
++              .no_sfdp_flags = SECT_4K,
++      }, {
+               .id = SNOR_ID(0x1c, 0x30, 0x14),
+               .name = "en25q80a",
+               .size = SZ_1M,
index 6740d1d7beb9f7b6463829d5bf1440ef6bd7f280..4dd229bde9d79f9f9bf5380a034d1c6f6f063dd0 100644 (file)
@@ -11,11 +11,14 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/mtd/spi-nor/eon.c
 +++ b/drivers/mtd/spi-nor/eon.c
-@@ -19,6 +19,7 @@ static const struct flash_info eon_nor_p
-               NO_SFDP_FLAGS(SECT_4K) },
-       { "en25q128",   INFO(0x1c3018, 0, 64 * 1024,  256)
-               NO_SFDP_FLAGS(SECT_4K) },
-+      { "en25qx128a", INFO(0x1c7118, 0, 64 * 1024, 256) },
-       { "en25q80a",   INFO(0x1c3014, 0, 64 * 1024,   16)
-               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ) },
-       { "en25qh16",   INFO(0x1c7015, 0, 64 * 1024,   32)
+@@ -23,6 +23,10 @@ static const struct flash_info eon_nor_p
+               .size = SZ_16M,
+               .no_sfdp_flags = SECT_4K,
+       }, {
++              .id = SNOR_ID(0x1c, 0x71, 0x18),
++              .name = "en25qx128a",
++              .size = SZ_16M,
++      }, {
+               .id = SNOR_ID(0x1c, 0x30, 0x14),
+               .name = "en25q80a",
+               .size = SZ_1M,
index 945f5baf1061c0fae038ecc5dd4719dd4c685a77..be8bafa76aff28083461f77075a54f5cc8368256 100644 (file)
@@ -31,9 +31,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/mtd/spi-nor/Makefile
 +++ b/drivers/mtd/spi-nor/Makefile
-@@ -17,6 +17,7 @@ spi-nor-objs                 += sst.o
+@@ -14,6 +14,7 @@ spi-nor-objs                 += spansion.o
+ spi-nor-objs                  += sst.o
  spi-nor-objs                  += winbond.o
- spi-nor-objs                  += xilinx.o
  spi-nor-objs                  += xmc.o
 +spi-nor-objs                  += xtx.o
  spi-nor-$(CONFIG_DEBUG_FS)    += debugfs.o
@@ -41,7 +41,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- /dev/null
 +++ b/drivers/mtd/spi-nor/xtx.c
-@@ -0,0 +1,17 @@
+@@ -0,0 +1,20 @@
 +// SPDX-License-Identifier: GPL-2.0
 +#include <linux/mtd/spi-nor.h>
 +
@@ -49,9 +49,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +
 +static const struct flash_info xtx_parts[] = {
 +      /* XTX Technology (Shenzhen) Limited */
-+      { "xt25f128b", INFO(0x0B4018, 0, 64 * 1024, 256)
-+              NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+                            SPI_NOR_QUAD_READ) },
++      {
++              .id = SNOR_ID(0x0B, 0x40, 0x18),
++              .name = "xt25f128b",
++              .size = SZ_16M,
++              .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
++      },
 +};
 +
 +const struct spi_nor_manufacturer spi_nor_xtx = {
@@ -61,9 +64,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +};
 --- a/drivers/mtd/spi-nor/core.c
 +++ b/drivers/mtd/spi-nor/core.c
-@@ -2017,6 +2017,7 @@ static const struct spi_nor_manufacturer
+@@ -1979,6 +1979,7 @@ static const struct spi_nor_manufacturer
+       &spi_nor_sst,
        &spi_nor_winbond,
-       &spi_nor_xilinx,
        &spi_nor_xmc,
 +      &spi_nor_xtx,
  };
@@ -71,9 +74,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static const struct flash_info spi_nor_generic_flash = {
 --- a/drivers/mtd/spi-nor/core.h
 +++ b/drivers/mtd/spi-nor/core.h
-@@ -647,6 +647,7 @@ extern const struct spi_nor_manufacturer
+@@ -593,6 +593,7 @@ extern const struct spi_nor_manufacturer
+ extern const struct spi_nor_manufacturer spi_nor_sst;
  extern const struct spi_nor_manufacturer spi_nor_winbond;
- extern const struct spi_nor_manufacturer spi_nor_xilinx;
  extern const struct spi_nor_manufacturer spi_nor_xmc;
 +extern const struct spi_nor_manufacturer spi_nor_xtx;
  
index 3fdd354e6b265acca5cdbb700c4c4cc15c3bdac0..c4caf732ab56059334546b48a778505021498b19 100644 (file)
@@ -10,14 +10,16 @@ Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
 
 --- a/drivers/mtd/spi-nor/gigadevice.c
 +++ b/drivers/mtd/spi-nor/gigadevice.c
-@@ -34,6 +34,10 @@ static const struct spi_nor_fixups gd25q
- };
+@@ -35,6 +35,12 @@ static const struct spi_nor_fixups gd25q
  
  static const struct flash_info gigadevice_nor_parts[] = {
-+      { "gd25q05", INFO(0xc84010, 0, 64 * 1024,  1)
-+              FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
-+              NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+                            SPI_NOR_QUAD_READ) },
-       { "gd25q16", INFO(0xc84015, 0, 64 * 1024,  32)
-               FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
-               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
+       {
++              .id = SNOR_ID(0xc8, 0x40, 0x10),
++              .name = "gd25q05",
++              .size = SZ_64K,
++              .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
++              .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
++      }, {
+               .id = SNOR_ID(0xc8, 0x40, 0x15),
+               .name = "gd25q16",
+               .size = SZ_2M,
index ddd3405ae71dd9103925bf6d975a8372f5272dd7..2b34d145ee332140eab09858f72cbefe7275c0a3 100644 (file)
@@ -9,15 +9,17 @@ Subject: [PATCH] spi-nor/gigadevic: add gd25q512
 
 --- a/drivers/mtd/spi-nor/gigadevice.c
 +++ b/drivers/mtd/spi-nor/gigadevice.c
-@@ -71,6 +71,11 @@ static const struct flash_info gigadevic
-               FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB | SPI_NOR_TB_SR_BIT6)
-               FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
-               .fixups = &gd25q256_fixups },
-+      { "gd25q512", INFO(0xc84020, 0, 64 * 1024, 1024)
-+              FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
-+              FIXUP_FLAGS(SPI_NOR_4B_OPCODES)
-+              NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+                            SPI_NOR_QUAD_READ) },
- };
- const struct spi_nor_manufacturer spi_nor_gigadevice = {
+@@ -71,6 +71,13 @@ static const struct flash_info gigadevic
+               .fixups = &gd25q256_fixups,
+               .fixup_flags = SPI_NOR_4B_OPCODES,
+       }, {
++              .id = SNOR_ID(0xc8, 0x40, 0x20),
++              .name = "gd25q512",
++              .size = SZ_64M,
++              .flags = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB,
++              .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
++              .fixup_flags = SPI_NOR_4B_OPCODES,
++      }, {
+               .id = SNOR_ID(0xc8, 0x60, 0x16),
+               .name = "gd25lq32",
+               .size = SZ_4M,
index d5ebe20309737601278a02e9a88b44ad7e5e1115..1e296eedceb1d7776b3755924591bdc2a36217b1 100644 (file)
@@ -12,13 +12,16 @@ flash.
 
 --- a/drivers/mtd/spi-nor/esmt.c
 +++ b/drivers/mtd/spi-nor/esmt.c
-@@ -10,6 +10,9 @@
+@@ -10,6 +10,12 @@
  
  static const struct flash_info esmt_nor_parts[] = {
-       /* ESMT */
-+      { "f25l16pa-2s", INFO(0x8c2115, 0, 64 * 1024, 32)
-+                      FLAGS(SPI_NOR_HAS_LOCK)
-+                      NO_SFDP_FLAGS(SECT_4K) },
-       { "f25l32pa", INFO(0x8c2016, 0, 64 * 1024, 64)
-               FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_SWP_IS_VOLATILE)
-               NO_SFDP_FLAGS(SECT_4K) },
+       {
++              .id = SNOR_ID(0x8c, 0x21, 0x15),
++              .name = "f25l16pa-2s",
++              .size = SZ_2M,
++              .flags = SPI_NOR_HAS_LOCK,
++              .no_sfdp_flags = SECT_4K,
++      }, {
+               .id = SNOR_ID(0x8c, 0x20, 0x16),
+               .name = "f25l32pa",
+               .size = SZ_4M,
index e8583cc2571abc5f031833cc391b81fe8efd727b..886d7558166253e1ab2334b260ede54da5b2c439 100644 (file)
@@ -13,13 +13,15 @@ Datasheet available at https://www.xmcwh.com/uploads/435/XM25QH128C.pdf
 
 --- a/drivers/mtd/spi-nor/xmc.c
 +++ b/drivers/mtd/spi-nor/xmc.c
-@@ -16,6 +16,9 @@ static const struct flash_info xmc_nor_p
-       { "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-                             SPI_NOR_QUAD_READ) },
-+      { "XM25QH128C", INFO(0x204018, 0, 64 * 1024, 256)
-+              NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+                            SPI_NOR_QUAD_READ) },
+@@ -19,6 +19,11 @@ static const struct flash_info xmc_nor_p
+               .name = "XM25QH128A",
+               .size = SZ_16M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
++      }, {
++              .id = SNOR_ID(0x20, 0x40, 0x18),
++              .name = "XM25QH128C",
++              .size = SZ_16M,
++              .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       },
  };
  
- const struct spi_nor_manufacturer spi_nor_xmc = {
index 7a3a0f33adb74a903e0dbeaf19d2723c4160716a..0eb45822e27ece52f4b05e08bb373c0463f99756 100644 (file)
@@ -49,7 +49,7 @@ Submitted-by: Daniel Danzberger <daniel@dd-wrt.com>
  obj-$(CONFIG_MTD_SPI_NAND) += spinand.o
 --- a/drivers/mtd/nand/spi/core.c
 +++ b/drivers/mtd/nand/spi/core.c
-@@ -940,6 +940,7 @@ static const struct spinand_manufacturer
+@@ -1112,6 +1112,7 @@ static const struct spinand_manufacturer
        &alliancememory_spinand_manufacturer,
        &ato_spinand_manufacturer,
        &esmt_c8_spinand_manufacturer,
index e1e4f25e1192bc5407f21493b18f6721521cde0a..6e65c55b21e10f0c4d92ce1e7cd4091a47195d7b 100644 (file)
@@ -11,13 +11,15 @@ Signed-off-by: Joe Mullally <jwmullally@gmail.com>
 
 --- a/drivers/mtd/spi-nor/xmc.c
 +++ b/drivers/mtd/spi-nor/xmc.c
-@@ -13,6 +13,9 @@ static const struct flash_info xmc_nor_p
-       { "XM25QH64A", INFO(0x207017, 0, 64 * 1024, 128)
-               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-                             SPI_NOR_QUAD_READ) },
-+      { "XM25QH64C", INFO(0x204017, 0, 64 * 1024, 128)
-+              NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-+                            SPI_NOR_QUAD_READ) },
-       { "XM25QH128A", INFO(0x207018, 0, 64 * 1024, 256)
-               NO_SFDP_FLAGS(SECT_4K | SPI_NOR_DUAL_READ |
-                             SPI_NOR_QUAD_READ) },
+@@ -15,6 +15,11 @@ static const struct flash_info xmc_nor_p
+               .size = SZ_8M,
+               .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
+       }, {
++              .id = SNOR_ID(0x20, 0x40, 0x17),
++              .name = "XM25QH64C",
++              .size = SZ_8M,
++              .no_sfdp_flags = SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ,
++      }, {
+               .id = SNOR_ID(0x20, 0x70, 0x18),
+               .name = "XM25QH128A",
+               .size = SZ_16M,
index defde3f4269c210693f48b8fa85a1f4aa7f6ff0f..27b861110045f74a3004acdc4302314178b56d57 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/ubi/build.c
 +++ b/drivers/mtd/ubi/build.c
-@@ -1258,6 +1258,80 @@ static struct mtd_notifier ubi_mtd_notif
+@@ -1263,6 +1263,80 @@ static struct mtd_notifier ubi_mtd_notif
        .remove = ubi_notify_remove,
  };
  
@@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +
 +      mutex_lock(&ubi_devices_mutex);
 +      pr_notice("UBI: auto-attach mtd%d\n", mtd->index);
-+      err = ubi_attach_mtd_dev(mtd, UBI_DEV_NUM_AUTO, 0, 0, false);
++      err = ubi_attach_mtd_dev(mtd, UBI_DEV_NUM_AUTO, 0, 0, false, false);
 +      mutex_unlock(&ubi_devices_mutex);
 +      if (err < 0) {
 +              pr_err("UBI error: cannot attach mtd%d\n", mtd->index);
@@ -89,7 +89,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  static int __init ubi_init_attach(void)
  {
        int err, i, k;
-@@ -1308,6 +1382,12 @@ static int __init ubi_init_attach(void)
+@@ -1314,6 +1388,12 @@ static int __init ubi_init_attach(void)
                }
        }
  
index 0b607faa5e774af39218188d650205c29f8fcc9e..44c3bf36fbb4b8367e03b9c389fa7d876bff9b90 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/mtd/ubi/block.c
 +++ b/drivers/mtd/ubi/block.c
-@@ -570,10 +570,47 @@ match_volume_desc(struct ubi_volume_info
+@@ -575,10 +575,47 @@ match_volume_desc(struct ubi_volume_info
        return true;
  }
  
@@ -56,7 +56,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        struct ubiblock_param *p;
  
        /*
-@@ -586,6 +623,7 @@ ubiblock_create_from_param(struct ubi_vo
+@@ -591,6 +628,7 @@ ubiblock_create_from_param(struct ubi_vo
                if (!match_volume_desc(vi, p->name, p->ubi_num, p->vol_id))
                        continue;
  
@@ -64,7 +64,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
                ret = ubiblock_create(vi);
                if (ret) {
                        pr_err(
-@@ -594,6 +632,10 @@ ubiblock_create_from_param(struct ubi_vo
+@@ -599,6 +637,10 @@ ubiblock_create_from_param(struct ubi_vo
                }
                break;
        }
index 297789e5396b3e61cd41c783085389038a0cf99c..7a4c633438258ccecbd708c772e324d1901de140 100644 (file)
@@ -8,7 +8,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -248,7 +248,30 @@ retry:
+@@ -250,7 +250,30 @@ retry:
  out:
        put_page(page);
  }
@@ -40,7 +40,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  #ifdef CONFIG_ROOT_NFS
  
  #define NFSROOT_TIMEOUT_MIN   5
-@@ -385,6 +408,11 @@ static inline void mount_block_root(char
+@@ -387,6 +410,11 @@ static inline void mount_block_root(char
  
  void __init mount_root(char *root_device_name)
  {
index 367bf6598e2a997052420fbd83c6e6a7228e6ec9..4007c8a8bd18ef108ce8590f997d65848f779532 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  #include "ubi-media.h"
  #include "ubi.h"
-@@ -428,6 +429,15 @@ int ubiblock_create(struct ubi_volume_in
+@@ -431,6 +432,15 @@ int ubiblock_create(struct ubi_volume_in
        dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)",
                 dev->ubi_num, dev->vol_id, vi->name);
        mutex_unlock(&devices_mutex);
index fc481462212cea54a57001c69b9040b52952d5f2..413431755f1d2c9ee31b4cd19cf334c6f1ae0a36 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                break;
 --- a/drivers/mtd/ubi/ubi.h
 +++ b/drivers/mtd/ubi/ubi.h
-@@ -780,6 +780,7 @@ struct ubi_attach_info {
+@@ -778,6 +778,7 @@ struct ubi_attach_info {
        int mean_ec;
        uint64_t ec_sum;
        int ec_count;
index e0cbc4508b0607433cd9a6f4c0a586122787b067..3d5f5768bc1605bfdfc633839fe474a8320657c0 100644 (file)
@@ -85,7 +85,7 @@ Signed-off-by: Bernhard Frauendienst <kernel@nospam.obeliks.de>
 +obj-$(CONFIG_MTD_VIRT_CONCAT)   += virt_concat.o
 --- /dev/null
 +++ b/drivers/mtd/composite/virt_concat.c
-@@ -0,0 +1,128 @@
+@@ -0,0 +1,127 @@
 +// SPDX-License-Identifier: GPL-2.0+
 +/*
 + * Virtual concat MTD device driver
@@ -94,6 +94,7 @@ Signed-off-by: Bernhard Frauendienst <kernel@nospam.obeliks.de>
 + * Author: Bernhard Frauendienst, kernel@nospam.obeliks.de
 + */
 +
++#include <linux/platform_device.h>
 +#include <linux/module.h>
 +#include <linux/device.h>
 +#include <linux/mtd/concat.h>
@@ -115,14 +116,14 @@ Signed-off-by: Bernhard Frauendienst <kernel@nospam.obeliks.de>
 +      struct mtd_info **devices;
 +};
 +
-+static int virt_concat_remove(struct platform_device *pdev)
++static void virt_concat_remove(struct platform_device *pdev)
 +{
 +      struct of_virt_concat *info;
 +      int i;
 +
 +      info = platform_get_drvdata(pdev);
 +      if (!info)
-+              return 0;
++              return;
 +
 +      // unset data for when this is called after a probe error
 +      platform_set_drvdata(pdev, NULL);
@@ -136,8 +137,6 @@ Signed-off-by: Bernhard Frauendienst <kernel@nospam.obeliks.de>
 +              for (i = 0; i < info->num_devices; i++)
 +                      put_mtd_device(info->devices[i]);
 +      }
-+
-+      return 0;
 +}
 +
 +static int virt_concat_probe(struct platform_device *pdev)
index 1a4d5a766f2281c00e69cbeabc726bf26058ec6d..0cf5b02dafea8da69212e33e8b5fedb8a2374e07 100644 (file)
@@ -22,11 +22,11 @@ Signed-off-by: Nick Hainke <vincent@systemli.org>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -48,6 +48,7 @@ static const struct flash_info macronix_
-       { "mx25l3255e",  INFO(0xc29e16, 0, 64 * 1024,  64)
-               NO_SFDP_FLAGS(SECT_4K) },
-       { "mx25l6405d",  INFO(0xc22017, 0, 64 * 1024, 128)
-+              FLAGS(SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP)
-               NO_SFDP_FLAGS(SECT_4K) },
-       { "mx25u2033e",  INFO(0xc22532, 0, 64 * 1024,   4)
-               NO_SFDP_FLAGS(SECT_4K) },
+@@ -66,6 +66,7 @@ static const struct flash_info macronix_
+               .id = SNOR_ID(0xc2, 0x20, 0x17),
+               .name = "mx25l6405d",
+               .size = SZ_8M,
++              .flags = SPI_NOR_HAS_LOCK | SPI_NOR_4BIT_BP,
+               .no_sfdp_flags = SECT_4K,
+       }, {
+               .id = SNOR_ID(0xc2, 0x20, 0x18),
index ea580a90a00a7dc7a1f5ba258234448ab0527ed7..5e20ef329617cf36e9ed8033d97bed0ec4d1cfc6 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Nick Hainke <vincent@systemli.org>
 
 --- a/drivers/mtd/spi-nor/macronix.c
 +++ b/drivers/mtd/spi-nor/macronix.c
-@@ -115,6 +115,7 @@ static int macronix_nor_late_init(struct
+@@ -195,6 +195,7 @@ static int macronix_nor_late_init(struct
  {
        if (!nor->params->set_4byte_addr_mode)
                nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b;
index b06c29ffaf18c4f46152f6b21d34c1e7e1d9d02a..b1892418ed7557ed5ceccaef54c19b1b29803a6e 100644 (file)
@@ -36,7 +36,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -22015,6 +22015,12 @@ F:    Documentation/filesystems/ubifs-authe
+@@ -23658,6 +23658,12 @@ F:    Documentation/filesystems/ubifs-authe
  F:    Documentation/filesystems/ubifs.rst
  F:    fs/ubifs/
  
@@ -51,9 +51,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  L:    linux-block@vger.kernel.org
 --- a/drivers/block/Kconfig
 +++ b/drivers/block/Kconfig
-@@ -354,6 +354,18 @@ config VIRTIO_BLK
-         This is the virtual block driver for virtio.  It can be used with
-           QEMU based VMMs (like KVM or Xen).  Say Y or M.
+@@ -363,6 +363,18 @@ config BLK_DEV_RUST_NULL
+         If unsure, say N.
  
 +config UIMAGE_FIT_BLK
 +      bool "uImage.FIT block driver"
@@ -72,7 +72,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        depends on INET && BLOCK
 --- a/drivers/block/Makefile
 +++ b/drivers/block/Makefile
-@@ -39,4 +39,6 @@ obj-$(CONFIG_BLK_DEV_NULL_BLK)       += null_b
+@@ -42,4 +42,6 @@ obj-$(CONFIG_BLK_DEV_NULL_BLK)       += null_b
  
  obj-$(CONFIG_BLK_DEV_UBLK)                    += ublk_drv.o
  
index b2b7f5eb0c32cc5468448fc2bfb640c9901b10f0..b3d8d7dd0c6e09903e6a4155ad931f8af0bfedca 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/init/do_mounts.c
 +++ b/init/do_mounts.c
-@@ -463,7 +463,8 @@ static dev_t __init parse_root_device(ch
+@@ -465,7 +465,8 @@ static dev_t __init parse_root_device(ch
        int error;
        dev_t dev;
  
index 66c458d7e6200f1a47a16dd78f58262d4349aeb6..213e6f1f24553b52a07b06cfc379b8d10811b7f5 100644 (file)
@@ -254,7 +254,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +}
 --- a/fs/jffs2/super.c
 +++ b/fs/jffs2/super.c
-@@ -375,14 +375,41 @@ static int __init init_jffs2_fs(void)
+@@ -376,14 +376,41 @@ static int __init init_jffs2_fs(void)
        BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68);
        BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);
  
@@ -1097,7 +1097,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
  #define JFFS2_NODE_ACCURATE 0x2000
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
-@@ -356,6 +356,12 @@ config ZSTD_DECOMPRESS
+@@ -353,6 +353,12 @@ config ZSTD_DECOMPRESS
  
  source "lib/xz/Kconfig"
  
@@ -1112,7 +1112,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
 --- a/lib/Makefile
 +++ b/lib/Makefile
-@@ -145,6 +145,16 @@ CFLAGS_kobject.o += -DDEBUG
+@@ -126,6 +126,16 @@ CFLAGS_kobject.o += -DDEBUG
  CFLAGS_kobject_uevent.o += -DDEBUG
  endif
  
@@ -1129,7 +1129,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
  obj-$(CONFIG_DEBUG_INFO_REDUCED) += debug_info.o
  CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any)
  
-@@ -205,6 +215,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/
+@@ -185,6 +195,8 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd/
  obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd/
  obj-$(CONFIG_XZ_DEC) += xz/
  obj-$(CONFIG_RAID6_PQ) += raid6/
@@ -1186,9 +1186,9 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +}
 +
 +Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
-+Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
++static Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
 +
-+UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
++static UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
 +
 +void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
 +{
@@ -2589,7 +2589,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  p->needFlush = 0;
 +}
 +
-+void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
++static void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
 +{
 +  p->needFlush = 1;
 +  p->remainLen = 0;
@@ -3016,7 +3016,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +#define kNumLogBits (9 + (int)sizeof(size_t) / 2)
 +#define kDicLogSizeMaxCompress ((kNumLogBits - 1) * 2 + 7)
 +
-+void LzmaEnc_FastPosInit(Byte *g_FastPos)
++static void LzmaEnc_FastPosInit(Byte *g_FastPos)
 +{
 +  int c = 2, slotFast;
 +  g_FastPos[0] = 0;
@@ -3248,7 +3248,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  CSaveState saveState;
 +} CLzmaEnc;
 +
-+void LzmaEnc_SaveState(CLzmaEncHandle pp)
++/*void LzmaEnc_SaveState(CLzmaEncHandle pp)
 +{
 +  CLzmaEnc *p = (CLzmaEnc *)pp;
 +  CSaveState *dest = &p->saveState;
@@ -3272,9 +3272,9 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
 +  memcpy(dest->reps, p->reps, sizeof(p->reps));
 +  memcpy(dest->litProbs, p->litProbs, (0x300 << p->lclp) * sizeof(CLzmaProb));
-+}
++}*/
 +
-+void LzmaEnc_RestoreState(CLzmaEncHandle pp)
++/*void LzmaEnc_RestoreState(CLzmaEncHandle pp)
 +{
 +  CLzmaEnc *dest = (CLzmaEnc *)pp;
 +  const CSaveState *p = &dest->saveState;
@@ -3298,7 +3298,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
 +  memcpy(dest->reps, p->reps, sizeof(p->reps));
 +  memcpy(dest->litProbs, p->litProbs, (0x300 << dest->lclp) * sizeof(CLzmaProb));
-+}
++}*/
 +
 +SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
 +{
@@ -3509,7 +3509,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  while (symbol < 0x10000);
 +}
 +
-+void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
++static void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
 +{
 +  UInt32 i;
 +  for (i = (1 << kNumMoveReducingBits) / 2; i < kBitModelTotal; i += (1 << kNumMoveReducingBits))
@@ -4585,7 +4585,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  p->matchPriceCount = 0;
 +}
 +
-+void LzmaEnc_Construct(CLzmaEnc *p)
++static void LzmaEnc_Construct(CLzmaEnc *p)
 +{
 +  RangeEnc_Construct(&p->rc);
 +  MatchFinder_Construct(&p->matchFinderBase);
@@ -4618,7 +4618,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  return p;
 +}
 +
-+void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
++static void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
 +{
 +  alloc->Free(alloc, p->litProbs);
 +  alloc->Free(alloc, p->saveState.litProbs);
@@ -4626,7 +4626,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  p->saveState.litProbs = 0;
 +}
 +
-+void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
++static void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
 +{
 +  #ifndef _7ZIP_ST
 +  MatchFinderMt_Destruct(&p->matchFinderMt, allocBig);
@@ -4856,7 +4856,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  return SZ_OK;
 +}
 +
-+void LzmaEnc_Init(CLzmaEnc *p)
++static void LzmaEnc_Init(CLzmaEnc *p)
 +{
 +  UInt32 i;
 +  p->state = 0;
@@ -4914,7 +4914,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  p->lpMask = (1 << p->lp) - 1;
 +}
 +
-+void LzmaEnc_InitPrices(CLzmaEnc *p)
++static void LzmaEnc_InitPrices(CLzmaEnc *p)
 +{
 +  if (!p->fastMode)
 +  {
@@ -4956,7 +4956,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  return LzmaEnc_AllocAndInit(p, 0, alloc, allocBig);
 +}
 +
-+SRes LzmaEnc_PrepareForLzma2(CLzmaEncHandle pp,
++/*SRes LzmaEnc_PrepareForLzma2(CLzmaEncHandle pp,
 +    ISeqInStream *inStream, UInt32 keepWindowSize,
 +    ISzAlloc *alloc, ISzAlloc *allocBig)
 +{
@@ -4964,7 +4964,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  p->matchFinderBase.stream = inStream;
 +  p->needInit = 1;
 +  return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
-+}
++}*/
 +
 +static void LzmaEnc_SetInputBuf(CLzmaEnc *p, const Byte *src, SizeT srcLen)
 +{
@@ -4973,7 +4973,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  p->matchFinderBase.directInputRem = srcLen;
 +}
 +
-+SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
++static SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
 +    UInt32 keepWindowSize, ISzAlloc *alloc, ISzAlloc *allocBig)
 +{
 +  CLzmaEnc *p = (CLzmaEnc *)pp;
@@ -4983,7 +4983,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +  return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
 +}
 +
-+void LzmaEnc_Finish(CLzmaEncHandle pp)
++static void LzmaEnc_Finish(CLzmaEncHandle pp)
 +{
 +  #ifndef _7ZIP_ST
 +  CLzmaEnc *p = (CLzmaEnc *)pp;
@@ -5017,19 +5017,19 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +}
 +
 +
-+UInt32 LzmaEnc_GetNumAvailableBytes(CLzmaEncHandle pp)
++/*UInt32 LzmaEnc_GetNumAvailableBytes(CLzmaEncHandle pp)
 +{
 +  const CLzmaEnc *p = (CLzmaEnc *)pp;
 +  return p->matchFinder.GetNumAvailableBytes(p->matchFinderObj);
-+}
++}*/
 +
-+const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp)
++/*const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp)
 +{
 +  const CLzmaEnc *p = (CLzmaEnc *)pp;
 +  return p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - p->additionalOffset;
-+}
++}*/
 +
-+SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
++/* SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
 +    Byte *dest, size_t *destLen, UInt32 desiredPackSize, UInt32 *unpackSize)
 +{
 +  CLzmaEnc *p = (CLzmaEnc *)pp;
@@ -5061,7 +5061,7 @@ Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
 +    return SZ_ERROR_OUTPUT_EOF;
 +
 +  return res;
-+}
++}*/
 +
 +static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
 +{
index 4b4825ae3b9a4af64fab87c52c01a4d907b0e5bd..ec7a617a5ac8e85982f5c2ad101d3a311d4e844e 100644 (file)
@@ -22,7 +22,7 @@ Link: https://bugzilla.kernel.org/show_bug.cgi?id=109581
 
 --- a/net/sched/sch_codel.c
 +++ b/net/sched/sch_codel.c
-@@ -95,11 +95,17 @@ static struct sk_buff *codel_qdisc_deque
+@@ -65,11 +65,17 @@ static struct sk_buff *codel_qdisc_deque
                            &q->stats, qdisc_pkt_len, codel_get_enqueue_time,
                            drop_func, dequeue_func);
  
index 2b753efa6736cd0a3cfe283fd26194420ad02392..9360eaaac135ef2ee6074c91592d64898333f72b 100644 (file)
@@ -55,9 +55,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2190,12 +2192,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2189,12 +2191,12 @@ static int packet_rcv(struct sk_buff *sk
+       int skb_len = skb->len;
        unsigned int snaplen, res;
-       bool is_drop_n_account = false;
  
 -      if (skb->pkt_type == PACKET_LOOPBACK)
 -              goto drop;
@@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2322,12 +2324,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2318,12 +2320,12 @@ static int tpacket_rcv(struct sk_buff *s
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -3451,6 +3453,7 @@ static int packet_create(struct net *net
+@@ -3444,6 +3446,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;
-@@ -4118,6 +4121,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -4111,6 +4114,16 @@ packet_setsockopt(struct socket *sock, i
                packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val);
                return 0;
        }
@@ -112,9 +112,9 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -4177,6 +4190,13 @@ static int packet_getsockopt(struct sock
-       case PACKET_VNET_HDR_SZ:
-               val = READ_ONCE(po->vnet_hdr_sz);
+@@ -4173,6 +4186,13 @@ static int packet_getsockopt(struct sock
+       case PACKET_COPY_THRESH:
+               val = READ_ONCE(pkt_sk(sk)->copy_thresh);
                break;
 +      case PACKET_RECV_TYPE:
 +              if (len > sizeof(unsigned int))
index ce7db566e5ac0f499adf480f83ccf69967d9b32d..6fa3358218e3de0e358cecc18d1d2ba32703757e 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -3062,7 +3062,7 @@ static inline int pskb_network_may_pull(
+@@ -3180,7 +3180,7 @@ static inline int pskb_network_may_pull(
   * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
   */
  #ifndef NET_SKB_PAD
index 863372ea8749cacd65871f501ba0b9499b01eedd..f0e8a63a99d3da3b79f3b5d9f1cd5c7168fa6f87 100644 (file)
@@ -39,8 +39,8 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        struct in6_addr raddr;  /* remote tunnel end-point address */
 +      struct __ip6_tnl_fmr *fmrs;     /* FMRs */
  
-       __be16                  i_flags;
-       __be16                  o_flags;
+       IP_TUNNEL_DECLARE_FLAGS(i_flags);
+       IP_TUNNEL_DECLARE_FLAGS(o_flags);
 --- a/include/uapi/linux/if_tunnel.h
 +++ b/include/uapi/linux/if_tunnel.h
 @@ -77,10 +77,23 @@ enum {
@@ -79,7 +79,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
   */
  
  #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-@@ -67,9 +70,9 @@ static bool log_ecn_error = true;
+@@ -68,9 +71,9 @@ static bool log_ecn_error = true;
  module_param(log_ecn_error, bool, 0644);
  MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
  
@@ -91,7 +91,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        return hash_32(hash, IP6_TUNNEL_HASH_SIZE_SHIFT);
  }
-@@ -114,17 +117,33 @@ static struct ip6_tnl *
+@@ -115,17 +118,33 @@ static struct ip6_tnl *
  ip6_tnl_lookup(struct net *net, int link,
               const struct in6_addr *remote, const struct in6_addr *local)
  {
@@ -127,7 +127,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                if (link == t->parms.link)
                        return t;
                else
-@@ -132,7 +151,7 @@ ip6_tnl_lookup(struct net *net, int link
+@@ -133,7 +152,7 @@ ip6_tnl_lookup(struct net *net, int link
        }
  
        memset(&any, 0, sizeof(any));
@@ -136,7 +136,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
                if (!ipv6_addr_equal(local, &t->parms.laddr) ||
                    !ipv6_addr_any(&t->parms.raddr) ||
-@@ -145,7 +164,7 @@ ip6_tnl_lookup(struct net *net, int link
+@@ -146,7 +165,7 @@ ip6_tnl_lookup(struct net *net, int link
                        cand = t;
        }
  
@@ -145,7 +145,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) {
                if (!ipv6_addr_equal(remote, &t->parms.raddr) ||
                    !ipv6_addr_any(&t->parms.laddr) ||
-@@ -194,7 +213,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n,
+@@ -195,7 +214,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n,
  
        if (!ipv6_addr_any(remote) || !ipv6_addr_any(local)) {
                prio = 1;
@@ -167,7 +167,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (dev == ip6n->fb_tnl_dev)
                RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
        else
-@@ -788,6 +813,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
+@@ -790,6 +815,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
  }
  EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
  
@@ -303,7 +303,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        __skb_tunnel_rx(skb, tunnel->dev, tunnel->net);
  
        err = dscp_ecn_decapsulate(tunnel, ipv6h, skb);
-@@ -1002,6 +1149,7 @@ static void init_tel_txopt(struct ipv6_t
+@@ -1004,6 +1151,7 @@ static void init_tel_txopt(struct ipv6_t
        opt->ops.opt_nflen = 8;
  }
  
@@ -311,7 +311,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
-@@ -1292,6 +1440,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1294,6 +1442,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
                u8 protocol)
  {
        struct ip6_tnl *t = netdev_priv(dev);
@@ -319,7 +319,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        struct ipv6hdr *ipv6h;
        const struct iphdr  *iph;
        int encap_limit = -1;
-@@ -1391,6 +1540,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1393,6 +1542,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str
        fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL);
        dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield);
  
@@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
                return -1;
  
-@@ -1544,6 +1705,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1546,6 +1707,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);
  }
-@@ -1578,6 +1747,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1580,6 +1749,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));
  }
  
-@@ -1966,6 +2136,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1963,6 +2133,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)
  {
-@@ -2003,6 +2182,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -2000,6 +2179,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,
-@@ -2086,6 +2305,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2083,6 +2302,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) +
-@@ -2115,6 +2340,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2112,6 +2337,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;
  }
  
-@@ -2122,6 +2365,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2119,6 +2362,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) ||
-@@ -2131,9 +2377,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2128,9 +2374,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) ||
-@@ -2173,6 +2437,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2170,6 +2434,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 },
index 9cf9117d0971227a8d94dd57b75893933c57150d..52c3f5c83a36544526ae0b069c4ace33b5fcef06 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        struct fib_rules_ops    *fib6_rules_ops;
 --- a/include/uapi/linux/fib_rules.h
 +++ b/include/uapi/linux/fib_rules.h
-@@ -82,6 +82,10 @@ enum {
+@@ -83,6 +83,10 @@ enum {
        FR_ACT_BLACKHOLE,       /* Drop without notification */
        FR_ACT_UNREACHABLE,     /* Drop with ENETUNREACH */
        FR_ACT_PROHIBIT,        /* Drop with EACCES */
@@ -76,7 +76,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
 --- a/net/ipv4/ipmr.c
 +++ b/net/ipv4/ipmr.c
-@@ -190,6 +190,7 @@ static int ipmr_rule_action(struct fib_r
+@@ -191,6 +191,7 @@ static int ipmr_rule_action(struct fib_r
        case FR_ACT_UNREACHABLE:
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
@@ -86,7 +86,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        default:
 --- a/net/ipv6/fib6_rules.c
 +++ b/net/ipv6/fib6_rules.c
-@@ -221,6 +221,10 @@ static int __fib6_rule_action(struct fib
+@@ -222,6 +222,10 @@ static int __fib6_rule_action(struct fib
                err = -EACCES;
                rt = net->ipv6.ip6_prohibit_entry;
                goto discard_pkt;
@@ -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,
-@@ -318,6 +320,18 @@ static const struct rt6_info ip6_prohibi
+@@ -316,6 +318,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 = {
                .__rcuref       = RCUREF_INIT(1),
-@@ -1043,6 +1057,7 @@ static const int fib6_prop[RTN_MAX + 1]
+@@ -1051,6 +1065,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,
-@@ -1078,6 +1093,10 @@ static void ip6_rt_init_dst_reject(struc
+@@ -1086,6 +1101,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:
-@@ -4546,6 +4565,17 @@ static int ip6_pkt_prohibit_out(struct n
+@@ -4555,6 +4574,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.
   */
-@@ -5037,7 +5067,8 @@ static int rtm_to_fib6_config(struct sk_
+@@ -5046,7 +5076,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)
-@@ -6284,6 +6315,8 @@ static int ip6_route_dev_notify(struct n
+@@ -6306,6 +6337,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
-@@ -6295,6 +6328,7 @@ static int ip6_route_dev_notify(struct n
+@@ -6317,6 +6350,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
        }
-@@ -6495,6 +6529,8 @@ static int __net_init ip6_route_net_init
+@@ -6512,6 +6546,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);
-@@ -6505,11 +6541,21 @@ static int __net_init ip6_route_net_init
+@@ -6522,11 +6558,21 @@ static int __net_init ip6_route_net_init
                         ip6_template_metrics, true);
        INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_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);
-@@ -6536,6 +6582,8 @@ out:
+@@ -6553,6 +6599,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:
-@@ -6555,6 +6603,7 @@ static void __net_exit ip6_route_net_exi
+@@ -6572,6 +6620,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);
-@@ -6638,6 +6687,9 @@ void __init ip6_route_init_special_entri
+@@ -6655,6 +6704,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);
index 94416a5d70e536e505e03660dfb2327eb91171d9..7057d364dbc8ed09fa829ff3d3f37de816b9bab0 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 
 --- a/include/uapi/linux/fib_rules.h
 +++ b/include/uapi/linux/fib_rules.h
-@@ -89,6 +89,8 @@ enum {
+@@ -90,6 +90,8 @@ enum {
        __FR_ACT_MAX,
  };
  
@@ -28,7 +28,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
 --- a/include/uapi/linux/icmpv6.h
 +++ b/include/uapi/linux/icmpv6.h
-@@ -126,6 +126,8 @@ struct icmp6hdr {
+@@ -127,6 +127,8 @@ struct icmp6hdr {
  #define ICMPV6_POLICY_FAIL            5
  #define ICMPV6_REJECT_ROUTE           6
  
index 97e321bfec13e9cc68466cbe9f9cc3f4ff7aaae4..2e6d46d326cba8742da01843dad5062c2c3ced5b 100644 (file)
@@ -13,20 +13,20 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/dummy.c
 +++ b/drivers/net/dummy.c
-@@ -118,7 +118,7 @@ static void dummy_setup(struct net_devic
-       dev->flags &= ~IFF_MULTICAST;
+@@ -111,7 +111,7 @@ static void dummy_setup(struct net_devic
        dev->priv_flags |= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE;
+       dev->lltx = true;
        dev->features   |= NETIF_F_SG | NETIF_F_FRAGLIST;
 -      dev->features   |= NETIF_F_GSO_SOFTWARE;
 +      dev->features   |= NETIF_F_GSO_SOFTWARE_ALL;
-       dev->features   |= NETIF_F_HW_CSUM | NETIF_F_HIGHDMA | NETIF_F_LLTX;
+       dev->features   |= NETIF_F_HW_CSUM | NETIF_F_HIGHDMA;
        dev->features   |= NETIF_F_GSO_ENCAP_ALL;
        dev->hw_features |= dev->features;
 --- a/drivers/net/loopback.c
 +++ b/drivers/net/loopback.c
-@@ -176,7 +176,7 @@ static void gen_lo_setup(struct net_devi
-       dev->flags              = IFF_LOOPBACK;
-       dev->priv_flags         |= IFF_LIVE_ADDR_CHANGE | IFF_NO_QUEUE;
+@@ -174,7 +174,7 @@ static void gen_lo_setup(struct net_devi
+       dev->lltx               = true;
+       dev->netns_local        = true;
        netif_keep_dst(dev);
 -      dev->hw_features        = NETIF_F_GSO_SOFTWARE;
 +      dev->hw_features        = NETIF_F_GSO_SOFTWARE_ALL;
@@ -35,7 +35,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                | NETIF_F_HW_CSUM
 --- a/drivers/net/macvlan.c
 +++ b/drivers/net/macvlan.c
-@@ -896,7 +896,7 @@ static int macvlan_hwtstamp_set(struct n
+@@ -897,7 +897,7 @@ static int macvlan_hwtstamp_set(struct n
  static struct lock_class_key macvlan_netdev_addr_lock_key;
  
  #define ALWAYS_ON_OFFLOADS \
@@ -43,10 +43,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +      (NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE_ALL | \
         NETIF_F_GSO_ROBUST | NETIF_F_GSO_ENCAP_ALL)
  
- #define ALWAYS_ON_FEATURES (ALWAYS_ON_OFFLOADS | NETIF_F_LLTX)
+ #define ALWAYS_ON_FEATURES ALWAYS_ON_OFFLOADS
 --- a/include/linux/netdev_features.h
 +++ b/include/linux/netdev_features.h
-@@ -219,13 +219,14 @@ static inline int find_next_netdev_featu
+@@ -211,13 +211,14 @@ static inline int find_next_netdev_featu
  
  /* List of features with software fallbacks. */
  #define NETIF_F_GSO_SOFTWARE  (NETIF_F_ALL_TSO | NETIF_F_GSO_SCTP |        \
@@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if ((ret & NETIF_F_GSO_ENCAP_ALL) && (ret & NETIF_F_CSUM_MASK))
 --- a/net/8021q/vlan_dev.c
 +++ b/net/8021q/vlan_dev.c
-@@ -583,7 +583,7 @@ static int vlan_dev_init(struct net_devi
+@@ -561,7 +561,7 @@ static int vlan_dev_init(struct net_devi
                dev->state |= (1 << __LINK_STATE_NOCARRIER);
  
        dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |
@@ -84,19 +84,19 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +                         NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE_ALL |
                           NETIF_F_GSO_ENCAP_ALL |
                           NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |
-                          NETIF_F_ALL_FCOE;
-@@ -676,7 +676,7 @@ static netdev_features_t vlan_dev_fix_fe
+                          NETIF_F_FCOE_CRC | NETIF_F_FSO;
+@@ -657,7 +657,7 @@ static netdev_features_t vlan_dev_fix_fe
        if (lower_features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
                lower_features |= NETIF_F_HW_CSUM;
        features = netdev_intersect_features(features, lower_features);
 -      features |= old_features & (NETIF_F_SOFT_FEATURES | NETIF_F_GSO_SOFTWARE);
 +      features |= old_features & (NETIF_F_SOFT_FEATURES | NETIF_F_GSO_SOFTWARE_ALL);
-       features |= NETIF_F_LLTX;
  
        return features;
+ }
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2441,7 +2441,7 @@ void sk_setup_caps(struct sock *sk, stru
+@@ -2525,7 +2525,7 @@ void sk_setup_caps(struct sock *sk, stru
        if (sk_is_tcp(sk))
                sk->sk_route_caps |= NETIF_F_GSO;
        if (sk->sk_route_caps & NETIF_F_GSO)
@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (sk_can_gso(sk)) {
 --- a/net/mac80211/ieee80211_i.h
 +++ b/net/mac80211/ieee80211_i.h
-@@ -1996,7 +1996,7 @@ void ieee80211_color_collision_detection
+@@ -2012,7 +2012,7 @@ void ieee80211_color_collision_detection
  /* interface handling */
  #define MAC80211_SUPPORTED_FEATURES_TX        (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | \
                                         NETIF_F_HW_CSUM | NETIF_F_SG | \
@@ -118,12 +118,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #define MAC80211_SUPPORTED_FEATURES   (MAC80211_SUPPORTED_FEATURES_TX | \
 --- a/net/openvswitch/vport-internal_dev.c
 +++ b/net/openvswitch/vport-internal_dev.c
-@@ -110,7 +110,7 @@ static void do_setup(struct net_device *
+@@ -109,7 +109,7 @@ static void do_setup(struct net_device *
+       netdev->rtnl_link_ops = &internal_dev_link_ops;
  
-       netdev->features = NETIF_F_LLTX | NETIF_F_SG | NETIF_F_FRAGLIST |
-                          NETIF_F_HIGHDMA | NETIF_F_HW_CSUM |
--                         NETIF_F_GSO_SOFTWARE | NETIF_F_GSO_ENCAP_ALL;
-+                         NETIF_F_GSO_SOFTWARE_ALL | NETIF_F_GSO_ENCAP_ALL;
+       netdev->features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA |
+-                         NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE |
++                         NETIF_F_HW_CSUM | NETIF_F_GSO_SOFTWARE_ALL |
+                          NETIF_F_GSO_ENCAP_ALL;
  
        netdev->vlan_features = netdev->features;
-       netdev->hw_enc_features = netdev->features;
index 6b93f47772e13ba0194883245920e4dbf9e49702..f769bc0a437edd5933600d9a9c492c0f7b1469a7 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/net/netfilter/nf_flow_table_core.c
 +++ b/net/netfilter/nf_flow_table_core.c
-@@ -662,6 +662,23 @@ static struct pernet_operations nf_flow_
+@@ -658,6 +658,23 @@ static struct pernet_operations nf_flow_
        .exit_batch = nf_flow_table_pernet_exit,
  };
  
@@ -34,9 +34,9 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  static int __init nf_flow_table_module_init(void)
  {
        int ret;
-@@ -674,8 +691,14 @@ static int __init nf_flow_table_module_i
+@@ -674,9 +691,14 @@ static int __init nf_flow_table_module_i
        if (ret)
-               goto out_offload;
+               goto out_bpf;
  
 +      ret = register_netdevice_notifier(&flow_offload_netdev_notifier);
 +      if (ret)
@@ -44,12 +44,12 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 +
        return 0;
  
+ out_bpf:
 +out_offload_init:
-+      nf_flow_table_offload_exit();
+       nf_flow_table_offload_exit();
  out_offload:
        unregister_pernet_subsys(&nf_flow_table_net_ops);
-       return ret;
-@@ -683,6 +706,7 @@ out_offload:
+@@ -685,6 +707,7 @@ out_offload:
  
  static void __exit nf_flow_table_module_exit(void)
  {
@@ -59,7 +59,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  }
 --- a/net/netfilter/nft_flow_offload.c
 +++ b/net/netfilter/nft_flow_offload.c
-@@ -480,47 +480,14 @@ static struct nft_expr_type nft_flow_off
+@@ -481,47 +481,14 @@ static struct nft_expr_type nft_flow_off
        .owner          = THIS_MODULE,
  };
  
index d13641064063fa3aa7f0d6b09d3d548d7b0891c9..1ccf9cef727461b477b75152d13ee991bad83bdb 100644 (file)
@@ -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
-@@ -8417,7 +8417,7 @@ static int nft_register_flowtable_net_ho
+@@ -8607,7 +8607,7 @@ static int nft_register_flowtable_net_ho
                err = flowtable->data.type->setup(&flowtable->data,
                                                  hook->ops.dev,
                                                  FLOW_BLOCK_BIND);
index 5563bf1f93c329342e8e253e2cfa62699e486380..a45d5f7c102ea54ff3e316f7e797acc6c541e552 100644 (file)
@@ -10,12 +10,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
-@@ -5036,6 +5036,8 @@ static int mtk_probe(struct platform_dev
-        * for NAPI to work
-        */
-       init_dummy_netdev(&eth->dummy_dev);
-+      eth->dummy_dev.threaded = 1;
-+      strcpy(eth->dummy_dev.name, "mtk_eth");
-       netif_napi_add(&eth->dummy_dev, &eth->tx_napi, mtk_napi_tx);
-       netif_napi_add(&eth->dummy_dev, &eth->rx_napi, mtk_napi_rx);
+@@ -5041,6 +5041,8 @@ static int mtk_probe(struct platform_dev
+               dev_err(eth->dev, "failed to allocated dummy device\n");
+               goto err_unreg_netdev;
+       }
++      eth->dummy_dev->threaded = 1;
++      strcpy(eth->dummy_dev->name, "mtk_eth");
+       netif_napi_add(eth->dummy_dev, &eth->tx_napi, mtk_napi_tx);
+       netif_napi_add(eth->dummy_dev, &eth->rx_napi, mtk_napi_rx);
  
index a556a9cc40714955005288ac6be75525cc8c1f22..c35f0c83c77ff55b060b021d956a768bef254574 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1910,6 +1910,9 @@ void phy_detach(struct phy_device *phyde
+@@ -1986,6 +1986,9 @@ void phy_detach(struct phy_device *phyde
        if (phydev->devlink)
                device_link_del(phydev->devlink);
  
@@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                        sysfs_remove_link(&dev->dev.kobj, "phydev");
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -980,6 +980,12 @@ struct phy_driver {
+@@ -999,6 +999,12 @@ struct phy_driver {
        /** @handle_interrupt: Override default interrupt handling */
        irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
  
index 78e0049f05243fe7512301ca4a134184ef5d4e96..6b2b016881da8b1c0ab0f0e60bd2e4764a7b8a8a 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/drivers/net/phy/phylink.c
 +++ b/drivers/net/phy/phylink.c
-@@ -2017,7 +2017,7 @@ int phylink_fwnode_phy_connect(struct ph
+@@ -2086,7 +2086,7 @@ int phylink_fwnode_phy_connect(struct ph
  {
        struct fwnode_handle *phy_fwnode;
        struct phy_device *phy_dev;
@@ -29,9 +29,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        /* Fixed links and 802.3z are handled without needing a PHY */
        if (pl->cfg_link_an_mode == MLO_AN_FIXED ||
-@@ -2044,6 +2044,25 @@ int phylink_fwnode_phy_connect(struct ph
-               pl->link_config.interface = pl->link_interface;
-       }
+@@ -2116,6 +2116,25 @@ int phylink_fwnode_phy_connect(struct ph
+       if (pl->config->mac_requires_rxc)
+               flags |= PHY_F_RXC_ALWAYS_ON;
  
 +      /* Assume single-lane SerDes interface modes share the same
 +       * lanes and allow the PHY to switch to slower also supported modes
index 96e1a19db4c7c15f13bda8be9cd02ef555c81e59..a7fb6c3421335e3b08a1f9de5eb2d8fd91432243 100644 (file)
@@ -106,7 +106,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
 --- a/include/uapi/linux/if_link.h
 +++ b/include/uapi/linux/if_link.h
-@@ -571,6 +571,7 @@ enum {
+@@ -1094,6 +1094,7 @@ enum {
        IFLA_BRPORT_MCAST_MAX_GROUPS,
        IFLA_BRPORT_NEIGH_VLAN_SUPPRESS,
        IFLA_BRPORT_BACKUP_NHID,
@@ -152,7 +152,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
            (!(p->flags & BR_PORT_LOCKED) || !(p->flags & BR_LEARNING))) {
 --- a/net/core/rtnetlink.c
 +++ b/net/core/rtnetlink.c
-@@ -61,7 +61,7 @@
+@@ -62,7 +62,7 @@
  #include "dev.h"
  
  #define RTNL_MAX_TYPE         50
@@ -161,7 +161,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  struct rtnl_link {
        rtnl_doit_func          doit;
-@@ -4978,7 +4978,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
+@@ -5009,7 +5009,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu
            brport_nla_put_flag(skb, flags, mask,
                                IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) ||
            brport_nla_put_flag(skb, flags, mask,
index 3197aea0914b36d034229d293137c166e1eb3210..0e8915903f79199b4e868f8927aff5da7a87bc60 100644 (file)
@@ -16,7 +16,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/net/dsa/qca/qca8k-8xxx.c
 +++ b/drivers/net/dsa/qca/qca8k-8xxx.c
-@@ -2012,6 +2012,8 @@ static const struct dsa_switch_ops qca8k
+@@ -2031,6 +2031,8 @@ static const struct dsa_switch_ops qca8k
        .port_fdb_add           = qca8k_port_fdb_add,
        .port_fdb_del           = qca8k_port_fdb_del,
        .port_fdb_dump          = qca8k_port_fdb_dump,
@@ -27,7 +27,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
        .port_mirror_add        = qca8k_port_mirror_add,
 --- a/drivers/net/dsa/qca/qca8k-common.c
 +++ b/drivers/net/dsa/qca/qca8k-common.c
-@@ -1215,6 +1215,42 @@ int qca8k_port_lag_leave(struct dsa_swit
+@@ -1234,6 +1234,42 @@ int qca8k_port_lag_leave(struct dsa_swit
        return qca8k_lag_refresh_portmap(ds, port, lag, true);
  }
  
@@ -72,7 +72,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
        u32 val;
 --- a/drivers/net/dsa/qca/qca8k.h
 +++ b/drivers/net/dsa/qca/qca8k.h
-@@ -590,5 +590,11 @@ int qca8k_port_lag_join(struct dsa_switc
+@@ -592,5 +592,11 @@ int qca8k_port_lag_join(struct dsa_switc
                        struct netlink_ext_ack *extack);
  int qca8k_port_lag_leave(struct dsa_switch *ds, int port,
                         struct dsa_lag lag);
index b1d9f84cfe553c93d75da986b3986f7eda0d191a..d10bbcf8029ab4cc1420950f985223943ab14185 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/net/dsa/qca/qca8k-8xxx.c
 +++ b/drivers/net/dsa/qca/qca8k-8xxx.c
-@@ -1901,15 +1901,12 @@ qca8k_setup(struct dsa_switch *ds)
+@@ -1913,15 +1913,12 @@ qca8k_setup(struct dsa_switch *ds)
                }
        }
  
index 9b553e77cde569b9914b1d295cbbd7669e7d006f..5bdb4a9da4b30a13262d08a363801bf8a90f13df 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/net/dsa/qca/qca8k-8xxx.c
 +++ b/drivers/net/dsa/qca/qca8k-8xxx.c
-@@ -1738,6 +1738,117 @@ qca8k_get_tag_protocol(struct dsa_switch
+@@ -1750,6 +1750,117 @@ qca8k_get_tag_protocol(struct dsa_switch
        return DSA_TAG_PROTO_QCA;
  }
  
@@ -142,17 +142,17 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 +}
 +
  static void
- qca8k_master_change(struct dsa_switch *ds, const struct net_device *master,
-                   bool operational)
-@@ -2024,8 +2135,9 @@ static const struct dsa_switch_ops qca8k
-       .phylink_mac_link_down  = qca8k_phylink_mac_link_down,
-       .phylink_mac_link_up    = qca8k_phylink_mac_link_up,
+ qca8k_conduit_change(struct dsa_switch *ds, const struct net_device *conduit,
+                    bool operational)
+@@ -2039,8 +2150,9 @@ static const struct dsa_switch_ops qca8k
+       .port_vlan_del          = qca8k_port_vlan_del,
+       .phylink_get_caps       = qca8k_phylink_get_caps,
        .get_phy_flags          = qca8k_get_phy_flags,
 -      .port_lag_join          = qca8k_port_lag_join,
 -      .port_lag_leave         = qca8k_port_lag_leave,
 +      .port_lag_join          = qca8xxx_port_lag_join,
 +      .port_lag_leave         = qca8xxx_port_lag_leave,
-+      .port_change_master     = qca8k_port_change_master,
-       .master_state_change    = qca8k_master_change,
++      .port_change_master     = qca8xxx_port_change_master,
+       .conduit_state_change   = qca8k_conduit_change,
        .connect_tag_protocol   = qca8k_connect_tag_protocol,
  };
index 18afa1c0725170d7e31668865bd400dc2448c18b..03cf2db6b60a34d144503b0f272922da7396e593 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/drivers/net/dsa/qca/qca8k-8xxx.c
 +++ b/drivers/net/dsa/qca/qca8k-8xxx.c
-@@ -2010,6 +2010,12 @@ qca8k_setup(struct dsa_switch *ds)
+@@ -2022,6 +2022,12 @@ qca8k_setup(struct dsa_switch *ds)
                        dev_err(priv->dev, "failed enabling QCA header mode on port %d", dp->index);
                        return ret;
                }
@@ -33,7 +33,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
        }
  
        /* Forward all unknown frames to CPU port for Linux processing */
-@@ -2039,11 +2045,6 @@ qca8k_setup(struct dsa_switch *ds)
+@@ -2051,11 +2057,6 @@ qca8k_setup(struct dsa_switch *ds)
                if (ret)
                        return ret;
  
@@ -45,7 +45,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
                /* For port based vlans to work we need to set the
                 * default egress vid
                 */
-@@ -2095,6 +2096,9 @@ qca8k_setup(struct dsa_switch *ds)
+@@ -2107,6 +2108,9 @@ qca8k_setup(struct dsa_switch *ds)
        /* Set max number of LAGs supported */
        ds->num_lag_ids = QCA8K_NUM_LAGS;
  
index 1f07c0f62c8c0200ad8688118d417974085f09a9..bf9131b2c6accf07ebae540652f73beec4a45f18 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
 
 --- a/include/linux/netdevice.h
 +++ b/include/linux/netdevice.h
-@@ -2243,7 +2243,7 @@ struct net_device {
+@@ -2224,7 +2224,7 @@ struct net_device {
  #if IS_ENABLED(CONFIG_AX25)
        void                    *ax25_ptr;
  #endif
index c3297a1087d003e915e90d12abed79249e5c16b6..8d028852b7e04b0c522601fabd5a67c895e78332 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
 +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
-@@ -1336,6 +1336,22 @@ struct mtk_mac {
+@@ -1322,6 +1322,22 @@ struct mtk_mac {
  /* the struct describing the SoC. these are declared in the soc_xyz.c files */
  extern const struct of_device_id of_mtk_match[];
  
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static inline bool mtk_is_netsys_v1(struct mtk_eth *eth)
  {
        return eth->soc->version == 1;
-@@ -1350,6 +1366,7 @@ static inline bool mtk_is_netsys_v3_or_g
+@@ -1336,6 +1352,7 @@ static inline bool mtk_is_netsys_v3_or_g
  {
        return eth->soc->version > 2;
  }
index f4e12ca63a9986aa99076bf1eb64224258c20b96..e580962df5c6743d2fbd9ad5389f28b8c8dbe362 100644 (file)
@@ -652,7 +652,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        if (MTK_HAS_CAPS(eth->soc->caps, MTK_SHARED_INT)) {
                err = devm_request_irq(eth->dev, eth->irq[0],
                                       mtk_handle_irq, 0,
-@@ -5120,6 +5345,11 @@ static int mtk_remove(struct platform_de
+@@ -5127,6 +5352,11 @@ static void mtk_remove(struct platform_d
                mtk_stop(eth->netdev[i]);
                mac = netdev_priv(eth->netdev[i]);
                phylink_disconnect_phy(mac->phylink);
@@ -737,40 +737,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  #define MTK_MAC_FSM(x)                (0x1010C + ((x) * 0x100))
  
-@@ -724,12 +753,8 @@ enum mtk_clks_map {
-       MTK_CLK_ETHWARP_WOCPU2,
-       MTK_CLK_ETHWARP_WOCPU1,
-       MTK_CLK_ETHWARP_WOCPU0,
--      MTK_CLK_TOP_USXGMII_SBUS_0_SEL,
--      MTK_CLK_TOP_USXGMII_SBUS_1_SEL,
-       MTK_CLK_TOP_SGM_0_SEL,
-       MTK_CLK_TOP_SGM_1_SEL,
--      MTK_CLK_TOP_XFI_PHY_0_XTAL_SEL,
--      MTK_CLK_TOP_XFI_PHY_1_XTAL_SEL,
-       MTK_CLK_TOP_ETH_GMII_SEL,
-       MTK_CLK_TOP_ETH_REFCK_50M_SEL,
-       MTK_CLK_TOP_ETH_SYS_200M_SEL,
-@@ -800,19 +825,9 @@ enum mtk_clks_map {
-                                BIT_ULL(MTK_CLK_GP3) | BIT_ULL(MTK_CLK_XGP1) | \
-                                BIT_ULL(MTK_CLK_XGP2) | BIT_ULL(MTK_CLK_XGP3) | \
-                                BIT_ULL(MTK_CLK_CRYPTO) | \
--                               BIT_ULL(MTK_CLK_SGMII_TX_250M) | \
--                               BIT_ULL(MTK_CLK_SGMII_RX_250M) | \
--                               BIT_ULL(MTK_CLK_SGMII2_TX_250M) | \
--                               BIT_ULL(MTK_CLK_SGMII2_RX_250M) | \
-                                BIT_ULL(MTK_CLK_ETHWARP_WOCPU2) | \
-                                BIT_ULL(MTK_CLK_ETHWARP_WOCPU1) | \
-                                BIT_ULL(MTK_CLK_ETHWARP_WOCPU0) | \
--                               BIT_ULL(MTK_CLK_TOP_USXGMII_SBUS_0_SEL) | \
--                               BIT_ULL(MTK_CLK_TOP_USXGMII_SBUS_1_SEL) | \
--                               BIT_ULL(MTK_CLK_TOP_SGM_0_SEL) | \
--                               BIT_ULL(MTK_CLK_TOP_SGM_1_SEL) | \
--                               BIT_ULL(MTK_CLK_TOP_XFI_PHY_0_XTAL_SEL) | \
--                               BIT_ULL(MTK_CLK_TOP_XFI_PHY_1_XTAL_SEL) | \
-                                BIT_ULL(MTK_CLK_TOP_ETH_GMII_SEL) | \
-                                BIT_ULL(MTK_CLK_TOP_ETH_REFCK_50M_SEL) | \
-                                BIT_ULL(MTK_CLK_TOP_ETH_SYS_200M_SEL) | \
-@@ -946,6 +961,8 @@ enum mkt_eth_capabilities {
+@@ -932,6 +961,8 @@ enum mkt_eth_capabilities {
        MTK_RGMII_BIT = 0,
        MTK_TRGMII_BIT,
        MTK_SGMII_BIT,
@@ -779,7 +746,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        MTK_ESW_BIT,
        MTK_GEPHY_BIT,
        MTK_MUX_BIT,
-@@ -966,8 +983,11 @@ enum mkt_eth_capabilities {
+@@ -952,8 +983,11 @@ enum mkt_eth_capabilities {
        MTK_ETH_MUX_GDM1_TO_GMAC1_ESW_BIT,
        MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY_BIT,
        MTK_ETH_MUX_U3_GMAC2_TO_QPHY_BIT,
@@ -791,7 +758,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        /* PATH BITS */
        MTK_ETH_PATH_GMAC1_RGMII_BIT,
-@@ -975,14 +995,21 @@ enum mkt_eth_capabilities {
+@@ -961,14 +995,21 @@ enum mkt_eth_capabilities {
        MTK_ETH_PATH_GMAC1_SGMII_BIT,
        MTK_ETH_PATH_GMAC2_RGMII_BIT,
        MTK_ETH_PATH_GMAC2_SGMII_BIT,
@@ -813,7 +780,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  #define MTK_ESW                       BIT_ULL(MTK_ESW_BIT)
  #define MTK_GEPHY             BIT_ULL(MTK_GEPHY_BIT)
  #define MTK_MUX                       BIT_ULL(MTK_MUX_BIT)
-@@ -1005,10 +1032,16 @@ enum mkt_eth_capabilities {
+@@ -991,10 +1032,16 @@ enum mkt_eth_capabilities {
        BIT_ULL(MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY_BIT)
  #define MTK_ETH_MUX_U3_GMAC2_TO_QPHY          \
        BIT_ULL(MTK_ETH_MUX_U3_GMAC2_TO_QPHY_BIT)
@@ -830,7 +797,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  /* Supported path present on SoCs */
  #define MTK_ETH_PATH_GMAC1_RGMII      BIT_ULL(MTK_ETH_PATH_GMAC1_RGMII_BIT)
-@@ -1016,8 +1049,13 @@ enum mkt_eth_capabilities {
+@@ -1002,8 +1049,13 @@ enum mkt_eth_capabilities {
  #define MTK_ETH_PATH_GMAC1_SGMII      BIT_ULL(MTK_ETH_PATH_GMAC1_SGMII_BIT)
  #define MTK_ETH_PATH_GMAC2_RGMII      BIT_ULL(MTK_ETH_PATH_GMAC2_RGMII_BIT)
  #define MTK_ETH_PATH_GMAC2_SGMII      BIT_ULL(MTK_ETH_PATH_GMAC2_SGMII_BIT)
@@ -844,7 +811,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  #define MTK_GMAC1_RGMII               (MTK_ETH_PATH_GMAC1_RGMII | MTK_RGMII)
  #define MTK_GMAC1_TRGMII      (MTK_ETH_PATH_GMAC1_TRGMII | MTK_TRGMII)
-@@ -1025,7 +1063,12 @@ enum mkt_eth_capabilities {
+@@ -1011,7 +1063,12 @@ enum mkt_eth_capabilities {
  #define MTK_GMAC2_RGMII               (MTK_ETH_PATH_GMAC2_RGMII | MTK_RGMII)
  #define MTK_GMAC2_SGMII               (MTK_ETH_PATH_GMAC2_SGMII | MTK_SGMII)
  #define MTK_GMAC2_GEPHY               (MTK_ETH_PATH_GMAC2_GEPHY | MTK_GEPHY)
@@ -857,7 +824,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  /* MUXes present on SoCs */
  /* 0: GDM1 -> GMAC1, 1: GDM1 -> ESW */
-@@ -1044,10 +1087,20 @@ enum mkt_eth_capabilities {
+@@ -1030,10 +1087,20 @@ enum mkt_eth_capabilities {
        (MTK_ETH_MUX_GMAC1_GMAC2_TO_SGMII_RGMII | MTK_MUX | \
        MTK_SHARED_SGMII)
  
@@ -878,7 +845,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  #define MTK_HAS_CAPS(caps, _x)                (((caps) & (_x)) == (_x))
  
  #define MT7621_CAPS  (MTK_GMAC1_RGMII | MTK_GMAC1_TRGMII | \
-@@ -1079,8 +1132,12 @@ enum mkt_eth_capabilities {
+@@ -1065,8 +1132,12 @@ enum mkt_eth_capabilities {
                      MTK_MUX_GMAC12_TO_GEPHY_SGMII | MTK_QDMA | \
                      MTK_RSTCTRL_PPE1 | MTK_SRAM)
  
@@ -893,7 +860,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  struct mtk_tx_dma_desc_info {
        dma_addr_t      addr;
-@@ -1325,6 +1382,9 @@ struct mtk_mac {
+@@ -1311,6 +1382,9 @@ struct mtk_mac {
        struct device_node              *of_node;
        struct phylink                  *phylink;
        struct phylink_config           phylink_config;
@@ -903,7 +870,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        struct mtk_eth                  *hw;
        struct mtk_hw_stats             *hw_stats;
        __be32                          hwlro_ip[MTK_MAX_LRO_IP_CNT];
-@@ -1448,6 +1508,19 @@ static inline u32 mtk_get_ib2_multicast_
+@@ -1434,6 +1508,19 @@ static inline u32 mtk_get_ib2_multicast_
        return MTK_FOE_IB2_MULTICAST;
  }
  
@@ -923,7 +890,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /* read the hardware status register */
  void mtk_stats_update_mac(struct mtk_mac *mac);
  
-@@ -1456,8 +1529,10 @@ u32 mtk_r32(struct mtk_eth *eth, unsigne
+@@ -1442,8 +1529,10 @@ u32 mtk_r32(struct mtk_eth *eth, unsigne
  u32 mtk_m32(struct mtk_eth *eth, u32 mask, u32 set, unsigned int reg);
  
  int mtk_gmac_sgmii_path_setup(struct mtk_eth *eth, int mac_id);
index b67c8a0ea0b8061b5047fb5480674cef12044ec5..68b4a99ca4bd9efa0a0335d8f0cf2d9e88d11083 100644 (file)
@@ -206,7 +206,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  }
  EXPORT_SYMBOL(mtk_pcs_lynxi_create);
  
-@@ -303,4 +368,144 @@ void mtk_pcs_lynxi_destroy(struct phylin
+@@ -303,5 +368,142 @@ void mtk_pcs_lynxi_destroy(struct phylin
  }
  EXPORT_SYMBOL(mtk_pcs_lynxi_destroy);
  
@@ -264,7 +264,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +      return 0;
 +}
 +
-+static int mtk_pcs_lynxi_remove(struct platform_device *pdev)
++static void mtk_pcs_lynxi_remove(struct platform_device *pdev)
 +{
 +      struct device *dev = &pdev->dev;
 +      struct mtk_pcs_lynxi *cur, *tmp;
@@ -277,8 +277,6 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                      break;
 +              }
 +      mutex_unlock(&instance_mutex);
-+
-+      return 0;
 +}
 +
 +static const struct of_device_id mtk_pcs_lynxi_of_match[] = {
@@ -349,7 +347,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +module_platform_driver(mtk_pcs_lynxi_driver);
 +
 +MODULE_AUTHOR("Daniel Golle <daniel@makrotopia.org>");
-+MODULE_DESCRIPTION("MediaTek LynxI HSGMII PCS");
+ MODULE_DESCRIPTION("MediaTek SGMII library for LynxI");
  MODULE_LICENSE("GPL");
 --- a/include/linux/pcs/pcs-mtk-lynxi.h
 +++ b/include/linux/pcs/pcs-mtk-lynxi.h
index c7fcac3abfd670b9e8987ed0f5f5aad9377b75eb..3178ef19cd65d4067f78f057f19a0c53e4dddd82 100644 (file)
@@ -19,7 +19,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -13356,7 +13356,9 @@ M:     Daniel Golle <daniel@makrotopia.org>
+@@ -14419,7 +14419,9 @@ M:     Daniel Golle <daniel@makrotopia.org>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/pcs/pcs-mtk-lynxi.c
@@ -51,14 +51,14 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        depends on OF && (ARCH_RZN1 || COMPILE_TEST)
 --- a/drivers/net/pcs/Makefile
 +++ b/drivers/net/pcs/Makefile
-@@ -7,3 +7,4 @@ obj-$(CONFIG_PCS_XPCS)         += pcs_xpcs.o
+@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_XPCS)         += pcs_xpcs.o
  obj-$(CONFIG_PCS_LYNX)                += pcs-lynx.o
  obj-$(CONFIG_PCS_MTK_LYNXI)   += pcs-mtk-lynxi.o
  obj-$(CONFIG_PCS_RZN1_MIIC)   += pcs-rzn1-miic.o
 +obj-$(CONFIG_PCS_MTK_USXGMII) += pcs-mtk-usxgmii.o
 --- /dev/null
 +++ b/drivers/net/pcs/pcs-mtk-usxgmii.c
-@@ -0,0 +1,456 @@
+@@ -0,0 +1,454 @@
 +// SPDX-License-Identifier: GPL-2.0
 +/*
 + * Copyright (c) 2023 MediaTek Inc.
@@ -429,7 +429,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +      return 0;
 +}
 +
-+static int mtk_usxgmii_remove(struct platform_device *pdev)
++static void mtk_usxgmii_remove(struct platform_device *pdev)
 +{
 +      struct device *dev = &pdev->dev;
 +      struct mtk_usxgmii_pcs *cur, *tmp;
@@ -441,8 +441,6 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 +                      break;
 +              }
 +      mutex_unlock(&instance_mutex);
-+
-+      return 0;
 +}
 +
 +static const struct of_device_id mtk_usxgmii_of_mtable[] = {
index 80b69920e9d46fea20c251d27531e2ca622fb2d3..f5621e34ee874e50981558948325a1589ac46b7b 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: David Bauer <mail@david-bauer.net>
 
 --- a/drivers/net/phy/Kconfig
 +++ b/drivers/net/phy/Kconfig
-@@ -113,7 +113,7 @@ config BROADCOM_PHY
+@@ -139,7 +139,7 @@ config BROADCOM_PHY
        tristate "Broadcom 54XX PHYs"
        select BCM_NET_PHYLIB
        select BCM_NET_PHYPTP if NETWORK_PHY_TIMESTAMPING
index 500567b4ed05b7c56853582f1874d9106ebb438d..82349e7547677ee0cf44b60ba34996a4f68a830c 100644 (file)
@@ -32,9 +32,9 @@ https://patchwork.kernel.org/project/netdevbpf/patch/20240425023325.15586-3-SkyL
 
 --- a/drivers/net/phy/air_en8811h.c
 +++ b/drivers/net/phy/air_en8811h.c
-@@ -544,6 +544,10 @@ static int air_hw_led_on_set(struct phy_
-       changed |= (priv->led[index].rules != 0);
+@@ -548,6 +548,10 @@ static int air_hw_led_on_set(struct phy_
+       if (!on)
+               priv->led[index].rules = 0;
  
 +      /* clear netdev trigger rules in case LED_OFF has been set */
 +      if (!on)
index a90d77c9f0440af1d735b25f712a4fd409e360e1..e65cc2741a82a2dd3fa7a25fbc54aebf61746c58 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
 
 --- a/drivers/net/ethernet/broadcom/tg3.c
 +++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -17731,8 +17731,10 @@ static int tg3_init_one(struct pci_dev *
+@@ -17801,8 +17801,10 @@ static int tg3_init_one(struct pci_dev *
        } else
                persist_dma_mask = dma_mask = DMA_BIT_MASK(64);
  
index 001be8183857f02c93905f6a6ce77d9d9fa8983e..e3b37eecc15563b4e88ba70be7cb8391c943ac50 100644 (file)
@@ -70,7 +70,7 @@ v1 -> v2:
 
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -1820,4 +1820,19 @@ config GPIO_SIM
+@@ -1929,4 +1929,19 @@ config GPIO_VIRTUSER
  
  endmenu
  
@@ -92,14 +92,14 @@ v1 -> v2:
  endif
 --- a/drivers/gpio/Makefile
 +++ b/drivers/gpio/Makefile
-@@ -44,6 +44,7 @@ obj-$(CONFIG_GPIO_BD9571MWV)         += gpio-bd
+@@ -45,6 +45,7 @@ obj-$(CONFIG_GPIO_BD9571MWV)         += gpio-bd
  obj-$(CONFIG_GPIO_BRCMSTB)            += gpio-brcmstb.o
  obj-$(CONFIG_GPIO_BT8XX)              += gpio-bt8xx.o
  obj-$(CONFIG_GPIO_CADENCE)            += gpio-cadence.o
 +obj-$(CONFIG_GPIO_CASCADE)            += gpio-cascade.o
  obj-$(CONFIG_GPIO_CLPS711X)           += gpio-clps711x.o
  obj-$(CONFIG_GPIO_SNPS_CREG)          += gpio-creg-snps.o
- obj-$(CONFIG_GPIO_CRYSTAL_COVE)               += gpio-crystalcove.o
+ obj-$(CONFIG_GPIO_CROS_EC)            += gpio-cros-ec.o
 --- /dev/null
 +++ b/drivers/gpio/gpio-cascade.c
 @@ -0,0 +1,112 @@
index 7f670914781837db6b559a12dc04935147900244..395fba2bddb33b49ea49cd5fae43682e819ff437 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
        return 0;
 --- a/drivers/opp/core.c
 +++ b/drivers/opp/core.c
-@@ -902,7 +902,8 @@ static int _set_opp_voltage(struct devic
+@@ -942,7 +942,8 @@ static int _set_opp_voltage(struct devic
  
  static int
  _opp_config_clk_single(struct device *dev, struct opp_table *opp_table,
@@ -43,7 +43,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  {
        unsigned long *target = data;
        unsigned long freq;
-@@ -934,8 +935,8 @@ _opp_config_clk_single(struct device *de
+@@ -974,8 +975,8 @@ _opp_config_clk_single(struct device *de
   * the order in which they are present in the array while scaling up.
   */
  int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -54,7 +54,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  {
        int ret, i;
  
-@@ -1217,7 +1218,7 @@ static int _set_opp(struct device *dev,
+@@ -1242,7 +1243,7 @@ static int _set_opp(struct device *dev,
        }
  
        if (opp_table->config_clks) {
@@ -63,7 +63,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
                if (ret)
                        return ret;
        }
-@@ -1292,7 +1293,7 @@ int dev_pm_opp_set_rate(struct device *d
+@@ -1321,7 +1322,7 @@ int dev_pm_opp_set_rate(struct device *d
                 * equivalent to a clk_set_rate()
                 */
                if (!_get_opp_count(opp_table)) {
@@ -74,7 +74,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
                }
 --- a/include/linux/pm_opp.h
 +++ b/include/linux/pm_opp.h
-@@ -61,7 +61,8 @@ typedef int (*config_regulators_t)(struc
+@@ -50,7 +50,8 @@ typedef int (*config_regulators_t)(struc
                        struct dev_pm_opp *old_opp, struct dev_pm_opp *new_opp,
                        struct regulator **regulators, unsigned int count);
  
@@ -84,7 +84,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
                        struct dev_pm_opp *opp, void *data, bool scaling_down);
  
  /**
-@@ -172,8 +173,8 @@ int dev_pm_opp_set_config(struct device
+@@ -184,8 +185,8 @@ int dev_pm_opp_set_config(struct device
  int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config);
  void dev_pm_opp_clear_config(int token);
  int dev_pm_opp_config_clks_simple(struct device *dev,
@@ -95,7 +95,7 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
  
  struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table, struct opp_table *dst_table, struct dev_pm_opp *src_opp);
  int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate);
-@@ -377,8 +378,8 @@ static inline int devm_pm_opp_set_config
+@@ -395,8 +396,8 @@ static inline int devm_pm_opp_set_config
  static inline void dev_pm_opp_clear_config(int token) {}
  
  static inline int dev_pm_opp_config_clks_simple(struct device *dev,
index 241ff77a7b4264a4f1b9f361409fbbc0c7ecf7aa..446099a2a9fc9a200981990a448ec5baa6c9e692 100644 (file)
@@ -33,7 +33,7 @@ string.
  #include <linux/init.h>
  #include <linux/kref.h>
  #include <linux/module.h>
-@@ -796,6 +799,62 @@ static int nvmem_validate_keepouts(struc
+@@ -797,6 +800,62 @@ static int nvmem_validate_keepouts(struc
        return 0;
  }
  
@@ -96,7 +96,7 @@ string.
  static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np)
  {
        struct device *dev = &nvmem->dev;
-@@ -835,6 +894,25 @@ static int nvmem_add_cells_from_dt(struc
+@@ -836,6 +895,25 @@ static int nvmem_add_cells_from_dt(struc
                if (nvmem->fixup_dt_cell_info)
                        nvmem->fixup_dt_cell_info(nvmem, &info);
  
index e4c8caff22f35bd9c61aaa463c257308f4ec0305..559348332f18053bf7a2734912ff6e6676ab0ea3 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/pci/Kconfig
 +++ b/drivers/pci/Kconfig
-@@ -113,6 +113,13 @@ config XEN_PCIDEV_FRONTEND
+@@ -118,6 +118,13 @@ config XEN_PCIDEV_FRONTEND
          The PCI device frontend driver allows the kernel to import arbitrary
          PCI devices from a PCI backend to support PCI driver domains.
  
@@ -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.
-@@ -3501,6 +3502,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3508,6 +3509,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
-@@ -3526,6 +3529,8 @@ static void quirk_intel_ntb(struct pci_d
+@@ -3533,6 +3536,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
-@@ -3564,6 +3569,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3571,6 +3576,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);
  
index 672d0d54cf30a0968de53652cbaf8fce0fc53a7d..256de1f32795434fbe0c800ea286b9ea329156f5 100644 (file)
@@ -45,7 +45,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        depends on ACPI
 --- a/drivers/ata/libata-core.c
 +++ b/drivers/ata/libata-core.c
-@@ -685,6 +685,17 @@ static inline void ata_set_tf_cdl(struct
+@@ -672,6 +672,17 @@ static inline void ata_set_tf_cdl(struct
        qc->flags |= ATA_QCFLAG_HAS_CDL | ATA_QCFLAG_RESULT_TF;
  }
  
@@ -63,7 +63,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  /**
   *    ata_build_rw_tf - Build ATA taskfile for given read/write request
   *    @qc: Metadata associated with the taskfile to build
-@@ -4771,6 +4782,9 @@ void __ata_qc_complete(struct ata_queued
+@@ -4728,6 +4739,9 @@ void __ata_qc_complete(struct ata_queued
                link->active_tag = ATA_TAG_POISON;
                ap->nr_active_links--;
        }
@@ -73,7 +73,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
        /* clear exclusive status */
        if (unlikely(qc->flags & ATA_QCFLAG_CLEAR_EXCL &&
-@@ -5494,6 +5508,9 @@ struct ata_port *ata_port_alloc(struct a
+@@ -5450,6 +5464,9 @@ struct ata_port *ata_port_alloc(struct a
        ap->stats.unhandled_irq = 1;
        ap->stats.idle_irq = 1;
  #endif
@@ -83,10 +83,10 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        ata_sff_port_init(ap);
  
        return ap;
-@@ -5507,6 +5524,12 @@ void ata_port_free(struct ata_port *ap)
+@@ -5464,6 +5481,12 @@ void ata_port_free(struct ata_port *ap)
        kfree(ap->pmp_link);
        kfree(ap->slave_link);
-       kfree(ap->ncq_sense_buf);
+       ida_free(&ata_ida, ap->print_id);
 +#ifdef CONFIG_ATA_LEDS
 +      if (ap->ledtrig) {
 +              led_trigger_unregister(ap->ledtrig);
@@ -96,9 +96,9 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
        kfree(ap);
  }
  EXPORT_SYMBOL_GPL(ata_port_free);
-@@ -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;
+@@ -5868,7 +5891,23 @@ int ata_host_register(struct ata_host *h
+               WARN_ON(1);
+               return -EINVAL;
        }
 +#ifdef CONFIG_ATA_LEDS
 +      for (i = 0; i < host->n_ports; i++) {
@@ -132,16 +132,14 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
  
  /*
   * Define if arch has non-standard setup.  This is a _PCI_ standard
-@@ -875,6 +878,12 @@ struct ata_port {
- #ifdef CONFIG_ATA_ACPI
-       struct ata_acpi_gtm     __acpi_init_gtm; /* use ata_acpi_init_gtm() */
+@@ -726,6 +729,10 @@ struct ata_device {
+       union acpi_object       *gtf_cache;
+       unsigned int            gtf_filter;
  #endif
-+
 +#ifdef CONFIG_ATA_LEDS
 +      struct led_trigger      *ledtrig;
 +      char                    ledtrig_name[8];
 +#endif
-+
-       /* owned by EH */
-       u8                      *ncq_sense_buf;
-       u8                      sector_buf[ATA_SECT_SIZE] ____cacheline_aligned;
+ #ifdef CONFIG_SATA_ZPODD
+       void                    *zpodd;
+ #endif
index 3d3b034199814737dd155c2da1db457d8b998bc4..3172ad5a167b0e2efbeaa0d55fdd69390ad8f8dd 100644 (file)
@@ -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
-@@ -171,6 +171,7 @@ static int bcm2835_rng_probe(struct plat
+@@ -169,6 +169,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;
index fc61ee202a509a46de08319f23aafbefd8fc4e41..6a90959f619849d08956a30c13a581195e2247ba 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
 
 --- a/drivers/pci/controller/pci-aardvark.c
 +++ b/drivers/pci/controller/pci-aardvark.c
-@@ -277,7 +277,6 @@ struct advk_pcie {
+@@ -276,7 +276,6 @@ struct advk_pcie {
        u8 wins_count;
        struct irq_domain *rp_irq_domain;
        struct irq_domain *irq_domain;
@@ -41,7 +41,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
        raw_spinlock_t irq_lock;
        struct irq_domain *msi_domain;
        struct irq_domain *msi_inner_domain;
-@@ -1426,14 +1425,19 @@ static void advk_pcie_irq_unmask(struct
+@@ -1418,14 +1417,19 @@ static void advk_pcie_irq_unmask(struct
        raw_spin_unlock_irqrestore(&pcie->irq_lock, flags);
  }
  
@@ -63,7 +63,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
        irq_set_chip_data(virq, pcie);
  
        return 0;
-@@ -1492,7 +1496,6 @@ static int advk_pcie_init_irq_domain(str
+@@ -1485,7 +1489,6 @@ static int advk_pcie_init_irq_domain(str
        struct device *dev = &pcie->pdev->dev;
        struct device_node *node = dev->of_node;
        struct device_node *pcie_intc_node;
@@ -71,7 +71,7 @@ Signed-off-by: Marek Behún <kabel@kernel.org>
        int ret = 0;
  
        raw_spin_lock_init(&pcie->irq_lock);
-@@ -1503,28 +1506,14 @@ static int advk_pcie_init_irq_domain(str
+@@ -1496,28 +1499,14 @@ static int advk_pcie_init_irq_domain(str
                return -ENODEV;
        }
  
index 1f860e9c7612ea3f7c1bdbaf8bba5372ebe7e4a5..844a8c14a28d635cc3ed7980986dab573474d5a3 100644 (file)
@@ -26,8 +26,8 @@ Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
 
 --- a/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi
 +++ b/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi
-@@ -108,6 +108,14 @@
-       assigned-clock-rates = <0>, <32768>;
+@@ -116,6 +116,14 @@
+       cpu-supply = <&sw1a_reg>;
  };
  
 +&cpu0 {
index f2c197d4f1e24e064329b0fbdb7d5ac06532e8df..c0e318e86e854cccf00c3a79c46649070730d11b 100644 (file)
@@ -13,7 +13,7 @@ Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
 
 --- a/drivers/net/ethernet/atheros/ag71xx.c
 +++ b/drivers/net/ethernet/atheros/ag71xx.c
-@@ -638,7 +638,8 @@ static int ag71xx_mdio_get_divider(struc
+@@ -641,7 +641,8 @@ static int ag71xx_mdio_get_divider(struc
        if (!ref_clock)
                return -EINVAL;
  
index 36e7c18324bdfbbe68b5ad08560a2235043f7ea8..b299a67b4d47be50b6a538ceca52b55d6f1ce9fb 100644 (file)
@@ -13,9 +13,9 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
 
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1820,6 +1820,15 @@ config DEBUG_RSEQ
-         If unsure, say N.
+@@ -1879,6 +1879,15 @@ config ARCH_HAS_MEMBARRIER_CALLBACKS
+ config ARCH_HAS_MEMBARRIER_SYNC_CORE
+       bool
  
 +config MANGLE_BOOTARGS
 +      bool "Rename offending bootargs"
@@ -31,7 +31,7 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
        help
 --- a/init/main.c
 +++ b/init/main.c
-@@ -608,6 +608,29 @@ static inline void setup_nr_cpu_ids(void
+@@ -621,6 +621,29 @@ static inline void setup_nr_cpu_ids(void
  static inline void smp_prepare_cpus(unsigned int maxcpus) { }
  #endif
  
@@ -61,10 +61,10 @@ Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
  /*
   * We need to store the untouched command line for future reference.
   * We also need to store the touched command line since the parameter
-@@ -897,6 +920,7 @@ void start_kernel(void)
-       pr_notice("%s", linux_banner);
+@@ -927,6 +950,7 @@ void start_kernel(void)
+       jump_label_init();
+       static_call_init();
        early_security_init();
-       setup_arch(&command_line);
 +      mangle_bootargs(command_line);
        setup_boot_config();
        setup_command_line(command_line);