kernel: bump 4.14 to 4.14.154
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 18 Nov 2019 09:19:58 +0000 (10:19 +0100)
committerKoen Vandeputte <koen.vandeputte@ncentric.com>
Tue, 19 Nov 2019 14:02:22 +0000 (15:02 +0100)
Refreshed all patches.

Altered patches:
- 902-debloat_proc.patch
- 040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch
- 807-usb-support-layerscape.patch
- 809-flexcan-support-layerscape.patch
- 816-pcie-support-layerscape.patch

Remove upstreamed:
- 303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch

New symbols:
X86_INTEL_MPX
X86_INTEL_MEMORY_PROTECTION_KEYS
CONFIG_X86_INTEL_TSX_MODE_OFF
X86_INTEL_TSX_MODE_ON
X86_INTEL_TSX_MODE_AUTO
SGL_ALLOC

Compile-tested on: ar71xx, cns3xxx, imx6, x86_64
Runtime-tested on: ar71xx, cns3xxx, imx6

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
28 files changed:
include/kernel-version.mk
target/linux/generic/backport-4.14/303-v4.16-netfilter-nf_tables-remove-multihook-chains-and-fami.patch
target/linux/generic/backport-4.14/312-v4.16-netfilter-nf_tables-remove-hooks-from-family-definit.patch
target/linux/generic/backport-4.14/321-v4.16-netfilter-nf_tables-add-flow-table-netlink-frontend.patch
target/linux/generic/backport-4.14/327-v4.16-netfilter-nf_tables-remove-nhooks-field-from-struct-.patch
target/linux/generic/backport-4.14/330-v4.16-netfilter-nf_tables-remove-flag-field-from-struct-nf.patch
target/linux/generic/backport-4.14/335-v4.16-netfilter-nf_tables-add-single-table-list-for-all-fa.patch
target/linux/generic/backport-4.14/337-v4.16-netfilter-nf_tables-get-rid-of-pernet-families.patch
target/linux/generic/backport-4.14/338-v4.16-netfilter-nf_tables-get-rid-of-struct-nft_af_info-ab.patch
target/linux/generic/backport-4.14/344-v4.16-netfilter-nf_tables-allocate-handle-and-delete-objec.patch
target/linux/generic/backport-4.14/359-v4.18-netfilter-nf_flow_table-track-flow-tables-in-nf_flow.patch
target/linux/generic/config-4.14
target/linux/generic/hack-4.14/207-disable-modorder.patch
target/linux/generic/hack-4.14/721-phy_packets.patch
target/linux/generic/hack-4.14/902-debloat_proc.patch
target/linux/generic/hack-4.14/904-debloat_dma_buf.patch
target/linux/generic/pending-4.14/655-increase_skb_pad.patch
target/linux/ipq40xx/patches-4.14/040-dmaengine-qcom-bam-Process-multiple-pending-descript.patch
target/linux/ipq40xx/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch
target/linux/ipq806x/patches-4.14/105-mtd-nor-add-mx25l25635f.patch
target/linux/layerscape/patches-4.14/202-core-linux-support-layerscape.patch
target/linux/layerscape/patches-4.14/301-arch-support-layerscape.patch
target/linux/layerscape/patches-4.14/807-usb-support-layerscape.patch
target/linux/layerscape/patches-4.14/809-flexcan-support-layerscape.patch
target/linux/layerscape/patches-4.14/816-pcie-support-layerscape.patch
target/linux/mvebu/patches-4.14/408-sfp-move-module-eeprom-ethtool-access-into-netdev-co.patch
target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch [deleted file]
target/linux/x86/config-4.14

index 859928fb38b958a7d21363994017bb5cbb665a8c..7ce90474d03203a1142369fddf09b16473142db3 100644 (file)
@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.14 = .152
+LINUX_VERSION-4.14 = .154
 
