kernel: bump to 3.14.35, 3.18.9, 3.19.1 and 4.0-rc4
authorFelix Fietkau <nbd@openwrt.org>
Wed, 18 Mar 2015 18:21:08 +0000 (18:21 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Wed, 18 Mar 2015 18:21:08 +0000 (18:21 +0000)
also refresh generic patches for 3.14, 3.18, 3.19 and 4.0
targets might need a minor refresh as well, however, it looks
like everything still applies cleanly with occasional small
offsets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
SVN-Revision: 44876

42 files changed:
include/kernel-version.mk
target/linux/generic/patches-3.14/532-jffs2_eofdetect.patch
target/linux/generic/patches-3.18/080-02-fib_trie-Update-usage-stats-to-be-percpu-instead-of-.patch
target/linux/generic/patches-3.18/080-03-fib_trie-Make-leaf-and-tnode-more-uniform.patch
target/linux/generic/patches-3.18/080-04-fib_trie-Merge-tnode_free-and-leaf_free-into-node_fr.patch
target/linux/generic/patches-3.18/080-05-fib_trie-Merge-leaf-into-tnode.patch
target/linux/generic/patches-3.18/080-06-fib_trie-Optimize-fib_table_lookup-to-avoid-wasting-.patch
target/linux/generic/patches-3.18/080-08-fib_trie-Optimize-fib_table_insert.patch
target/linux/generic/patches-3.18/080-09-fib_trie-Update-meaning-of-pos-to-represent-unchecke.patch
target/linux/generic/patches-3.18/080-10-fib_trie-Use-unsigned-long-for-anything-dealing-with.patch
target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch
target/linux/generic/patches-3.18/080-12-fib_trie-Move-resize-to-after-inflate-halve.patch
target/linux/generic/patches-3.18/080-13-fib_trie-Add-functions-should_inflate-and-should_hal.patch
target/linux/generic/patches-3.18/080-14-fib_trie-Push-assignment-of-child-to-parent-down-int.patch
target/linux/generic/patches-3.18/080-15-fib_trie-Push-tnode-flushing-down-to-inflate-halve.patch
target/linux/generic/patches-3.18/080-16-fib_trie-inflate-halve-nodes-in-a-more-RCU-friendly-.patch
target/linux/generic/patches-3.18/080-18-fib_trie-Add-tracking-value-for-suffix-length.patch
target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch
target/linux/generic/patches-3.18/080-22-fib_trie-Add-collapse-and-should_collapse-to-resize.patch
target/linux/generic/patches-3.18/080-24-fib_trie-Move-fib_find_alias-to-file-where-it-is-use.patch
target/linux/generic/patches-3.18/080-25-fib_trie-Various-clean-ups-for-handling-slen.patch
target/linux/generic/patches-3.18/532-jffs2_eofdetect.patch
target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-3.18/811-pci_disable_usb_common_quirks.patch
target/linux/generic/patches-3.18/820-usb_add_usb_find_device_by_name.patch
target/linux/generic/patches-3.18/902-debloat_proc.patch
target/linux/generic/patches-3.19/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
target/linux/generic/patches-3.19/505-yaffs-3.16-new-fops.patch
target/linux/generic/patches-3.19/532-jffs2_eofdetect.patch
target/linux/generic/patches-3.19/770-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch
target/linux/generic/patches-3.19/811-pci_disable_usb_common_quirks.patch
target/linux/generic/patches-3.19/820-usb_add_usb_find_device_by_name.patch
target/linux/generic/patches-4.0/505-yaffs-3.16-new-fops.patch
target/linux/generic/patches-4.0/630-packet_socket_type.patch
target/linux/generic/patches-4.0/643-bridge_remove_ipv6_dependency.patch
target/linux/generic/patches-4.0/700-swconfig.patch
target/linux/generic/patches-4.0/701-phy_extension.patch
target/linux/generic/patches-4.0/773-bgmac-add-srab-switch.patch
target/linux/generic/patches-4.0/775-bgmac-check-length-of-received-frame.patch
target/linux/generic/patches-4.0/863-gpiommc.patch
target/linux/generic/patches-4.0/902-debloat_proc.patch
target/linux/generic/patches-4.0/930-crashlog.patch

index f8ae94db2b01218e88c8499ae65f06a27de2e224..774814520e749b0c08afe514e8219a488b605612 100644 (file)
@@ -5,18 +5,18 @@ LINUX_RELEASE?=1
 LINUX_VERSION-3.8  = .13
 LINUX_VERSION-3.10 = .58
 LINUX_VERSION-3.13 = .7
 LINUX_VERSION-3.8  = .13
 LINUX_VERSION-3.10 = .58
 LINUX_VERSION-3.13 = .7
-LINUX_VERSION-3.14 = .34
-LINUX_VERSION-3.18 = .8
-LINUX_VERSION-3.19 = 
-LINUX_VERSION-4.0 = -rc1
+LINUX_VERSION-3.14 = .35
+LINUX_VERSION-3.18 = .9
+LINUX_VERSION-3.19 = .1
+LINUX_VERSION-4.0 = -rc4
 
 LINUX_KERNEL_MD5SUM-3.8.13  = 2af19d06cd47ec459519159cdd10542d
 LINUX_KERNEL_MD5SUM-3.10.58 = 3ff3478b6351143cef22d4b81cf48b01
 LINUX_KERNEL_MD5SUM-3.13.7  = 370adced5e5c1cb1d0d621c2dae2723f
 
 LINUX_KERNEL_MD5SUM-3.8.13  = 2af19d06cd47ec459519159cdd10542d
 LINUX_KERNEL_MD5SUM-3.10.58 = 3ff3478b6351143cef22d4b81cf48b01
 LINUX_KERNEL_MD5SUM-3.13.7  = 370adced5e5c1cb1d0d621c2dae2723f
-LINUX_KERNEL_MD5SUM-3.14.34 = 4061154fb66b24a8a1982a8adbe94335
-LINUX_KERNEL_MD5SUM-3.18.8  = 94673d5f4521a6077eb6fe0ab2633b35
-LINUX_KERNEL_MD5SUM-3.19    = d3fc8316d4d4d04b65cbc2d70799e763
-LINUX_KERNEL_MD5SUM-4.0-rc1 = 547b340dca94d358b68d2658822080fa
+LINUX_KERNEL_MD5SUM-3.14.35 = e5e92c40d14bc8ae9a8701db4e1cbb27
+LINUX_KERNEL_MD5SUM-3.18.9  = 44cd16ada5eb03589f696f083cd2323b
+LINUX_KERNEL_MD5SUM-3.19.1  = 90e9cdcaecf587acba4e94904f5f8606
+LINUX_KERNEL_MD5SUM-4.0-rc4 = 0e37c076159538ff882f190d87fe9798
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
index 269179063cd4373a8b004a50b2c3115b684c53fc..9cbe183138889dc558857d2d565562acfcbd7afa 100644 (file)
@@ -36,7 +36,7 @@
  
                if (ret < 0)
                        goto out;
  
                if (ret < 0)
                        goto out;
-@@ -556,6 +562,17 @@ static int jffs2_scan_eraseblock (struct
+@@ -561,6 +567,17 @@ full_scan:
                        return err;
        }
  
                        return err;
        }
  