-LINUX_KERNEL_HASH-4.14.152 = a9239fd9d341aae07b48a8e7a2afd528fe5cde2617d783454c71e6f3dae2b0aa
+LINUX_KERNEL_HASH-4.14.154 = 86de4a24379a78d67fc08b2e249ccf7b689eb6c37fbe329fc3dfbe8ab4300603
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
index a8991e360797986487254f30c2e407aa7460bd02..ed33b2fc5f8b232ff390dd3694059a44224891c7 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -897,8 +897,6 @@ struct nft_stats {
+@@ -898,8 +898,6 @@ struct nft_stats {
        struct u64_stats_sync   syncp;
  };
  
@@ -20,7 +20,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  /**
   *    struct nft_base_chain - nf_tables base chain
   *
-@@ -910,7 +908,7 @@ struct nft_stats {
+@@ -911,7 +909,7 @@ struct nft_stats {
   *    @dev_name: device name that this base chain is attached to (if any)
   */
  struct nft_base_chain {
@@ -29,7 +29,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        const struct nf_chain_type      *type;
        u8                              policy;
        u8                              flags;
-@@ -971,8 +969,6 @@ enum nft_af_flags {
+@@ -972,8 +970,6 @@ enum nft_af_flags {
   *    @owner: module owner
   *    @tables: used internally
   *    @flags: family flags
@@ -38,7 +38,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    @hooks: hookfn overrides for packet validation
   */
  struct nft_af_info {
-@@ -982,9 +978,6 @@ struct nft_af_info {
+@@ -983,9 +979,6 @@ struct nft_af_info {
        struct module                   *owner;
        struct list_head                tables;
        u32                             flags;
index 8f7d11bd679bb03949f5b16637cf61ac4417e5e1..a12679db43f3d5ad81177cbd946a04de68f95023 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -875,7 +875,7 @@ enum nft_chain_type {
+@@ -876,7 +876,7 @@ enum nft_chain_type {
   *    @family: address family
   *    @owner: module owner
   *    @hook_mask: mask of valid hooks
@@ -19,7 +19,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   */
  struct nf_chain_type {
        const char                      *name;
-@@ -969,7 +969,6 @@ enum nft_af_flags {
+@@ -970,7 +970,6 @@ enum nft_af_flags {
   *    @owner: module owner
   *    @tables: used internally
   *    @flags: family flags
@@ -27,7 +27,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   */
  struct nft_af_info {
        struct list_head                list;
-@@ -978,7 +977,6 @@ struct nft_af_info {
+@@ -979,7 +978,6 @@ struct nft_af_info {
        struct module                   *owner;
        struct list_head                tables;
        u32                             flags;
index 39aadb507b535724fe425c7d868a1c0a38bb433b..3b090a6f197efc54294b6e61c56ad044fc70eff7 100644 (file)
@@ -50,7 +50,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  #include <net/netlink.h>
  
  #define NFT_JUMP_STACK_SIZE   16
-@@ -938,6 +939,7 @@ unsigned int nft_do_chain(struct nft_pkt
+@@ -939,6 +940,7 @@ unsigned int nft_do_chain(struct nft_pkt
   *    @chains: chains in the table
   *    @sets: sets in the table
   *    @objects: stateful objects in the table
@@ -58,7 +58,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    @hgenerator: handle generator state
   *    @use: number of chain references to this table
   *    @flags: table flag (see enum nft_table_flags)
-@@ -949,6 +951,7 @@ struct nft_table {
+@@ -950,6 +952,7 @@ struct nft_table {
        struct list_head                chains;
        struct list_head                sets;
        struct list_head                objects;
@@ -66,7 +66,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        u64                             hgenerator;
        u32                             use;
        u16                             flags:14,
-@@ -1080,6 +1083,44 @@ int nft_register_obj(struct nft_object_t
+@@ -1081,6 +1084,44 @@ int nft_register_obj(struct nft_object_t
  void nft_unregister_obj(struct nft_object_type *obj_type);
  
  /**
@@ -111,7 +111,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    struct nft_traceinfo - nft tracing information and state
   *
   *    @pkt: pktinfo currently processed
-@@ -1315,4 +1356,11 @@ struct nft_trans_obj {
+@@ -1316,4 +1357,11 @@ struct nft_trans_obj {
  #define nft_trans_obj(trans)  \
        (((struct nft_trans_obj *)trans->data)->obj)
  
index 632acc8a79882adda771fbac25cac298b6713930..ec149299926f4f83bca45e9353a83dd139bfb205 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -968,7 +968,6 @@ enum nft_af_flags {
+@@ -969,7 +969,6 @@ enum nft_af_flags {
   *
   *    @list: used internally
   *    @family: address family
@@ -22,7 +22,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    @owner: module owner
   *    @tables: used internally
   *    @flags: family flags
-@@ -976,7 +975,6 @@ enum nft_af_flags {
+@@ -977,7 +976,6 @@ enum nft_af_flags {
  struct nft_af_info {
        struct list_head                list;
        int                             family;
index 32d5d2b4ef40ac0bc01fc18191a1b05a92d98cb5..8f82effa79e6a060aafe202275a3400935891652 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -959,10 +959,6 @@ struct nft_table {
+@@ -960,10 +960,6 @@ struct nft_table {
        char                            *name;
  };
  
@@ -21,7 +21,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  /**
   *    struct nft_af_info - nf_tables address family info
   *
-@@ -970,14 +966,12 @@ enum nft_af_flags {
+@@ -971,14 +967,12 @@ enum nft_af_flags {
   *    @family: address family
   *    @owner: module owner
   *    @tables: used internally
index 6f85402c5d21adb522bf81b68e95fdd568ea572e..a577e621bdd9cdb22c04a6cdc41efa7cf68afdd1 100644 (file)
@@ -42,7 +42,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        bool                            report;
  };
  
-@@ -944,6 +944,7 @@ unsigned int nft_do_chain(struct nft_pkt
+@@ -945,6 +945,7 @@ unsigned int nft_do_chain(struct nft_pkt
   *    @use: number of chain references to this table
   *    @flags: table flag (see enum nft_table_flags)
   *    @genmask: generation mask
@@ -50,7 +50,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    @name: name of the table
   */
  struct nft_table {
-@@ -956,6 +957,7 @@ struct nft_table {
+@@ -957,6 +958,7 @@ struct nft_table {
        u32                             use;
        u16                             flags:14,
                                        genmask:2;
@@ -58,7 +58,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        char                            *name;
  };
  
-@@ -965,13 +967,11 @@ struct nft_table {
+@@ -966,13 +968,11 @@ struct nft_table {
   *    @list: used internally
   *    @family: address family
   *    @owner: module owner
index 9e1783ebd6e197bb96305d7db1b90b2dea8511f2..da9d4ffd034cc121cd26e0bcda9a3a5b5407e2a6 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -974,8 +974,8 @@ struct nft_af_info {
+@@ -975,8 +975,8 @@ struct nft_af_info {
        struct module                   *owner;
  };
  
index a2a9d478dd7f7f359210f6c0c411af5080db5d09..ed159d52080f050372c2a65dc62b282c38813600 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
 
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -955,28 +955,12 @@ struct nft_table {
+@@ -956,28 +956,12 @@ struct nft_table {
        struct list_head                flowtables;
        u64                             hgenerator;
        u32                             use;
@@ -42,7 +42,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  int nft_register_chain_type(const struct nf_chain_type *);
  void nft_unregister_chain_type(const struct nf_chain_type *);
  
-@@ -1144,9 +1128,6 @@ void nft_trace_notify(struct nft_tracein
+@@ -1145,9 +1129,6 @@ void nft_trace_notify(struct nft_tracein
  #define nft_dereference(p)                                    \
        nfnl_dereference(p, NFNL_SUBSYS_NFTABLES)
  
index 6daa6cbf7e16771e106d8079f94e0ecf292712d5..3356781cc6a1c6b73a99c15fecf9571b7e54aa68 100644 (file)
@@ -28,7 +28,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        u32                             ktype;
        u32                             dtype;
        u32                             objtype;
-@@ -941,6 +943,7 @@ unsigned int nft_do_chain(struct nft_pkt
+@@ -942,6 +944,7 @@ unsigned int nft_do_chain(struct nft_pkt
   *    @objects: stateful objects in the table
   *    @flowtables: flow tables in the table
   *    @hgenerator: handle generator state
@@ -36,7 +36,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    @use: number of chain references to this table
   *    @flags: table flag (see enum nft_table_flags)
   *    @genmask: generation mask
-@@ -954,6 +957,7 @@ struct nft_table {
+@@ -955,6 +958,7 @@ struct nft_table {
        struct list_head                objects;
        struct list_head                flowtables;
        u64                             hgenerator;
@@ -44,7 +44,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        u32                             use;
        u16                             family:6,
                                        flags:8,
-@@ -978,9 +982,9 @@ int nft_verdict_dump(struct sk_buff *skb
+@@ -979,9 +983,9 @@ int nft_verdict_dump(struct sk_buff *skb
   *    @name: name of this stateful object
   *    @genmask: generation mask
   *    @use: number of references to this stateful object
@@ -56,7 +56,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   */
  struct nft_object {
        struct list_head                list;
-@@ -988,6 +992,7 @@ struct nft_object {
+@@ -989,6 +993,7 @@ struct nft_object {
        struct nft_table                *table;
        u32                             genmask:2,
                                        use:30;
@@ -64,7 +64,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
        /* runtime data below here */
        const struct nft_object_ops     *ops ____cacheline_aligned;
        unsigned char                   data[]
-@@ -1069,6 +1074,7 @@ void nft_unregister_obj(struct nft_objec
+@@ -1070,6 +1075,7 @@ void nft_unregister_obj(struct nft_objec
   *    @ops_len: number of hooks in array
   *    @genmask: generation mask
   *    @use: number of references to this flow table
@@ -72,7 +72,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
   *    @data: rhashtable and garbage collector
   *    @ops: array of hooks
   */
-@@ -1081,6 +1087,7 @@ struct nft_flowtable {
+@@ -1082,6 +1088,7 @@ struct nft_flowtable {
        int                             ops_len;
        u32                             genmask:2,
                                        use:30;
index 1ab1342b5b491dcebe96fb82a256fdbd56dd7dcb..e39daf89272973aefd516c8e0df9219f6cd98259 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        struct delayed_work             gc_work;
 --- a/include/net/netfilter/nf_tables.h
 +++ b/include/net/netfilter/nf_tables.h
-@@ -1096,9 +1096,6 @@ struct nft_flowtable {
+@@ -1097,9 +1097,6 @@ struct nft_flowtable {
  struct nft_flowtable *nf_tables_flowtable_lookup(const struct nft_table *table,
                                                 const struct nlattr *nla,
                                                 u8 genmask);
index beed43f8dda27e0033cd1f321a8ee217d53d361e..a8c8642c06b7f5fe9e24ea65eb913498c1604fa0 100644 (file)
@@ -4336,6 +4336,7 @@ CONFIG_SERIAL_EARLYCON=y
 # CONFIG_SGI_IP28 is not set
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SGI_PARTITION is not set
+# CONFIG_SGL_ALLOC is not set
 # CONFIG_SG_POOL is not set
 # CONFIG_SG_SPLIT is not set
 CONFIG_SHMEM=y
index e67393aa5f7e565fa2e9bc0828fbca707c8b5780..35834291cc1c9776ebbebd270b726b3b45f102a2 100644 (file)
@@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/Makefile
 +++ b/Makefile
-@@ -1243,7 +1243,6 @@ all: modules
+@@ -1252,7 +1252,6 @@ all: modules
  
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
  
-@@ -1272,7 +1271,6 @@ _modinst_:
+@@ -1281,7 +1280,6 @@ _modinst_:
                rm -f $(MODLIB)/build ; \
                ln -s $(CURDIR) $(MODLIB)/build ; \
        fi
index 6cbb25429f03a2cfd805c6ba8ffad9a787b985f0..9e1c57d92d0181950a802d76cf095f82aeac0a1b 100644 (file)
@@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
   */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2514,6 +2514,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2530,6 +2530,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -2645,16 +2649,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2661,16 +2665,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
index 6a2e6175a74feecca8f376bdcec47ae17edf3ac2..a776997faf8deb899ce47b79bf5fbd95e8220ef2 100644 (file)
@@ -248,10 +248,10 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
  #ifdef CONFIG_PROC_FS
 -      proc_create("buddyinfo", 0444, NULL, &buddyinfo_file_operations);
--      proc_create("pagetypeinfo", 0444, NULL, &pagetypeinfo_file_operations);
+-      proc_create("pagetypeinfo", 0400, NULL, &pagetypeinfo_file_operations);
 +      if (!IS_ENABLED(CONFIG_PROC_STRIPPED)) {
 +              proc_create("buddyinfo", 0444, NULL, &buddyinfo_file_operations);
-+              proc_create("pagetypeinfo", 0444, NULL, &pagetypeinfo_file_operations);
++              proc_create("pagetypeinfo", 0400, NULL, &pagetypeinfo_file_operations);
 +              proc_create("zoneinfo", 0444, NULL, &zoneinfo_file_operations);
 +      }
        proc_create("vmstat", 0444, NULL, &vmstat_file_operations);
index 195507996facf39a27c6a7965457cc7059036f38..9fd8894225cee0bf75ef208e2a2f16406b4eeb59 100644 (file)
@@ -54,7 +54,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 +MODULE_LICENSE("GPL");
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -2164,6 +2164,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2165,6 +2165,7 @@ int wake_up_state(struct task_struct *p,
  {
        return try_to_wake_up(p, state, 0);
  }
index f692dd38624508716c8a63639db21ab6f1b38bcf..4bb1c58bbcf2fca04cd678ce49b62c862c2feced 100644 (file)
@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -2478,7 +2478,7 @@ static inline int pskb_network_may_pull(
+@@ -2494,7 +2494,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 881d08c7e5ecd5d1c00a702f76ffb0dfd25e53b2..164b3fb48e8d92ce1be398088f70bff7e9051a2c 100644 (file)
@@ -132,7 +132,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
        async_desc->num_desc = num_alloc;
        async_desc->curr_desc = async_desc->desc;
-@@ -685,14 +688,16 @@ err_out:
+@@ -685,29 +688,16 @@ err_out:
  static int bam_dma_terminate_all(struct dma_chan *chan)
  {
        struct bam_chan *bchan = to_bam_chan(chan);
@@ -142,17 +142,32 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
        /* remove all transactions, including active transaction */
        spin_lock_irqsave(&bchan->vc.lock, flag);
+-      /*
+-       * If we have transactions queued, then some might be committed to the
+-       * hardware in the desc fifo.  The only way to reset the desc fifo is
+-       * to do a hardware reset (either by pipe or the entire block).
+-       * bam_chan_init_hw() will trigger a pipe reset, and also reinit the
+-       * pipe.  If the pipe is left disabled (default state after pipe reset)
+-       * and is accessed by a connected hardware engine, a fatal error in
+-       * the BAM will occur.  There is a small window where this could happen
+-       * with bam_chan_init_hw(), but it is assumed that the caller has
+-       * stopped activity on any attached hardware engine.  Make sure to do
+-       * this first so that the BAM hardware doesn't cause memory corruption
+-       * by accessing freed resources.
+-       */
 -      if (bchan->curr_txd) {
+-              bam_chan_init_hw(bchan, bchan->curr_txd->dir);
 -              list_add(&bchan->curr_txd->vd.node, &bchan->vc.desc_issued);
 -              bchan->curr_txd = NULL;
-+      list_for_each_entry_safe(async_desc, tmp,
-+                               &bchan->desc_list, desc_node) {
-+              list_add(&async_desc->vd.node, &bchan->vc.desc_issued);
-+              list_del(&async_desc->desc_node);
-       }
+-      }
++        list_for_each_entry_safe(async_desc, tmp,
++                                &bchan->desc_list, desc_node) {
++                list_add(&async_desc->vd.node, &bchan->vc.desc_issued);
++                list_del(&async_desc->desc_node);
  
        vchan_get_all_descriptors(&bchan->vc, &head);
-@@ -764,9 +769,9 @@ static int bam_resume(struct dma_chan *c
+       spin_unlock_irqrestore(&bchan->vc.lock, flag);
+@@ -778,9 +768,9 @@ static int bam_resume(struct dma_chan *c
   */
  static u32 process_channel_irqs(struct bam_device *bdev)
  {
@@ -164,7 +179,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
        srcs = readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_SRCS_EE));
  
-@@ -786,27 +791,40 @@ static u32 process_channel_irqs(struct b
+@@ -800,27 +790,40 @@ static u32 process_channel_irqs(struct b
                writel_relaxed(pipe_stts, bam_addr(bdev, i, BAM_P_IRQ_CLR));
  
                spin_lock_irqsave(&bchan->vc.lock, flags);
@@ -214,7 +229,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
                }
  
                spin_unlock_irqrestore(&bchan->vc.lock, flags);
-@@ -868,6 +886,7 @@ static enum dma_status bam_tx_status(str
+@@ -882,6 +885,7 @@ static enum dma_status bam_tx_status(str
                struct dma_tx_state *txstate)
  {
        struct bam_chan *bchan = to_bam_chan(chan);
@@ -222,7 +237,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
        struct virt_dma_desc *vd;
        int ret;
        size_t residue = 0;
-@@ -883,11 +902,17 @@ static enum dma_status bam_tx_status(str
+@@ -897,11 +901,17 @@ static enum dma_status bam_tx_status(str
  
        spin_lock_irqsave(&bchan->vc.lock, flags);
        vd = vchan_find_desc(&bchan->vc, cookie);
@@ -244,7 +259,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
        spin_unlock_irqrestore(&bchan->vc.lock, flags);
  
-@@ -928,63 +953,86 @@ static void bam_start_dma(struct bam_cha
+@@ -942,63 +952,86 @@ static void bam_start_dma(struct bam_cha
  {
        struct virt_dma_desc *vd = vchan_next_desc(&bchan->vc);
        struct bam_device *bdev = bchan->bdev;
@@ -311,19 +326,19 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
 +                      async_desc->xfer_len = avail;
 +              else
 +                      async_desc->xfer_len = async_desc->num_desc;
-+
+-      if (bchan->tail + async_desc->xfer_len > MAX_DESCRIPTORS) {
+-              u32 partial = MAX_DESCRIPTORS - bchan->tail;
 +              /* set any special flags on the last descriptor */
 +              if (async_desc->num_desc == async_desc->xfer_len)
 +                      desc[async_desc->xfer_len - 1].flags |=
 +                                              cpu_to_le16(async_desc->flags);
  
--      if (bchan->tail + async_desc->xfer_len > MAX_DESCRIPTORS) {
--              u32 partial = MAX_DESCRIPTORS - bchan->tail;
-+              vd = vchan_next_desc(&bchan->vc);
 -              memcpy(&fifo[bchan->tail], desc,
 -                              partial * sizeof(struct bam_desc_hw));
 -              memcpy(fifo, &desc[partial], (async_desc->xfer_len - partial) *
++              vd = vchan_next_desc(&bchan->vc);
++
 +              dmaengine_desc_get_callback(&async_desc->vd.tx, &cb);
 +
 +              /*
@@ -367,7 +382,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
  
        /* ensure descriptor writes and dma start not reordered */
        wmb();
-@@ -1013,7 +1061,7 @@ static void dma_tasklet(unsigned long da
+@@ -1027,7 +1060,7 @@ static void dma_tasklet(unsigned long da
                bchan = &bdev->channels[i];
                spin_lock_irqsave(&bchan->vc.lock, flags);
  
@@ -376,7 +391,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
                        bam_start_dma(bchan);
                spin_unlock_irqrestore(&bchan->vc.lock, flags);
        }
-@@ -1034,7 +1082,7 @@ static void bam_issue_pending(struct dma
+@@ -1048,7 +1081,7 @@ static void bam_issue_pending(struct dma
        spin_lock_irqsave(&bchan->vc.lock, flags);
  
        /* if work pending and idle, start a transaction */
@@ -385,7 +400,7 @@ Signed-off-by: Vinod Koul <vinod.koul@intel.com>
                bam_start_dma(bchan);
  
        spin_unlock_irqrestore(&bchan->vc.lock, flags);
-@@ -1138,6 +1186,7 @@ static void bam_channel_init(struct bam_
+@@ -1152,6 +1185,7 @@ static void bam_channel_init(struct bam_
  
        vchan_init(&bchan->vc, &bdev->common);
        bchan->vc.desc_free = bam_dma_free_desc;
index 28a04fae6d5f12780517a120b7c7d897dfef09f3..01de239814e947b3c7e8f4851be28c6f34c37aa9 100644 (file)
@@ -7,7 +7,7 @@
 +      { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
        { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
        { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
-       { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+       { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
 @@ -1201,11 +1202,12 @@ static const struct flash_info spi_nor_i
        { },
  };
index 1c903bbc3b38dc27e0c614e8b7597ec33b070310..0986d99074b95f2177c1ef58136858c62f271da6 100644 (file)
@@ -19,4 +19,4 @@ the ubi volume created by the other.
 +      { "mx25l25635f", INFO(0xc22019, 0, 64 * 1024, 512, SECT_4K) },
        { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
        { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
-       { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
+       { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
index 512d323ac6e9c488bca27845d137d9f78679e68e..49e528402c6b481f62b4ca5c655da28b9e83a111 100644 (file)
@@ -580,7 +580,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  void  __kfree_skb(struct sk_buff *skb);
  extern struct kmem_cache *skbuff_head_cache;
  
-@@ -3297,6 +3298,7 @@ static inline void skb_free_datagram_loc
+@@ -3313,6 +3314,7 @@ static inline void skb_free_datagram_loc
  }
  int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags);
  int skb_copy_bits(const struct sk_buff *skb, int offset, void *to, int len);
index a2766a46b263ef56d046ce22781f083e7be66dbd..e8b730f95cdb8e3bc942918ee38ea43803e8c025 100644 (file)
@@ -285,7 +285,7 @@ Signed-off-by: Zhao Qiang <qiang.zhao@nxp.com>
  #define PAGE_NONE             __pgprot(((_PAGE_DEFAULT) & ~PTE_VALID) | PTE_PROT_NONE | PTE_RDONLY | PTE_NG | PTE_PXN | PTE_UXN)
 --- a/arch/arm64/include/asm/pgtable.h
 +++ b/arch/arm64/include/asm/pgtable.h
-@@ -377,6 +377,11 @@ static inline int pmd_protnone(pmd_t pmd
+@@ -360,6 +360,11 @@ static inline int pmd_protnone(pmd_t pmd
        __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE) | PTE_PXN | PTE_UXN)
  #define pgprot_writecombine(prot) \
        __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC) | PTE_PXN | PTE_UXN)
index 70bc3b32aa4d1713ffb98b79b9abe5cce68b3dc8..34a86b56bb407df62a7bf530d646aaab7a86683e 100644 (file)
@@ -217,7 +217,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  }
  
  static void __dwc3_set_mode(struct work_struct *work)
-@@ -766,6 +810,96 @@ static void dwc3_core_setup_global_contr
+@@ -765,6 +809,96 @@ static void dwc3_core_setup_global_contr
  static int dwc3_core_get_phy(struct dwc3 *dwc);
  static int dwc3_core_ulpi_init(struct dwc3 *dwc);
  
@@ -314,7 +314,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  /**
   * dwc3_core_init - Low-level initialization of DWC3 Core
   * @dwc: Pointer to our controller context structure
-@@ -828,6 +962,8 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -827,6 +961,8 @@ static int dwc3_core_init(struct dwc3 *d
        /* Adjust Frame Length */
        dwc3_frame_length_adjustment(dwc);
  
@@ -323,7 +323,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        usb_phy_set_suspend(dwc->usb2_phy, 0);
        usb_phy_set_suspend(dwc->usb3_phy, 0);
        ret = phy_power_on(dwc->usb2_generic_phy);
-@@ -871,6 +1007,22 @@ static int dwc3_core_init(struct dwc3 *d
+@@ -870,6 +1006,22 @@ static int dwc3_core_init(struct dwc3 *d
                dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
        }
  
@@ -346,7 +346,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        return 0;
  
  err4:
-@@ -1074,6 +1226,8 @@ static void dwc3_get_properties(struct d
+@@ -1073,6 +1225,8 @@ static void dwc3_get_properties(struct d
                                &hird_threshold);
        dwc->usb3_lpm_capable = device_property_read_bool(dev,
                                "snps,usb3_lpm_capable");
@@ -355,7 +355,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        dwc->disable_scramble_quirk = device_property_read_bool(dev,
                                "snps,disable_scramble_quirk");
-@@ -1106,8 +1260,16 @@ static void dwc3_get_properties(struct d
+@@ -1105,8 +1259,16 @@ static void dwc3_get_properties(struct d
        dwc->dis_tx_ipgap_linecheck_quirk = device_property_read_bool(dev,
                                "snps,dis-tx-ipgap-linecheck-quirk");
  
@@ -372,9 +372,9 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        device_property_read_u8(dev, "snps,tx_de_emphasis",
                                &tx_de_emphasis);
        device_property_read_string(dev, "snps,hsphy_interface",
-@@ -1115,6 +1277,9 @@ static void dwc3_get_properties(struct d
-       device_property_read_u32(dev, "snps,quirk-frame-length-adjustment",
-                                &dwc->fladj);
+@@ -1117,6 +1279,9 @@ static void dwc3_get_properties(struct d
+       dwc->dis_metastability_quirk = device_property_read_bool(dev,
+                               "snps,dis_metastability_quirk");
  
 +      dwc->host_vbus_glitches = device_property_read_bool(dev,
 +                              "snps,host-vbus-glitches");
@@ -382,7 +382,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        dwc->lpm_nyet_threshold = lpm_nyet_threshold;
        dwc->tx_de_emphasis = tx_de_emphasis;
  
-@@ -1365,12 +1530,14 @@ static int dwc3_resume_common(struct dwc
+@@ -1367,12 +1532,14 @@ static int dwc3_resume_common(struct dwc
  
        switch (dwc->dr_mode) {
        case USB_DR_MODE_PERIPHERAL:
@@ -473,21 +473,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
   * @disable_scramble_quirk: set if we enable the disable scramble quirk
   * @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
   * @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
-@@ -869,6 +908,13 @@ struct dwc3_scratchpad_array {
-  *    1       - -3.5dB de-emphasis
-  *    2       - No de-emphasis
-  *    3       - Reserved
-+ * @disable_devinit_u1u2_quirk: disable device-initiated U1/U2 request.
-+ * @quirk_reverse_in_out: prevent tx fifo reverse the data direction
-+ * @quirk_stop_transfer_in_block: prevent block transmission from being
-+ *                            interrupted
-+ * @quirk_stop_ep_in_u1: replace stop commad with disable slot command
-+ * @host-vbus-glitches: set to avoid vbus glitch during
-+ *                      xhci reset.
-  * @imod_interval: set the interrupt moderation interval in 250ns
-  *                 increments or 0 to disable.
-  */
-@@ -921,6 +967,12 @@ struct dwc3 {
+@@ -922,6 +961,12 @@ struct dwc3 {
        enum usb_phy_interface  hsphy_mode;
  
        u32                     fladj;
@@ -500,7 +486,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        u32                     irq_gadget;
        u32                     nr_scratch;
        u32                     u1u2;
-@@ -1005,6 +1057,7 @@ struct dwc3 {
+@@ -1006,6 +1051,7 @@ struct dwc3 {
        unsigned                setup_packet_pending:1;
        unsigned                three_stage_setup:1;
        unsigned                usb3_lpm_capable:1;
@@ -508,7 +494,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        unsigned                disable_scramble_quirk:1;
        unsigned                u2exit_lfps_quirk:1;
-@@ -1024,6 +1077,11 @@ struct dwc3 {
+@@ -1025,6 +1071,11 @@ struct dwc3 {
  
        unsigned                tx_de_emphasis_quirk:1;
        unsigned                tx_de_emphasis:2;
@@ -518,8 +504,8 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
 +      unsigned                quirk_stop_ep_in_u1:1;
 +      unsigned                host_vbus_glitches:1;
  
-       u16                     imod_interval;
- };
+       unsigned                dis_metastability_quirk:1;
 --- a/drivers/usb/dwc3/ep0.c
 +++ b/drivers/usb/dwc3/ep0.c
 @@ -391,7 +391,7 @@ static int dwc3_ep0_handle_u1(struct dwc
@@ -542,7 +528,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
                reg &= ~DWC3_DCTL_INITU2ENA;
 --- a/drivers/usb/dwc3/gadget.c
 +++ b/drivers/usb/dwc3/gadget.c
-@@ -3210,6 +3210,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3211,6 +3211,7 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  {
        int ret;
        int irq;
@@ -550,7 +536,7 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
  
        irq = dwc3_gadget_get_irq(dwc);
        if (irq < 0) {
-@@ -3288,6 +3289,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
+@@ -3290,6 +3291,12 @@ int dwc3_gadget_init(struct dwc3 *dwc)
  
        dwc3_gadget_set_speed(&dwc->gadget, dwc->maximum_speed);
  
@@ -754,15 +740,6 @@ Signed-off-by: Zhao Chenhui <chenhui.zhao@freescale.com>
        /* DR has been stopped in usb_gadget_unregister_driver() */
        remove_proc_file();
  
-@@ -2569,7 +2579,7 @@ static int fsl_udc_remove(struct platfor
-       dma_pool_destroy(udc_controller->td_pool);
-       free_irq(udc_controller->irq, udc_controller);
-       iounmap(dr_regs);
--      if (pdata->operating_mode == FSL_USB2_DR_DEVICE)
-+      if (res && (pdata->operating_mode == FSL_USB2_DR_DEVICE))
-               release_mem_region(res->start, resource_size(res));
-       /* free udc --wait for the release() finished */
 --- a/drivers/usb/gadget/udc/fsl_usb2_udc.h
 +++ b/drivers/usb/gadget/udc/fsl_usb2_udc.h
 @@ -20,6 +20,10 @@
index a52b8b5167c0adab1af2be72ec112a3156771ed6..75a6d97adbffe5887de7ddedc417cae8739a1e50 100644 (file)
@@ -470,7 +470,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
  
        /* On Vybrid, disable memory error detection interrupts
         * and freeze mode.
-@@ -1011,16 +1028,16 @@ static int flexcan_chip_start(struct net
+@@ -1011,17 +1028,17 @@ static int flexcan_chip_start(struct net
                 * and Correction of Memory Errors" to write to
                 * MECR register
                 */
@@ -485,6 +485,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
                reg_mecr &= ~FLEXCAN_MECR_ECRWRDIS;
 -              flexcan_write(reg_mecr, &regs->mecr);
 +              priv->write(reg_mecr, &regs->mecr);
+               reg_mecr |= FLEXCAN_MECR_ECCDIS;
                reg_mecr &= ~(FLEXCAN_MECR_NCEFAFRZ | FLEXCAN_MECR_HANCEI_MSK |
                              FLEXCAN_MECR_FANCEI_MSK);
 -              flexcan_write(reg_mecr, &regs->mecr);
@@ -492,7 +493,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
        }
  
        err = flexcan_transceiver_enable(priv);
-@@ -1036,14 +1053,14 @@ static int flexcan_chip_start(struct net
+@@ -1037,14 +1054,14 @@ static int flexcan_chip_start(struct net
  
        /* enable interrupts atomically */
        disable_irq(dev->irq);
@@ -511,7 +512,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
  
        return 0;
  
-@@ -1068,10 +1085,10 @@ static void flexcan_chip_stop(struct net
+@@ -1069,10 +1086,10 @@ static void flexcan_chip_stop(struct net
        flexcan_chip_disable(priv);
  
        /* Disable all interrupts */
@@ -526,7 +527,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
  
        flexcan_transceiver_disable(priv);
        priv->can.state = CAN_STATE_STOPPED;
-@@ -1186,26 +1203,26 @@ static int register_flexcandev(struct ne
+@@ -1187,26 +1204,26 @@ static int register_flexcandev(struct ne
        err = flexcan_chip_disable(priv);
        if (err)
                goto out_disable_per;
@@ -558,7 +559,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
        if (!(reg & FLEXCAN_MCR_FEN)) {
                netdev_err(dev, "Could not enable RX FIFO, unsupported core\n");
                err = -ENODEV;
-@@ -1233,8 +1250,12 @@ static void unregister_flexcandev(struct
+@@ -1234,8 +1251,12 @@ static void unregister_flexcandev(struct
  static const struct of_device_id flexcan_of_match[] = {
        { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, },
        { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, },
@@ -571,7 +572,7 @@ Signed-off-by: Biwen Li <biwen.li@nxp.com>
        { /* sentinel */ },
  };
  MODULE_DEVICE_TABLE(of, flexcan_of_match);
-@@ -1314,6 +1335,21 @@ static int flexcan_probe(struct platform
+@@ -1315,6 +1336,21 @@ static int flexcan_probe(struct platform
        dev->flags |= IFF_ECHO;
  
        priv = netdev_priv(dev);
index 88f38df746386bd61cab2480aa04a1af588e5ee1..781333356a1918ab5bb5181086ee3e0031c97bd6 100644 (file)
@@ -286,15 +286,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  enum pci_barno {
        BAR_0,
        BAR_1,
-@@ -92,6 +103,7 @@ struct pci_endpoint_test {
-       void __iomem    *bar[6];
-       struct completion irq_raised;
-       int             last_irq;
-+      int             num_irqs;
-       /* mutex to protect the ioctls */
-       struct mutex    mutex;
-       struct miscdevice miscdev;
-@@ -102,7 +114,7 @@ struct pci_endpoint_test {
+@@ -103,7 +114,7 @@ struct pci_endpoint_test {
  struct pci_endpoint_test_data {
        enum pci_barno test_reg_bar;
        size_t alignment;
@@ -303,7 +295,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  };
  
  static inline u32 pci_endpoint_test_readl(struct pci_endpoint_test *test,
-@@ -146,6 +158,100 @@ static irqreturn_t pci_endpoint_test_irq
+@@ -147,6 +158,100 @@ static irqreturn_t pci_endpoint_test_irq
        return IRQ_HANDLED;
  }
  
@@ -404,7 +396,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  static bool pci_endpoint_test_bar(struct pci_endpoint_test *test,
                                  enum pci_barno barno)
  {
-@@ -178,6 +284,9 @@ static bool pci_endpoint_test_legacy_irq
+@@ -179,6 +284,9 @@ static bool pci_endpoint_test_legacy_irq
  {
        u32 val;
  
@@ -414,7 +406,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_COMMAND,
                                 COMMAND_RAISE_LEGACY_IRQ);
        val = wait_for_completion_timeout(&test->irq_raised,
-@@ -189,20 +298,24 @@ static bool pci_endpoint_test_legacy_irq
+@@ -190,20 +298,24 @@ static bool pci_endpoint_test_legacy_irq
  }
  
  static bool pci_endpoint_test_msi_irq(struct pci_endpoint_test *test,
@@ -443,9 +435,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                return true;
  
        return false;
-@@ -226,10 +339,18 @@ static bool pci_endpoint_test_copy(struc
-       u32 src_crc32;
-       u32 dst_crc32;
+@@ -230,10 +342,18 @@ static bool pci_endpoint_test_copy(struc
+       if (size > SIZE_MAX - alignment)
+               goto err;
  
 +      if (size > SIZE_MAX - alignment)
 +              goto err;
@@ -463,7 +455,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                ret = false;
                goto err;
        }
-@@ -255,7 +376,7 @@ static bool pci_endpoint_test_copy(struc
+@@ -259,7 +379,7 @@ static bool pci_endpoint_test_copy(struc
        orig_dst_addr = dma_alloc_coherent(dev, size + alignment,
                                           &orig_dst_phys_addr, GFP_KERNEL);
        if (!orig_dst_addr) {
@@ -472,7 +464,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                ret = false;
                goto err_orig_src_addr;
        }
-@@ -277,8 +398,10 @@ static bool pci_endpoint_test_copy(struc
+@@ -281,8 +401,10 @@ static bool pci_endpoint_test_copy(struc
        pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE,
                                 size);
  
@@ -484,9 +476,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
        wait_for_completion(&test->irq_raised);
  
-@@ -311,10 +434,18 @@ static bool pci_endpoint_test_write(stru
-       size_t alignment = test->alignment;
-       u32 crc32;
+@@ -318,10 +440,18 @@ static bool pci_endpoint_test_write(stru
+       if (size > SIZE_MAX - alignment)
+               goto err;
  
 +      if (size > SIZE_MAX - alignment)
 +              goto err;
@@ -504,7 +496,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                ret = false;
                goto err;
        }
-@@ -341,8 +472,10 @@ static bool pci_endpoint_test_write(stru
+@@ -348,8 +478,10 @@ static bool pci_endpoint_test_write(stru
  
        pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE, size);
  
@@ -516,9 +508,9 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
        wait_for_completion(&test->irq_raised);
  
-@@ -369,10 +502,18 @@ static bool pci_endpoint_test_read(struc
-       size_t alignment = test->alignment;
-       u32 crc32;
+@@ -379,10 +511,18 @@ static bool pci_endpoint_test_read(struc
+       if (size > SIZE_MAX - alignment)
+               goto err;
  
 +      if (size > SIZE_MAX - alignment)
 +              goto err;
@@ -536,7 +528,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                ret = false;
                goto err;
        }
-@@ -393,8 +534,10 @@ static bool pci_endpoint_test_read(struc
+@@ -403,8 +543,10 @@ static bool pci_endpoint_test_read(struc
  
        pci_endpoint_test_writel(test, PCI_ENDPOINT_TEST_SIZE, size);
  
@@ -548,7 +540,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  
        wait_for_completion(&test->irq_raised);
  
-@@ -407,6 +550,38 @@ err:
+@@ -417,6 +559,38 @@ err:
        return ret;
  }
  
@@ -587,7 +579,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  static long pci_endpoint_test_ioctl(struct file *file, unsigned int cmd,
                                    unsigned long arg)
  {
-@@ -426,7 +601,8 @@ static long pci_endpoint_test_ioctl(stru
+@@ -436,7 +610,8 @@ static long pci_endpoint_test_ioctl(stru
                ret = pci_endpoint_test_legacy_irq(test);
                break;
        case PCITEST_MSI:
@@ -597,7 +589,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                break;
        case PCITEST_WRITE:
                ret = pci_endpoint_test_write(test, arg);
-@@ -437,6 +613,12 @@ static long pci_endpoint_test_ioctl(stru
+@@ -447,6 +622,12 @@ static long pci_endpoint_test_ioctl(stru
        case PCITEST_COPY:
                ret = pci_endpoint_test_copy(test, arg);
                break;
@@ -610,7 +602,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        }
  
  ret:
-@@ -452,9 +634,7 @@ static const struct file_operations pci_
+@@ -462,9 +643,7 @@ static const struct file_operations pci_
  static int pci_endpoint_test_probe(struct pci_dev *pdev,
                                   const struct pci_device_id *ent)
  {
@@ -620,7 +612,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        int id;
        char name[20];
        enum pci_barno bar;
-@@ -476,12 +656,15 @@ static int pci_endpoint_test_probe(struc
+@@ -486,12 +665,15 @@ static int pci_endpoint_test_probe(struc
        test->alignment = 0;
        test->pdev = pdev;
  
@@ -637,7 +629,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        }
  
        init_completion(&test->irq_raised);
-@@ -501,35 +684,21 @@ static int pci_endpoint_test_probe(struc
+@@ -511,36 +693,21 @@ static int pci_endpoint_test_probe(struc
  
        pci_set_master(pdev);
  
@@ -645,6 +637,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
 -              irq = pci_alloc_irq_vectors(pdev, 1, 32, PCI_IRQ_MSI);
 -              if (irq < 0)
 -                      dev_err(dev, "failed to get MSI interrupts\n");
+-              test->num_irqs = irq;
 -      }
 +      if (!pci_endpoint_test_alloc_irq_vectors(test, irq_type))
 +              goto err_disable_irq;
@@ -684,7 +677,7 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
        }
  
        test->base = test->bar[test_reg_bar];
-@@ -545,24 +714,31 @@ static int pci_endpoint_test_probe(struc
+@@ -556,24 +723,31 @@ static int pci_endpoint_test_probe(struc
        id = ida_simple_get(&pci_endpoint_test_ida, 0, 0, GFP_KERNEL);
        if (id < 0) {
                err = id;
@@ -720,20 +713,23 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
  err_ida_remove:
        ida_simple_remove(&pci_endpoint_test_ida, id);
  
-@@ -571,9 +747,10 @@ err_iounmap:
-               if (test->bar[bar])
+@@ -583,11 +757,13 @@ err_iounmap:
                        pci_iounmap(pdev, test->bar[bar]);
        }
+-      for (i = 0; i < irq; i++)
+-              devm_free_irq(dev, pdev->irq + i, test);
 +      pci_endpoint_test_release_irq(test);
  
--err_disable_msi:
--      pci_disable_msi(pdev);
+ err_disable_msi:
+       pci_disable_msi(pdev);
++
 +err_disable_irq:
 +      pci_endpoint_test_free_irq_vectors(test);
        pci_release_regions(pdev);
  
  err_disable_pdev:
-@@ -595,12 +772,16 @@ static void pci_endpoint_test_remove(str
+@@ -610,14 +786,15 @@ static void pci_endpoint_test_remove(str
                return;
  
        misc_deregister(&test->miscdev);
@@ -743,15 +739,16 @@ Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
                if (test->bar[bar])
                        pci_iounmap(pdev, test->bar[bar]);
        }
+-      for (i = 0; i < test->num_irqs; i++)
+-              devm_free_irq(&pdev->dev, pdev->irq + i, test);
 -      pci_disable_msi(pdev);
 +
 +      pci_endpoint_test_release_irq(test);
 +      pci_endpoint_test_free_irq_vectors(test);
-+
        pci_release_regions(pdev);
        pci_disable_device(pdev);
  }
-@@ -608,6 +789,7 @@ static void pci_endpoint_test_remove(str
+@@ -625,6 +802,7 @@ static void pci_endpoint_test_remove(str
  static const struct pci_device_id pci_endpoint_test_tbl[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA74x) },
        { PCI_DEVICE(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_DRA72x) },
index a5efa258385d3be91146695ba6c467e9075b45ce..2e4be1bc48cb639522d81de17d022b9018db5c81 100644 (file)
@@ -159,7 +159,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
  #include <linux/slab.h>
  #include <linux/rtnetlink.h>
  #include <linux/sched/signal.h>
-@@ -2212,6 +2213,9 @@ static int __ethtool_get_module_info(str
+@@ -2214,6 +2215,9 @@ static int __ethtool_get_module_info(str
        const struct ethtool_ops *ops = dev->ethtool_ops;
        struct phy_device *phydev = dev->phydev;
  
@@ -169,7 +169,7 @@ Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
        if (phydev && phydev->drv && phydev->drv->module_info)
                return phydev->drv->module_info(phydev, modinfo);
  
-@@ -2246,6 +2250,9 @@ static int __ethtool_get_module_eeprom(s
+@@ -2248,6 +2252,9 @@ static int __ethtool_get_module_eeprom(s
        const struct ethtool_ops *ops = dev->ethtool_ops;
        struct phy_device *phydev = dev->phydev;
  
diff --git a/target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch b/target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch
deleted file mode 100644 (file)
index 4832ebf..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/mtd/spi-nor/spi-nor.c
-+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1100,7 +1100,7 @@ static const struct flash_info spi_nor_i
-       { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-       { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
-       { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },
--      { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-+      { "mx66l51235l", INFO(0xc2201a, 0, 64 * 1024, 1024, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
-       { "mx66u51235f", INFO(0xc2253a, 0, 64 * 1024, 1024, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },
-       { "mx66l1g45g",  INFO(0xc2201b, 0, 64 * 1024, 2048, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
-       { "mx66l1g55g",  INFO(0xc2261b, 0, 64 * 1024, 2048, SPI_NOR_QUAD_READ) },
index 014e7b275b2a90be459856a75be4387e1fdfb77a..5abec3b6ebe6a693d16bdb4deaf6122acaf45ba7 100644 (file)
@@ -474,7 +474,12 @@ CONFIG_X86_FAST_FEATURE_TESTS=y
 CONFIG_X86_FEATURE_NAMES=y
 CONFIG_X86_GENERIC=y
 # CONFIG_X86_GX_SUSPMOD is not set
+# CONFIG_X86_INTEL_MPX is not set
+# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set
 # CONFIG_X86_INTEL_PSTATE is not set
+CONFIG_X86_INTEL_TSX_MODE_OFF=y
+# CONFIG_X86_INTEL_TSX_MODE_ON is not set
+# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set
 CONFIG_X86_INTEL_USERCOPY=y
 CONFIG_X86_INTERNODE_CACHE_SHIFT=6
 CONFIG_X86_IO_APIC=y