index 83840096588507806494da3cf5f993fc5782e427..2e6deb5bbc366a22ce0a83ffebf0a2424d256ade 100644 (file)
@@ -189,7 +189,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  }
  #endif /*  CONFIG_IP_FIB_TRIE_STATS */
  
  }
  #endif /*  CONFIG_IP_FIB_TRIE_STATS */
  
-@@ -2191,7 +2219,7 @@ static int fib_triestat_seq_show(struct 
+@@ -2191,7 +2219,7 @@ static int fib_triestat_seq_show(struct
                        trie_collect_stats(t, &stat);
                        trie_show_stats(seq, &stat);
  #ifdef CONFIG_IP_FIB_TRIE_STATS
                        trie_collect_stats(t, &stat);
                        trie_show_stats(seq, &stat);
  #ifdef CONFIG_IP_FIB_TRIE_STATS
index 2eb3e4c4b82c4ca0c6f07e545e3a5985ab3c19c7..4c727cdfcea201d4b3f774d92c65619afd4f2944 100644 (file)
@@ -410,7 +410,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        pr_debug("entering trie_leaf_remove(%p)\n", l);
  
  
        pr_debug("entering trie_leaf_remove(%p)\n", l);
  
-@@ -2375,7 +2347,7 @@ static int fib_trie_seq_show(struct seq_
+@@ -2374,7 +2346,7 @@ static int fib_trie_seq_show(struct seq_
  
        if (IS_TNODE(n)) {
                struct tnode *tn = (struct tnode *) n;
  
        if (IS_TNODE(n)) {
                struct tnode *tn = (struct tnode *) n;
index cdc2e3b39e032f8d5a4aef01af5e7c6ae8c5f5b2..3f8d03067d49e53dcc4b724fa9837295b3114512 100644 (file)
@@ -88,7 +88,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static inline void free_leaf_info(struct leaf_info *leaf)
  {
        kfree_rcu(leaf, rcu);
  static inline void free_leaf_info(struct leaf_info *leaf)
  {
        kfree_rcu(leaf, rcu);
-@@ -360,43 +369,24 @@ static struct tnode *tnode_alloc(size_t 
+@@ -360,43 +369,24 @@ static struct tnode *tnode_alloc(size_t
                return vzalloc(size);
  }
  
                return vzalloc(size);
  }
  
index 20268f51c84eead9dbf1a375e5712ee4d947c4d4..a3393bf93f22ac98d1a1bc694a62fc139d49e604 100644 (file)
@@ -823,7 +823,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        seq_printf(seq, "Null ptrs: %u\n", stat->nullpointers);
        seq_printf(seq, "Total size: %u  kB\n", (bytes + 1023) / 1024);
  }
        seq_printf(seq, "Null ptrs: %u\n", stat->nullpointers);
        seq_printf(seq, "Total size: %u  kB\n", (bytes + 1023) / 1024);
  }
-@@ -2163,7 +2124,7 @@ static int fib_triestat_seq_show(struct 
+@@ -2163,7 +2124,7 @@ static int fib_triestat_seq_show(struct
        seq_printf(seq,
                   "Basic info: size of leaf:"
                   " %Zd bytes, size of tnode: %Zd bytes.\n",
        seq_printf(seq,
                   "Basic info: size of leaf:"
                   " %Zd bytes, size of tnode: %Zd bytes.\n",
@@ -859,7 +859,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        ++*pos;
        /* next node in same table */
  
        ++*pos;
        /* next node in same table */
-@@ -2330,29 +2291,26 @@ static inline const char *rtn_type(char 
+@@ -2329,29 +2290,26 @@ static inline const char *rtn_type(char
  static int fib_trie_seq_show(struct seq_file *seq, void *v)
  {
        const struct fib_trie_iter *iter = seq->private;
  static int fib_trie_seq_show(struct seq_file *seq, void *v)
  {
        const struct fib_trie_iter *iter = seq->private;
@@ -896,7 +896,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                        struct fib_alias *fa;
  
                        list_for_each_entry_rcu(fa, &li->falh, fa_list) {
                        struct fib_alias *fa;
  
                        list_for_each_entry_rcu(fa, &li->falh, fa_list) {
-@@ -2402,9 +2360,9 @@ struct fib_route_iter {
+@@ -2401,9 +2359,9 @@ struct fib_route_iter {
        t_key   key;
  };
  
        t_key   key;
  };
  
@@ -908,7 +908,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        struct trie *t = iter->main_trie;
  
        /* use cache location of last found key */
        struct trie *t = iter->main_trie;
  
        /* use cache location of last found key */
-@@ -2449,7 +2407,7 @@ static void *fib_route_seq_start(struct 
+@@ -2448,7 +2406,7 @@ static void *fib_route_seq_start(struct
  static void *fib_route_seq_next(struct seq_file *seq, void *v, loff_t *pos)
  {
        struct fib_route_iter *iter = seq->private;
  static void *fib_route_seq_next(struct seq_file *seq, void *v, loff_t *pos)
  {
        struct fib_route_iter *iter = seq->private;
@@ -917,7 +917,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        ++*pos;
        if (v == SEQ_START_TOKEN) {
  
        ++*pos;
        if (v == SEQ_START_TOKEN) {
-@@ -2495,7 +2453,7 @@ static unsigned int fib_flag_trans(int t
+@@ -2494,7 +2452,7 @@ static unsigned int fib_flag_trans(int t
   */
  static int fib_route_seq_show(struct seq_file *seq, void *v)
  {
   */
  static int fib_route_seq_show(struct seq_file *seq, void *v)
  {
index 13004a1c31417940abf5631e9dc579fd33f72b02..e84412687d7a3f127725d61c94f7869ea5f5df08 100644 (file)
@@ -149,9 +149,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 +              if (IS_LEAF(n))
                        goto found;
 -              }
 +              if (IS_LEAF(n))
                        goto found;
 -              }
--              cn = n;
 -
 -
+-              cn = n;
 -              /*
 -               * It's a tnode, and we can do some extra checks here if we
 -               * like, to avoid descending into a dead-end branch.
 -              /*
 -               * It's a tnode, and we can do some extra checks here if we
 -               * like, to avoid descending into a dead-end branch.
index dd150ebf33a36808958d70685f98999e3d4ec593..b328d2c5d23d8badbc0f436f66930a4225cb782d 100644 (file)
@@ -88,12 +88,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 -       * If we point to a T_TNODE, check if it matches our key. Note that
 -       * a T_TNODE might be skipping any number of bits - its 'pos' need
 -       * not be the parent's 'pos'+'bits'!
 -       * If we point to a T_TNODE, check if it matches our key. Note that
 -       * a T_TNODE might be skipping any number of bits - its 'pos' need
 -       * not be the parent's 'pos'+'bits'!
-        *
+-       *
 -       * If it does match the current key, get pos/bits from it, extract
 -       * the index from our key, push the T_TNODE and walk the tree.
 -       *
 -       * If it doesn't, we have to replace it with a new T_TNODE.
 -       * If it does match the current key, get pos/bits from it, extract
 -       * the index from our key, push the T_TNODE and walk the tree.
 -       *
 -       * If it doesn't, we have to replace it with a new T_TNODE.
--       *
+        *
 -       * If we point to a T_LEAF, it might or might not have the same key
 -       * as we do. If it does, just change the value, update the T_LEAF's
 -       * value, and return it.
 -       * If we point to a T_LEAF, it might or might not have the same key
 -       * as we do. If it does, just change the value, update the T_LEAF's
 -       * value, and return it.
@@ -129,13 +129,13 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 +              if (index >> n->bits)
                        break;
 -      }
 +              if (index >> n->bits)
                        break;
 -      }
+-
 -      /*
 -       * n  ----> NULL, LEAF or TNODE
 -       *
 -       * tp is n's (parent) ----> NULL or TNODE
 -       */
 -      /*
 -       * n  ----> NULL, LEAF or TNODE
 -       *
 -       * tp is n's (parent) ----> NULL or TNODE
 -       */
--
 -      BUG_ON(tp && IS_LEAF(tp));
 -
 -      /* Case 1: n is a leaf. Compare prefixes */
 -      BUG_ON(tp && IS_LEAF(tp));
 -
 -      /* Case 1: n is a leaf. Compare prefixes */
@@ -162,9 +162,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 -
 -      if (!l)
 -              return NULL;
 -
 -      if (!l)
 -              return NULL;
--
--      li = leaf_info_new(plen);
  
  
+-      li = leaf_info_new(plen);
+-
 -      if (!li) {
 -              node_free(l);
 +      l = leaf_new(key);
 -      if (!li) {
 -              node_free(l);
 +      l = leaf_new(key);
index 53761d42073f42e3a48e4f7b8c2ae6fe04a3ba29..a0d34762b8bf331df045164484afc702ac647682 100644 (file)
@@ -306,7 +306,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                if (!tn) {
                        free_leaf_info(li);
                        node_free(l);
                if (!tn) {
                        free_leaf_info(li);
                        node_free(l);
-@@ -1559,12 +1532,7 @@ static int trie_flush_leaf(struct tnode 
+@@ -1559,12 +1532,7 @@ static int trie_flush_leaf(struct tnode
  static struct tnode *leaf_walk_rcu(struct tnode *p, struct tnode *c)
  {
        do {
  static struct tnode *leaf_walk_rcu(struct tnode *p, struct tnode *c)
  {
        do {
@@ -329,7 +329,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                tn = p;
                --iter->depth;
                goto rescan;
                tn = p;
                --iter->depth;
                goto rescan;
-@@ -2187,10 +2155,10 @@ static int fib_trie_seq_show(struct seq_
+@@ -2186,10 +2154,10 @@ static int fib_trie_seq_show(struct seq_
        if (IS_TNODE(n)) {
                __be32 prf = htonl(n->key);
  
        if (IS_TNODE(n)) {
                __be32 prf = htonl(n->key);
  
index 7acf8b67a2d19d90debd26641f6a4e5c5a7ba9d2..487a25f0d9a14ac40d4ccbf57e754c921e2dca7d 100644 (file)
@@ -134,7 +134,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        struct tnode *tn, *left, *right;
        int i;
  
        struct tnode *tn, *left, *right;
        int i;
  
-@@ -1532,9 +1530,9 @@ static int trie_flush_leaf(struct tnode 
+@@ -1532,9 +1530,9 @@ static int trie_flush_leaf(struct tnode
  static struct tnode *leaf_walk_rcu(struct tnode *p, struct tnode *c)
  {
        do {
  static struct tnode *leaf_walk_rcu(struct tnode *p, struct tnode *c)
  {
        do {
index 5c2dcf3472943f41e66eaff2abb05526ac60145f..b36bcd81676874038c7163e18ef7193ac5259d02 100644 (file)
@@ -47,7 +47,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  }
  
  #else /* CONFIG_IP_MULTIPLE_TABLES */
  }
  
  #else /* CONFIG_IP_MULTIPLE_TABLES */
-@@ -247,20 +250,25 @@ static inline int fib_lookup(struct net 
+@@ -247,20 +250,25 @@ static inline int fib_lookup(struct net
                             struct fib_result *res)
  {
        if (!net->ipv4.fib_has_custom_rules) {
                             struct fib_result *res)
  {
        if (!net->ipv4.fib_has_custom_rules) {
@@ -164,7 +164,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  }
  
  static void nl_fib_input(struct sk_buff *skb)
  }
  
  static void nl_fib_input(struct sk_buff *skb)
-@@ -952,7 +958,6 @@ static void nl_fib_input(struct sk_buff 
+@@ -952,7 +958,6 @@ static void nl_fib_input(struct sk_buff
        struct net *net;
        struct fib_result_nl *frn;
        struct nlmsghdr *nlh;
        struct net *net;
        struct fib_result_nl *frn;
        struct nlmsghdr *nlh;
@@ -172,7 +172,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        u32 portid;
  
        net = sock_net(skb->sk);
        u32 portid;
  
        net = sock_net(skb->sk);
-@@ -967,9 +972,7 @@ static void nl_fib_input(struct sk_buff 
+@@ -967,9 +972,7 @@ static void nl_fib_input(struct sk_buff
        nlh = nlmsg_hdr(skb);
  
        frn = (struct fib_result_nl *) nlmsg_data(nlh);
        nlh = nlmsg_hdr(skb);
  
        frn = (struct fib_result_nl *) nlmsg_data(nlh);
index 6edcfdcfec0b9ea6aacb47de787c90bd600abec7..a373add1d255aee32e453560ee109398360456bd 100644 (file)
@@ -20,7 +20,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  /* tnodes to free after resize(); protected by RTNL */
  static struct callback_head *tnode_free_head;
  static size_t tnode_free_size;
  /* tnodes to free after resize(); protected by RTNL */
  static struct callback_head *tnode_free_head;
  static size_t tnode_free_size;
-@@ -447,161 +445,6 @@ static void put_child_root(struct tnode 
+@@ -447,161 +445,6 @@ static void put_child_root(struct tnode
                rcu_assign_pointer(t->trie, n);
  }
  
                rcu_assign_pointer(t->trie, n);
  }
  
index 42c03946895bc114f314aa070f4df4828a7fc1c2..c01d57af0fd0a1e5595d61d2a174e4389ada406b 100644 (file)
@@ -139,7 +139,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        int max_work;
  
        if (!tn)
        int max_work;
  
        if (!tn)
-@@ -668,86 +750,12 @@ static struct tnode *resize(struct trie 
+@@ -668,86 +750,12 @@ static struct tnode *resize(struct trie
        /* One child */
        if (tn->empty_children == (tnode_child_length(tn) - 1))
                goto one_child;
        /* One child */
        if (tn->empty_children == (tnode_child_length(tn) - 1))
                goto one_child;
@@ -229,7 +229,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                old_tn = tn;
                tn = inflate(t, tn);
  
                old_tn = tn;
                tn = inflate(t, tn);
  
-@@ -764,16 +772,11 @@ static struct tnode *resize(struct trie 
+@@ -764,16 +772,11 @@ static struct tnode *resize(struct trie
        if (max_work != MAX_WORK)
                return tn;
  
        if (max_work != MAX_WORK)
                return tn;
  
index 0e87a7d08ed5d11bd3fd8f957041b56172ba8d73..8f26e32d3d61cf0d053150f1d2db44b5b3a92a52 100644 (file)
@@ -231,7 +231,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        /* No children */
        if (tn->empty_children > (tnode_child_length(tn) - 1))
                goto no_children;
        /* No children */
        if (tn->empty_children > (tnode_child_length(tn) - 1))
                goto no_children;
-@@ -755,39 +756,35 @@ static struct tnode *resize(struct trie 
+@@ -755,39 +756,35 @@ static struct tnode *resize(struct trie
         * nonempty nodes that are above the threshold.
         */
        max_work = MAX_WORK;
         * nonempty nodes that are above the threshold.
         */
        max_work = MAX_WORK;
index 16ad37d5e2a2fe48b3becd8133ca13951fcd75fe..51178a0f14d2a317a8b119ac086895220c9580bd 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static size_t tnode_free_size;
  
  /*
  static size_t tnode_free_size;
  
  /*
-@@ -307,32 +305,6 @@ static struct tnode *tnode_alloc(size_t 
+@@ -307,32 +305,6 @@ static struct tnode *tnode_alloc(size_t
                return vzalloc(size);
  }
  
                return vzalloc(size);
  }
  
@@ -60,7 +60,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static struct tnode *leaf_new(t_key key)
  {
        struct tnode *l = kmem_cache_alloc(trie_leaf_kmem, GFP_KERNEL);
  static struct tnode *leaf_new(t_key key)
  {
        struct tnode *l = kmem_cache_alloc(trie_leaf_kmem, GFP_KERNEL);
-@@ -433,17 +405,33 @@ static void put_child_root(struct tnode 
+@@ -433,17 +405,33 @@ static void put_child_root(struct tnode
                rcu_assign_pointer(t->trie, n);
  }
  
                rcu_assign_pointer(t->trie, n);
  }
  
@@ -169,7 +169,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        return -ENOMEM;
  }
  
        return -ENOMEM;
  }
  
-@@ -599,17 +593,20 @@ static int halve(struct trie *t, struct 
+@@ -599,17 +593,20 @@ static int halve(struct trie *t, struct
                        struct tnode *newn;
  
                        newn = tnode_new(left->key, oldtnode->pos, 1);
                        struct tnode *newn;
  
                        newn = tnode_new(left->key, oldtnode->pos, 1);
@@ -192,7 +192,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        for (i = 0; i < olen; i += 2) {
                struct tnode *newBinNode;
  
        for (i = 0; i < olen; i += 2) {
                struct tnode *newBinNode;
  
-@@ -636,11 +633,14 @@ static int halve(struct trie *t, struct 
+@@ -636,11 +633,14 @@ static int halve(struct trie *t, struct
  
                put_child(tn, i / 2, newBinNode);
  
  
                put_child(tn, i / 2, newBinNode);
  
index caa2e0e4b1a74f6d6b08d74d8e7af63767926efe..d6b600c5dd5ad79b37a3031ac14b3b58b5f2070b 100644 (file)
@@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
 
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -391,8 +391,6 @@ static void put_child(struct tnode *tn, 
+@@ -391,8 +391,6 @@ static void put_child(struct tnode *tn,
        else if (!wasfull && isfull)
                tn->full_children++;
  
        else if (!wasfull && isfull)
                tn->full_children++;
  
@@ -235,7 +235,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        pr_debug("In halve\n");
  
  
        pr_debug("In halve\n");
  
-@@ -577,68 +575,64 @@ static int halve(struct trie *t, struct 
+@@ -577,68 +575,64 @@ static int halve(struct trie *t, struct
        if (!tn)
                return -ENOMEM;
  
        if (!tn)
                return -ENOMEM;
  
index c9cd1cff7f799b05ef80f441db14514bb1d87991..6a4a45e952ff71b40f43a4eb0ab4895523d1c5c6 100644 (file)
@@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                tn->pos = pos;
                tn->bits = bits;
                tn->key = (shift < KEYLENGTH) ? (key >> shift) << shift : 0;
                tn->pos = pos;
                tn->bits = bits;
                tn->key = (shift < KEYLENGTH) ? (key >> shift) << shift : 0;
-@@ -387,6 +390,9 @@ static void put_child(struct tnode *tn, 
+@@ -387,6 +390,9 @@ static void put_child(struct tnode *tn,
        else if (!wasfull && isfull)
                tn->full_children++;
  
        else if (!wasfull && isfull)
                tn->full_children++;
  
@@ -52,7 +52,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        rcu_assign_pointer(tn->child[i], n);
  }
  
        rcu_assign_pointer(tn->child[i], n);
  }
  
-@@ -635,6 +641,41 @@ static int halve(struct trie *t, struct 
+@@ -635,6 +641,41 @@ static int halve(struct trie *t, struct
        return 0;
  }
  
        return 0;
  }
  
@@ -120,7 +120,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
 -static void insert_leaf_info(struct hlist_head *head, struct leaf_info *new)
 +static void leaf_pull_suffix(struct tnode *l)
  
 -static void insert_leaf_info(struct hlist_head *head, struct leaf_info *new)
 +static void leaf_pull_suffix(struct tnode *l)
- {
++{
 +      struct tnode *tp = node_parent(l);
 +
 +      while (tp && (tp->slen > tp->pos) && (tp->slen > l->slen)) {
 +      struct tnode *tp = node_parent(l);
 +
 +      while (tp && (tp->slen > tp->pos) && (tp->slen > l->slen)) {
@@ -169,7 +169,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 +}
 +
 +static void insert_leaf_info(struct tnode *l, struct leaf_info *new)
 +}
 +
 +static void insert_leaf_info(struct tnode *l, struct leaf_info *new)
-+{
+ {
 +      struct hlist_head *head = &l->list;
        struct leaf_info *li = NULL, *last = NULL;
  
 +      struct hlist_head *head = &l->list;
        struct leaf_info *li = NULL, *last = NULL;
  
index be837526a411a38434a1a1bb5caa2ecf006ef242..7e26127084f7178dc92eebf1bfea0f39f8bc7a6b 100644 (file)
@@ -29,7 +29,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
 
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -396,8 +396,30 @@ static void put_child(struct tnode *tn, 
+@@ -396,8 +396,30 @@ static void put_child(struct tnode *tn,
        rcu_assign_pointer(tn->child[i], n);
  }
  
        rcu_assign_pointer(tn->child[i], n);
  }
  
@@ -150,7 +150,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 -      tp = node_parent(oldtnode);
 -      NODE_INIT_PARENT(tn, tp);
 -      put_child_root(tp, t, tn->key, tn);
 -      tp = node_parent(oldtnode);
 -      NODE_INIT_PARENT(tn, tp);
 -      put_child_root(tp, t, tn->key, tn);
--
++      /* setup the parent pointers into and out of this node */
++      replace(t, oldtnode, tn);
 -      /* prepare oldtnode to be freed */
 -      tnode_free_init(oldtnode);
 -
 -      /* prepare oldtnode to be freed */
 -      tnode_free_init(oldtnode);
 -
@@ -170,9 +172,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 -              /* fetch new nodes */
 -              node1 = tnode_get_child(tn, 2 * i + 1);
 -              node0 = tnode_get_child(tn, 2 * i);
 -              /* fetch new nodes */
 -              node1 = tnode_get_child(tn, 2 * i + 1);
 -              node0 = tnode_get_child(tn, 2 * i);
-+      /* setup the parent pointers into and out of this node */
-+      replace(t, oldtnode, tn);
+-
 -              /* bits == 1 then node0 and node1 represent inode's children */
 -              if (inode->bits == 1) {
 -                      node_set_parent(node1, tn);
 -              /* bits == 1 then node0 and node1 represent inode's children */
 -              if (inode->bits == 1) {
 -                      node_set_parent(node1, tn);
@@ -207,7 +207,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        unsigned long i;
  
        pr_debug("In halve\n");
        unsigned long i;
  
        pr_debug("In halve\n");
-@@ -577,14 +588,18 @@ static int halve(struct trie *t, struct 
+@@ -577,14 +588,18 @@ static int halve(struct trie *t, struct
        if (!tn)
                return -ENOMEM;
  
        if (!tn)
                return -ENOMEM;
  
@@ -228,7 +228,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
                /* At least one of the children is empty */
                if (!node1 || !node0) {
  
                /* At least one of the children is empty */
                if (!node1 || !node0) {
-@@ -609,34 +624,8 @@ static int halve(struct trie *t, struct 
+@@ -609,34 +624,8 @@ static int halve(struct trie *t, struct
                put_child(tn, i / 2, inode);
        }
  
                put_child(tn, i / 2, inode);
        }
  
index afea33ff154e1a8545b0ddfa093e79984f2967ee..19b7db7f94f30a8bd9b7c4449d1b593e5f7242be 100644 (file)
@@ -40,7 +40,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                        struct tnode __rcu *child[0];
                };
                /* This list pointer if valid if bits == 0 (LEAF) */
                        struct tnode __rcu *child[0];
                };
                /* This list pointer if valid if bits == 0 (LEAF) */
-@@ -302,6 +303,16 @@ static struct tnode *tnode_alloc(size_t 
+@@ -302,6 +303,16 @@ static struct tnode *tnode_alloc(size_t
                return vzalloc(size);
  }
  
                return vzalloc(size);
  }
  
@@ -79,7 +79,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
        }
  
        pr_debug("AT %p s=%zu %zu\n", tn, sizeof(struct tnode),
        }
  
        pr_debug("AT %p s=%zu %zu\n", tn, sizeof(struct tnode),
-@@ -375,11 +388,11 @@ static void put_child(struct tnode *tn, 
+@@ -375,11 +388,11 @@ static void put_child(struct tnode *tn,
  
        BUG_ON(i >= tnode_child_length(tn));
  
  
        BUG_ON(i >= tnode_child_length(tn));
  
@@ -95,7 +95,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        /* update fullChildren */
        wasfull = tnode_full(tn, chi);
  
        /* update fullChildren */
        wasfull = tnode_full(tn, chi);
-@@ -630,6 +643,24 @@ static int halve(struct trie *t, struct 
+@@ -630,6 +643,24 @@ static int halve(struct trie *t, struct
        return 0;
  }
  
        return 0;
  }
  
@@ -120,7 +120,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  static unsigned char update_suffix(struct tnode *tn)
  {
        unsigned char slen = tn->pos;
  static unsigned char update_suffix(struct tnode *tn)
  {
        unsigned char slen = tn->pos;
-@@ -729,10 +760,12 @@ static bool should_inflate(const struct 
+@@ -729,10 +760,12 @@ static bool should_inflate(const struct
  
        /* Keep root node larger */
        threshold *= tp ? inflate_threshold : inflate_threshold_root;
  
        /* Keep root node larger */
        threshold *= tp ? inflate_threshold : inflate_threshold_root;
index dfe716eda84d84f3536114b5b3d38087c036ce1c..5eba700caa825c0606e6099be1ea1d331f8a47f2 100644 (file)
@@ -23,7 +23,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                                     struct fib_info *fi)
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
                                     struct fib_info *fi)
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
-@@ -414,24 +414,6 @@ errout:
+@@ -410,24 +410,6 @@ errout:
                rtnl_set_sk_err(info->nl_net, RTNLGRP_IPV4_ROUTE, err);
  }
  
                rtnl_set_sk_err(info->nl_net, RTNLGRP_IPV4_ROUTE, err);
  }
  
index e47f253f35e5dfc2d8467b2007190014c5fae4ff..c7739d03230e742f669b9c6276ab95cbef910757 100644 (file)
@@ -64,7 +64,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
                l->slen = KEYLENGTH - new->plen;
                leaf_push_suffix(l);
        }
                l->slen = KEYLENGTH - new->plen;
                leaf_push_suffix(l);
        }
-@@ -1613,6 +1606,7 @@ static int trie_flush_leaf(struct tnode 
+@@ -1613,6 +1606,7 @@ static int trie_flush_leaf(struct tnode
        struct hlist_head *lih = &l->list;
        struct hlist_node *tmp;
        struct leaf_info *li = NULL;
        struct hlist_head *lih = &l->list;
        struct hlist_node *tmp;
        struct leaf_info *li = NULL;
@@ -72,7 +72,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
        hlist_for_each_entry_safe(li, tmp, lih, hlist) {
                found += trie_flush_list(&li->falh);
  
        hlist_for_each_entry_safe(li, tmp, lih, hlist) {
                found += trie_flush_list(&li->falh);
-@@ -1620,8 +1614,14 @@ static int trie_flush_leaf(struct tnode 
+@@ -1620,8 +1614,14 @@ static int trie_flush_leaf(struct tnode
                if (list_empty(&li->falh)) {
                        hlist_del_rcu(&li->hlist);
                        free_leaf_info(li);
                if (list_empty(&li->falh)) {
                        hlist_del_rcu(&li->hlist);
                        free_leaf_info(li);
index 269179063cd4373a8b004a50b2c3115b684c53fc..9cbe183138889dc558857d2d565562acfcbd7afa 100644 (file)
@@ -36,7 +36,7 @@
  
                if (ret < 0)
                        goto out;
  
                if (ret < 0)
                        goto out;
-@@ -556,6 +562,17 @@ static int jffs2_scan_eraseblock (struct
+@@ -561,6 +567,17 @@ full_scan:
                        return err;
        }
  
                        return err;
        }
  
index 80926deb4323bc0272acb3c06f01e51fe1cec97c..bc163cb2512f771f80e4a7947c5266dd4afaccb4 100644 (file)
@@ -68,7 +68,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2324,6 +2324,7 @@ static const char *const rtn_type_names[
+@@ -2236,6 +2236,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
index d4099fa94cc5da97889835970d66aee7b269c0e2..b54d1509a5c58e362c0723ce2fb59b3a1bcd3f44 100644 (file)
@@ -84,7 +84,7 @@
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -442,7 +442,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -444,7 +444,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
index ad0ec06a87edef05a2fc437ff88d071acdc9231b..a2f526282bc2a32a13246d5ccc0a3746d8503a84 100644 (file)
@@ -74,7 +74,7 @@
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
-@@ -700,6 +700,7 @@ static inline bool usb_device_no_sg_cons
+@@ -695,6 +695,7 @@ static inline bool usb_device_no_sg_cons
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
index 929d6e5ba934ede2fb955c5df503818c7f9577a8..8b3a5d43f042a8550778498480a62a93a13c017d 100644 (file)
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2581,10 +2581,12 @@ static const struct file_operations fib_
+@@ -2490,10 +2490,12 @@ static const struct file_operations fib_
  
  int __net_init fib_proc_init(struct net *net)
  {
  
  int __net_init fib_proc_init(struct net *net)
  {
                         &fib_triestat_fops))
                goto out2;
  
                         &fib_triestat_fops))
                goto out2;
  
-@@ -2594,17 +2596,21 @@ int __net_init fib_proc_init(struct net
+@@ -2503,17 +2505,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
        return 0;
  
  out3:
index 457b0bd6bf190d8ee5a722e6e95744247fbac0e9..468a539c25ca0d56879495e75fdc3e82ad0e2efa 100644 (file)
@@ -12,8 +12,6 @@ Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
  3 files changed, 167 insertions(+), 27 deletions(-)
  create mode 100644 arch/mips/kernel/machine_kexec.h
 
  3 files changed, 167 insertions(+), 27 deletions(-)
  create mode 100644 arch/mips/kernel/machine_kexec.h
 
-diff --git a/arch/mips/kernel/machine_kexec.c b/arch/mips/kernel/machine_kexec.c
-index 50980bf3..b9c0f75 100644
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
 @@ -10,45 +10,145 @@
 --- a/arch/mips/kernel/machine_kexec.c
 +++ b/arch/mips/kernel/machine_kexec.c
 @@ -10,45 +10,145 @@
@@ -195,7 +193,9 @@ index 50980bf3..b9c0f75 100644
                kexec_indirection_page = (unsigned long)&image->head;
        }
 +      pr_info("kexec_indirection_page = %p\n", (void *)kexec_indirection_page);
                kexec_indirection_page = (unsigned long)&image->head;
        }
 +      pr_info("kexec_indirection_page = %p\n", (void *)kexec_indirection_page);
-+
+-      memcpy((void*)reboot_code_buffer, relocate_new_kernel,
+-             relocate_new_kernel_size);
 +      pr_info("Where is memcpy: %p\n", memcpy);
 +      pr_info("kexec_relocate_new_kernel = %p, kexec_relocate_new_kernel_end = %p\n",
 +              (void *)kexec_relocate_new_kernel, &kexec_relocate_new_kernel_end);
 +      pr_info("Where is memcpy: %p\n", memcpy);
 +      pr_info("kexec_relocate_new_kernel = %p, kexec_relocate_new_kernel_end = %p\n",
 +              (void *)kexec_relocate_new_kernel, &kexec_relocate_new_kernel_end);
@@ -203,9 +203,7 @@ index 50980bf3..b9c0f75 100644
 +              (void *)kexec_relocate_new_kernel, (void *)reboot_code_buffer);
 +      memcpy((void*)reboot_code_buffer, kexec_relocate_new_kernel,
 +             KEXEC_RELOCATE_NEW_KERNEL_SIZE);
 +              (void *)kexec_relocate_new_kernel, (void *)reboot_code_buffer);
 +      memcpy((void*)reboot_code_buffer, kexec_relocate_new_kernel,
 +             KEXEC_RELOCATE_NEW_KERNEL_SIZE);
--      memcpy((void*)reboot_code_buffer, relocate_new_kernel,
--             relocate_new_kernel_size);
++
 +      pr_info("Before _print_args().\n");
 +      machine_kexec_print_args();
 +      pr_info("Before eval loop.\n");
 +      pr_info("Before _print_args().\n");
 +      machine_kexec_print_args();
 +      pr_info("Before eval loop.\n");
@@ -232,9 +230,6 @@ index 50980bf3..b9c0f75 100644
        smp_wmb();
        atomic_set(&kexec_ready_to_reboot, 1);
  #endif
        smp_wmb();
        atomic_set(&kexec_ready_to_reboot, 1);
  #endif
-diff --git a/arch/mips/kernel/machine_kexec.h b/arch/mips/kernel/machine_kexec.h
-new file mode 100644
-index 0000000..ae0961e
 --- /dev/null
 +++ b/arch/mips/kernel/machine_kexec.h
 @@ -0,0 +1,20 @@
 --- /dev/null
 +++ b/arch/mips/kernel/machine_kexec.h
 @@ -0,0 +1,20 @@
@@ -258,8 +253,6 @@ index 0000000..ae0961e
 +#define KEXEC_MAX_ARGC                        (KEXEC_ARGV_SIZE / sizeof(long))
 +
 +#endif
 +#define KEXEC_MAX_ARGC                        (KEXEC_ARGV_SIZE / sizeof(long))
 +
 +#endif
-diff --git a/arch/mips/kernel/relocate_kernel.S b/arch/mips/kernel/relocate_kernel.S
-index 74bab9d..2c92c50 100644
 --- a/arch/mips/kernel/relocate_kernel.S
 +++ b/arch/mips/kernel/relocate_kernel.S
 @@ -12,8 +12,9 @@
 --- a/arch/mips/kernel/relocate_kernel.S
 +++ b/arch/mips/kernel/relocate_kernel.S
 @@ -12,8 +12,9 @@
@@ -291,18 +284,15 @@ index 74bab9d..2c92c50 100644
 +      EXPORT(kexec_argv_buf)
 +      .skip           KEXEC_COMMAND_LINE_SIZE
 +      .size           kexec_argv_buf, KEXEC_COMMAND_LINE_SIZE
 +      EXPORT(kexec_argv_buf)
 +      .skip           KEXEC_COMMAND_LINE_SIZE
 +      .size           kexec_argv_buf, KEXEC_COMMAND_LINE_SIZE
++
++kexec_argv:
++      EXPORT(kexec_argv)
++      .skip           KEXEC_ARGV_SIZE
++      .size           kexec_argv, KEXEC_ARGV_SIZE
  
 -relocate_new_kernel_size:
 -      EXPORT(relocate_new_kernel_size)
 -      PTR             relocate_new_kernel_end - relocate_new_kernel
 -      .size           relocate_new_kernel_size, PTRSIZE
  
 -relocate_new_kernel_size:
 -      EXPORT(relocate_new_kernel_size)
 -      PTR             relocate_new_kernel_end - relocate_new_kernel
 -      .size           relocate_new_kernel_size, PTRSIZE
-+kexec_argv:
-+      EXPORT(kexec_argv)
-+      .skip           KEXEC_ARGV_SIZE
-+      .size           kexec_argv, KEXEC_ARGV_SIZE
-+
 +kexec_relocate_new_kernel_end:
 +      EXPORT(kexec_relocate_new_kernel_end)
 +kexec_relocate_new_kernel_end:
 +      EXPORT(kexec_relocate_new_kernel_end)
--- 
-1.7.10.4
-
index 855b9fc13461967eba944e4805f22d16e6f4eb7a..1ef630f844b090f5153e7aa9a4068b1d91f65002 100644 (file)
@@ -1,6 +1,6 @@
 --- a/fs/yaffs2/yaffs_vfs.c
 +++ b/fs/yaffs2/yaffs_vfs.c
 --- a/fs/yaffs2/yaffs_vfs.c
 +++ b/fs/yaffs2/yaffs_vfs.c
-@@ -796,13 +796,13 @@
+@@ -796,13 +796,13 @@ static int yaffs_sync_object(struct file
  static const struct file_operations yaffs_file_operations = {
        .read = do_sync_read,
        .write = do_sync_write,
  static const struct file_operations yaffs_file_operations = {
        .read = do_sync_read,
        .write = do_sync_write,
@@ -17,7 +17,7 @@
        .llseek = generic_file_llseek,
  };
  
        .llseek = generic_file_llseek,
  };
  
-@@ -1050,7 +1050,7 @@
+@@ -1050,7 +1050,7 @@ static int yaffs_readlink(struct dentry
        if (!alias)
                return -ENOMEM;
  
        if (!alias)
                return -ENOMEM;
  
index 269179063cd4373a8b004a50b2c3115b684c53fc..9cbe183138889dc558857d2d565562acfcbd7afa 100644 (file)
@@ -36,7 +36,7 @@
  
                if (ret < 0)
                        goto out;
  
                if (ret < 0)
                        goto out;
-@@ -556,6 +562,17 @@ static int jffs2_scan_eraseblock (struct
+@@ -561,6 +567,17 @@ full_scan:
                        return err;
        }
  
                        return err;
        }
  
index 0043b4c84fad87b343439e872f56cad7afc124f4..1d6b66c199d78faa2a56ff05eaf448b488e73708 100644 (file)
@@ -18,11 +18,9 @@ Can we have it for 3.20, please?
  drivers/net/ethernet/broadcom/bgmac.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
 
  drivers/net/ethernet/broadcom/bgmac.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
 
-diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
-index 3007d95..728373b 100644
 --- a/drivers/net/ethernet/broadcom/bgmac.c
 +++ b/drivers/net/ethernet/broadcom/bgmac.c
 --- a/drivers/net/ethernet/broadcom/bgmac.c
 +++ b/drivers/net/ethernet/broadcom/bgmac.c
-@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct bgmac *bgmac)
+@@ -1412,6 +1412,7 @@ static void bgmac_mii_unregister(struct
  /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */
  static int bgmac_probe(struct bcma_device *core)
  {
  /* http://bcm-v4.sipsolutions.net/mac-gbit/gmac/chipattach */
  static int bgmac_probe(struct bcma_device *core)
  {
@@ -30,7 +28,7 @@ index 3007d95..728373b 100644
        struct net_device *net_dev;
        struct bgmac *bgmac;
        struct ssb_sprom *sprom = &core->bus->sprom;
        struct net_device *net_dev;
        struct bgmac *bgmac;
        struct ssb_sprom *sprom = &core->bus->sprom;
-@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_device *core)
+@@ -1474,8 +1475,8 @@ static int bgmac_probe(struct bcma_devic
        bgmac_chip_reset(bgmac);
  
        /* For Northstar, we have to take all GMAC core out of reset */
        bgmac_chip_reset(bgmac);
  
        /* For Northstar, we have to take all GMAC core out of reset */
@@ -41,6 +39,3 @@ index 3007d95..728373b 100644
                struct bcma_device *ns_core;
                int ns_gmac;
  
                struct bcma_device *ns_core;
                int ns_gmac;
  
--- 
-1.8.4.5
-
index cd03cda83ba9ce50be309762d7d7ac3dbc967755..8b784ecd0f3c75994ea938b9e26b8bb5337f8f38 100644 (file)
@@ -84,7 +84,7 @@
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
 --- a/include/linux/usb/hcd.h
 +++ b/include/linux/usb/hcd.h
-@@ -445,7 +445,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -447,7 +447,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
  
index ee171c993b1376bdf68648946c42215a23593593..53bff5ea90fcf90d71e300682925cf073de7ff36 100644 (file)
@@ -74,7 +74,7 @@
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
   * @dev: device the buffer will be used with
 --- a/include/linux/usb.h
 +++ b/include/linux/usb.h
-@@ -700,6 +700,7 @@ static inline bool usb_device_no_sg_cons
+@@ -695,6 +695,7 @@ static inline bool usb_device_no_sg_cons
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
        return udev && udev->bus && udev->bus->no_sg_constraint;
  }
  
index 855b9fc13461967eba944e4805f22d16e6f4eb7a..1ef630f844b090f5153e7aa9a4068b1d91f65002 100644 (file)
@@ -1,6 +1,6 @@
 --- a/fs/yaffs2/yaffs_vfs.c
 +++ b/fs/yaffs2/yaffs_vfs.c
 --- a/fs/yaffs2/yaffs_vfs.c
 +++ b/fs/yaffs2/yaffs_vfs.c
-@@ -796,13 +796,13 @@
+@@ -796,13 +796,13 @@ static int yaffs_sync_object(struct file
  static const struct file_operations yaffs_file_operations = {
        .read = do_sync_read,
        .write = do_sync_write,
  static const struct file_operations yaffs_file_operations = {
        .read = do_sync_read,
        .write = do_sync_write,
@@ -17,7 +17,7 @@
        .llseek = generic_file_llseek,
  };
  
        .llseek = generic_file_llseek,
  };
  
-@@ -1050,7 +1050,7 @@
+@@ -1050,7 +1050,7 @@ static int yaffs_readlink(struct dentry
        if (!alias)
                return -ENOMEM;
  
        if (!alias)
                return -ENOMEM;
  
index f96ee28e7bc7014ab1197505d7a952bea9144b99..8c5711ba7a04012dae16006907ecca5f8eec365f 100644 (file)
@@ -26,7 +26,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
  #define PACKET_FANOUT_LB              1
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1533,6 +1533,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1541,6 +1541,7 @@ static int packet_rcv_spkt(struct sk_buf
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
@@ -34,7 +34,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        /*
         *      When we registered the protocol we saved the socket in the data
  
        /*
         *      When we registered the protocol we saved the socket in the data
-@@ -1540,6 +1541,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1548,6 +1549,7 @@ static int packet_rcv_spkt(struct sk_buf
         */
  
        sk = pt->af_packet_priv;
         */
  
        sk = pt->af_packet_priv;
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        /*
         *      Yank back the headers [hope the device set this
  
        /*
         *      Yank back the headers [hope the device set this
-@@ -1552,7 +1554,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1560,7 +1562,7 @@ static int packet_rcv_spkt(struct sk_buf
         *      so that this procedure is noop.
         */
  
         *      so that this procedure is noop.
         */
  
@@ -51,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -1759,12 +1761,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -1767,12 +1769,12 @@ static int packet_rcv(struct sk_buff *sk
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
        int skb_len = skb->len;
        unsigned int snaplen, res;
  
@@ -67,7 +67,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -1884,12 +1886,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -1892,12 +1894,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);
  
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2845,6 +2847,7 @@ static int packet_create(struct net *net
+@@ -2853,6 +2855,7 @@ static int packet_create(struct net *net
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
        spin_lock_init(&po->bind_lock);
        mutex_init(&po->pg_vec_lock);
        po->prot_hook.func = packet_rcv;
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3428,6 +3431,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3442,6 +3445,16 @@ packet_setsockopt(struct socket *sock, i
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        default:
                return -ENOPROTOOPT;
        }
        default:
                return -ENOPROTOOPT;
        }
-@@ -3479,6 +3492,13 @@ static int packet_getsockopt(struct sock
+@@ -3493,6 +3506,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
index f0c373cc418f896ff87707e12131ade06a2b174a..50e4fe4b10d9ece4ac993ea44dc97016c534c870 100644 (file)
@@ -52,7 +52,7 @@
  
  int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
                      u32 banned_flags)
  
  int __ipv6_get_lladdr(struct inet6_dev *idev, struct in6_addr *addr,
                      u32 banned_flags)
-@@ -5524,6 +5523,9 @@ int __init addrconf_init(void)
+@@ -5539,6 +5538,9 @@ int __init addrconf_init(void)
  
        ipv6_addr_label_rtnl_register();
  
  
        ipv6_addr_label_rtnl_register();
  
@@ -62,7 +62,7 @@
        return 0;
  errout:
        rtnl_af_unregister(&inet6_ops);
        return 0;
  errout:
        rtnl_af_unregister(&inet6_ops);
-@@ -5543,6 +5545,9 @@ void addrconf_cleanup(void)
+@@ -5558,6 +5560,9 @@ void addrconf_cleanup(void)
        struct net_device *dev;
        int i;
  
        struct net_device *dev;
        int i;
  
index cdce89e2398720e9ee830037de5227fcbea5a580..bf62025d2a1339cad28fdcba2649e4ef35db967c 100644 (file)
@@ -29,7 +29,7 @@
  obj-$(CONFIG_CICADA_PHY)      += cicada.o
 --- a/include/uapi/linux/Kbuild
 +++ b/include/uapi/linux/Kbuild
  obj-$(CONFIG_CICADA_PHY)      += cicada.o
 --- a/include/uapi/linux/Kbuild
 +++ b/include/uapi/linux/Kbuild
-@@ -380,6 +380,7 @@ header-y += stddef.h
+@@ -379,6 +379,7 @@ header-y += stddef.h
  header-y += string.h
  header-y += suspend_ioctls.h
  header-y += swab.h
  header-y += string.h
  header-y += suspend_ioctls.h
  header-y += swab.h
index 3d482fa49c1013d07e1a78b02da0469ae2a6bd0e..55b37bacb99fb87c598c9c7dca5af2f5cac541e6 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -338,6 +338,50 @@ int phy_ethtool_gset(struct phy_device *
+@@ -357,6 +357,50 @@ int phy_ethtool_gset(struct phy_device *
  }
  EXPORT_SYMBOL(phy_ethtool_gset);
  
  }
  EXPORT_SYMBOL(phy_ethtool_gset);
  
index ef12cac9bffe905ab64013be670119f2f02a37e8..e49a841b0b11fb077b40fa192a12f80b3e75fed5 100644 (file)
@@ -12,7 +12,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  #include <bcm47xx_nvram.h>
  
  static const struct bcma_device_id bgmac_bcma_tbl[] = {
  #include <bcm47xx_nvram.h>
  
  static const struct bcma_device_id bgmac_bcma_tbl[] = {
-@@ -1405,6 +1406,17 @@ static void bgmac_mii_unregister(struct
+@@ -1398,6 +1399,17 @@ static void bgmac_mii_unregister(struct
        mdiobus_free(mii_bus);
  }
  
        mdiobus_free(mii_bus);
  }
  
@@ -30,7 +30,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  /**************************************************
   * BCMA bus ops
   **************************************************/
  /**************************************************
   * BCMA bus ops
   **************************************************/
-@@ -1524,6 +1536,16 @@ static int bgmac_probe(struct bcma_devic
+@@ -1517,6 +1529,16 @@ static int bgmac_probe(struct bcma_devic
                goto err_dma_free;
        }
  
                goto err_dma_free;
        }
  
@@ -47,7 +47,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
        err = register_netdev(bgmac->net_dev);
        if (err) {
                bgmac_err(bgmac, "Cannot register net device\n");
        err = register_netdev(bgmac->net_dev);
        if (err) {
                bgmac_err(bgmac, "Cannot register net device\n");
-@@ -1550,6 +1572,10 @@ static void bgmac_remove(struct bcma_dev
+@@ -1543,6 +1565,10 @@ static void bgmac_remove(struct bcma_dev
  {
        struct bgmac *bgmac = bcma_get_drvdata(core);
  
  {
        struct bgmac *bgmac = bcma_get_drvdata(core);
  
index c3d63b65fa457130868354419604b342f17be988..d39626b1607106be34b682c2f7f27ddf8ffb966e 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH] bgmac: check length of received frame
 
 --- a/drivers/net/ethernet/broadcom/bgmac.c
 +++ b/drivers/net/ethernet/broadcom/bgmac.c
 
 --- a/drivers/net/ethernet/broadcom/bgmac.c
 +++ b/drivers/net/ethernet/broadcom/bgmac.c
-@@ -363,6 +363,27 @@ static int bgmac_dma_rx_read(struct bgma
+@@ -360,6 +360,27 @@ static int bgmac_dma_rx_read(struct bgma
                        dma_addr_t old_dma_addr = slot->dma_addr;
                        int err;
  
                        dma_addr_t old_dma_addr = slot->dma_addr;
                        int err;
  
index 36fc8ec86d9d9d171766ab0a9f8808cfd8de2108..5fd329783d7fb3e14d529ca78da6ac93dd1d371e 100644 (file)
 +be done automatically.
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 +be done automatically.
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -4463,6 +4463,11 @@ T:      git git://linuxtv.org/anttip/media_tr
+@@ -4474,6 +4474,11 @@ T:      git git://linuxtv.org/anttip/media_tr
  S:    Maintained
  F:    drivers/media/usb/hackrf/
  
  S:    Maintained
  F:    drivers/media/usb/hackrf/
  
index b32cce41fefab60e2edc83103734c3a074254657..b30bd7dfa9a1bb1335dde89f34b88ffa5632f929 100644 (file)
@@ -1,6 +1,6 @@
 --- a/fs/locks.c
 +++ b/fs/locks.c
 --- a/fs/locks.c
 +++ b/fs/locks.c
-@@ -2640,6 +2640,8 @@ static const struct file_operations proc
+@@ -2641,6 +2641,8 @@ static const struct file_operations proc
  
  static int __init proc_locks_init(void)
  {
  
  static int __init proc_locks_init(void)
  {
                return -ENOMEM;
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
                return -ENOMEM;
 --- a/mm/vmalloc.c
 +++ b/mm/vmalloc.c
-@@ -2661,6 +2661,8 @@ static const struct file_operations proc
+@@ -2662,6 +2662,8 @@ static const struct file_operations proc
  
  static int __init proc_vmalloc_init(void)
  {
  
  static int __init proc_vmalloc_init(void)
  {
index 594a55fc14c46303ac67d0b361b011ea3d1e1101..d9c5ecd01529ab606d18e41f2a6a7e2b622d97a2 100644 (file)
        end = bdata->node_low_pfn;
 --- a/kernel/module.c
 +++ b/kernel/module.c
        end = bdata->node_low_pfn;
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -105,6 +105,9 @@ static LIST_HEAD(modules);
+@@ -104,6 +104,9 @@ static LIST_HEAD(modules);
  #ifdef CONFIG_KGDB_KDB
  struct list_head *kdb_modules = &modules; /* kdb needs the list of modules */
  #endif /* CONFIG_KGDB_KDB */
  #ifdef CONFIG_KGDB_KDB
  struct list_head *kdb_modules = &modules; /* kdb needs the list of modules */
  #endif /* CONFIG_KGDB_KDB */