kernel: update linux 3.10 to 3.10 final
authorJonas Gorski <jogo@openwrt.org>
Mon, 1 Jul 2013 13:21:06 +0000 (13:21 +0000)
committerJonas Gorski <jogo@openwrt.org>
Mon, 1 Jul 2013 13:21:06 +0000 (13:21 +0000)
3.10 final is out, so refresh patches and add md5sum.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 37116

22 files changed:
include/kernel-version.mk
target/linux/generic/config-3.10
target/linux/generic/patches-3.10/100-overlayfs.patch
target/linux/generic/patches-3.10/101-overlayfs_path_ref.patch [deleted file]
target/linux/generic/patches-3.10/203-kallsyms_uncompressed.patch
target/linux/generic/patches-3.10/220-gc_sections.patch
target/linux/generic/patches-3.10/260-crypto_test_dependencies.patch
target/linux/generic/patches-3.10/540-crypto-xz-decompression-support.patch
target/linux/generic/patches-3.10/630-packet_socket_type.patch
target/linux/generic/patches-3.10/643-bridge_remove_ipv6_dependency.patch
target/linux/generic/patches-3.10/644-bridge_optimize_netfilter_hooks.patch
target/linux/generic/patches-3.10/655-increase_skb_pad.patch
target/linux/generic/patches-3.10/656-skb_reduce_truesize-helper.patch
target/linux/generic/patches-3.10/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
target/linux/generic/patches-3.10/700-swconfig.patch
target/linux/generic/patches-3.10/721-phy_packets.patch
target/linux/generic/patches-3.10/902-debloat_proc.patch
target/linux/generic/patches-3.10/903-debloat_direct_io.patch
target/linux/generic/patches-3.10/930-crashlog.patch
target/linux/generic/patches-3.10/940-ocf_kbuild_integration.patch
target/linux/generic/patches-3.10/950-vm_exports.patch
target/linux/imx6/Makefile

index 1911176a6e5bdb167073631e4947927015a4bdd6..340cb4da61c6eb591ee484b0a1fc0a1b41fe893e 100644 (file)
@@ -17,6 +17,9 @@ endif
 ifeq ($(LINUX_VERSION),3.9.8)
   LINUX_KERNEL_MD5SUM:=04d74575ef1c484ad00be61f32bb4557
 endif
+ifeq ($(LINUX_VERSION),3.10)
+  LINUX_KERNEL_MD5SUM:=4f25cd5bec5f8d5a7d935b3f2ccb8481
+endif
 
 # disable the md5sum check for unknown kernel versions
 LINUX_KERNEL_MD5SUM?=x
index 1e40bdbf81fa00cc2165e41494c5c578bb364533..7c6553765ff9256e2b7c0177c56fba30754655b7 100644 (file)
@@ -32,6 +32,7 @@ CONFIG_AIO=y
 # CONFIG_ALCHEMY_GPIO_INDIRECT is not set
 # CONFIG_ALIM7101_WDT is not set
 # CONFIG_ALTERA_STAPL is not set
+# CONFIG_ALX is not set
 # CONFIG_AMD8111_ETH is not set
 # CONFIG_AMD_PHY is not set
 # CONFIG_AMIGA_PARTITION is not set
index e8896aa9e33d709fdc732e510e561b1be1bd7b26..5d1c5f6d3888e8873a9331d18ab1d97373792814 100644 (file)
          will be called when part or all of the page is to be removed
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
-@@ -6009,6 +6009,13 @@ F:      drivers/scsi/osd/
+@@ -6019,6 +6019,13 @@ F:      drivers/scsi/osd/
  F:    include/scsi/osd_*
  F:    fs/exofs/
  
 +
 +      rc = -EINVAL;
 +      if (s->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) {
-+              printk(KERN_ERR "eCryptfs: maximum fs stacking depth exceeded\n");
++              pr_err("eCryptfs: maximum fs stacking depth exceeded\n");
 +              goto out_free;
 +      }
  
   * namespace.c
   */
  extern int copy_mount_options(const void __user *, unsigned long *);
+@@ -132,12 +127,6 @@ extern struct dentry *__d_alloc(struct s
+ extern ssize_t __kernel_write(struct file *, const char *, size_t, loff_t *);
+ /*
+- * splice.c
+- */
+-extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
+-              loff_t *opos, size_t len, unsigned int flags);
+-
+-/*
+  * pipe.c
+  */
+ extern const struct file_operations pipefifo_fops;
 --- a/fs/namei.c
 +++ b/fs/namei.c
 @@ -402,6 +402,7 @@ int __inode_permission(struct inode *ino
                goto out;
 --- a/fs/namespace.c
 +++ b/fs/namespace.c
-@@ -1442,6 +1442,24 @@ void drop_collected_mounts(struct vfsmou
+@@ -1442,6 +1442,33 @@ void drop_collected_mounts(struct vfsmou
        namespace_unlock();
  }
  
++/**
++ * clone_private_mount - create a private clone of a path
++ *
++ * This creates a new vfsmount, which will be the clone of @path.  The new will
++ * not be attached anywhere in the namespace and will be private (i.e. changes
++ * to the originating mount won't be propagated into this).
++ *
++ * Release with mntput().
++ */
 +struct vfsmount *clone_private_mount(struct path *path)
 +{
 +      struct mount *old_mnt = real_mount(path->mnt);
 +      down_read(&namespace_sem);
 +      new_mnt = clone_mnt(old_mnt, path->dentry, CL_PRIVATE);
 +      up_read(&namespace_sem);
-+      if (!new_mnt)
-+              return ERR_PTR(-ENOMEM);
++      if (IS_ERR(new_mnt))
++              return ERR_CAST(new_mnt);
 +
 +      return &new_mnt->mnt;
 +}
        int lookup_flags = 0;
 --- /dev/null
 +++ b/fs/overlayfs/Kconfig
-@@ -0,0 +1,4 @@
+@@ -0,0 +1,10 @@
 +config OVERLAYFS_FS
 +      tristate "Overlay filesystem support"
 +      help
-+        Add support for overlay filesystem.
++        An overlay filesystem combines two filesystems - an 'upper' filesystem
++        and a 'lower' filesystem.  When a name exists in both filesystems, the
++        object in the 'upper' filesystem is visible while the object in the
++        'lower' filesystem is either hidden or, in the case of directories,
++        merged with the 'upper' object.
++
++        For more information see Documentation/filesystems/overlayfs.txt
 --- /dev/null
 +++ b/fs/overlayfs/Makefile
 @@ -0,0 +1,7 @@
 +overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o
 --- /dev/null
 +++ b/fs/overlayfs/copy_up.c
-@@ -0,0 +1,385 @@
+@@ -0,0 +1,387 @@
 +/*
 + *
 + * Copyright (C) 2011 Novell Inc.
 +{
 +      struct file *old_file;
 +      struct file *new_file;
++      loff_t old_pos = 0;
++      loff_t new_pos = 0;
 +      int error = 0;
 +
 +      if (len == 0)
 +
 +      /* FIXME: copy up sparse files efficiently */
 +      while (len) {
-+              loff_t offset = new_file->f_pos;
 +              size_t this_len = OVL_COPY_UP_CHUNK_SIZE;
 +              long bytes;
 +
 +                      break;
 +              }
 +
-+              bytes = do_splice_direct(old_file, &offset, new_file, this_len,
-+                               SPLICE_F_MOVE);
++              bytes = do_splice_direct(old_file, &old_pos,
++                                       new_file, &new_pos,
++                                       this_len, SPLICE_F_MOVE);
 +              if (bytes <= 0) {
 +                      error = bytes;
 +                      break;
 +}
 --- /dev/null
 +++ b/fs/overlayfs/dir.c
-@@ -0,0 +1,604 @@
+@@ -0,0 +1,605 @@
 +/*
 + *
 + * Copyright (C) 2011 Novell Inc.
 +               * There's no way to recover from failure to whiteout.
 +               * What should we do?  Log a big fat error and... ?
 +               */
-+              printk(KERN_ERR "overlayfs: ERROR - failed to whiteout '%s'\n",
++              pr_err("overlayfs: ERROR - failed to whiteout '%s'\n",
 +                     dentry->d_name.name);
 +      }
 +
 +              }
 +              newinode = ovl_new_inode(old->d_sb, newdentry->d_inode->i_mode,
 +                              new->d_fsdata);
-+              if (!newinode)
++              if (!newinode) {
++                      err = -ENOMEM;
 +                      goto link_fail;
++              }
 +              ovl_copyattr(upperdir->d_inode, newinode);
 +
 +              ovl_dentry_version_inc(new->d_parent);
 +      mutex_unlock(&upperdir->d_inode->i_mutex);
 +out:
 +      return err;
-+
 +}
 +
 +static int ovl_rename(struct inode *olddir, struct dentry *old,
 +      loff_t res;
 +      struct ovl_dir_file *od = file->private_data;
 +
-+      mutex_lock(&file->f_dentry->d_inode->i_mutex);
++      mutex_lock(&file_inode(file)->i_mutex);
 +      if (!file->f_pos)
 +              ovl_dir_reset(file);
 +
 +              res = offset;
 +      }
 +out_unlock:
-+      mutex_unlock(&file->f_dentry->d_inode->i_mutex);
++      mutex_unlock(&file_inode(file)->i_mutex);
 +
 +      return res;
 +}
 +
 +              dentry = lookup_one_len(p->name, upperdir, p->len);
 +              if (IS_ERR(dentry)) {
-+                      printk(KERN_WARNING
++                      pr_warn(
 +                          "overlayfs: failed to lookup whiteout %.*s: %li\n",
 +                          p->len, p->name, PTR_ERR(dentry));
 +                      continue;
 +              ret = vfs_unlink(upperdir->d_inode, dentry);
 +              dput(dentry);
 +              if (ret)
-+                      printk(KERN_WARNING
++                      pr_warn(
 +                          "overlayfs: failed to unlink whiteout %.*s: %i\n",
 +                          p->len, p->name, ret);
 +      }
 +
 +struct file *ovl_path_open(struct path *path, int flags)
 +{
-+      path_get(path);
 +      return dentry_open(path, flags, current_cred());
 +}
 +
 +};
 +
 +enum {
-+      Opt_lowerdir,
-+      Opt_upperdir,
-+      Opt_err,
++      OPT_LOWERDIR,
++      OPT_UPPERDIR,
++      OPT_ERR,
 +};
 +
 +static const match_table_t ovl_tokens = {
-+      {Opt_lowerdir,                  "lowerdir=%s"},
-+      {Opt_upperdir,                  "upperdir=%s"},
-+      {Opt_err,                       NULL}
++      {OPT_LOWERDIR,                  "lowerdir=%s"},
++      {OPT_UPPERDIR,                  "upperdir=%s"},
++      {OPT_ERR,                       NULL}
 +};
 +
 +static int ovl_parse_opt(char *opt, struct ovl_config *config)
 +
 +              token = match_token(p, ovl_tokens, args);
 +              switch (token) {
-+              case Opt_upperdir:
++              case OPT_UPPERDIR:
 +                      kfree(config->upperdir);
 +                      config->upperdir = match_strdup(&args[0]);
 +                      if (!config->upperdir)
 +                              return -ENOMEM;
 +                      break;
 +
-+              case Opt_lowerdir:
++              case OPT_LOWERDIR:
 +                      kfree(config->lowerdir);
 +                      config->lowerdir = match_strdup(&args[0]);
 +                      if (!config->lowerdir)
 +
 +      err = -EINVAL;
 +      if (!ufs->config.upperdir || !ufs->config.lowerdir) {
-+              printk(KERN_ERR "overlayfs: missing upperdir or lowerdir\n");
++              pr_err("overlayfs: missing upperdir or lowerdir\n");
 +              goto out_free_config;
 +      }
 +
 +
 +      err = vfs_statfs(&lowerpath, &statfs);
 +      if (err) {
-+              printk(KERN_ERR "overlayfs: statfs failed on lowerpath\n");
++              pr_err("overlayfs: statfs failed on lowerpath\n");
 +              goto out_put_lowerpath;
 +      }
 +      ufs->lower_namelen = statfs.f_namelen;
 +
 +      err = -EINVAL;
 +      if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) {
-+              printk(KERN_ERR "overlayfs: maximum fs stacking depth exceeded\n");
++              pr_err("overlayfs: maximum fs stacking depth exceeded\n");
 +              goto out_put_lowerpath;
 +      }
 +
 +      ufs->upper_mnt = clone_private_mount(&upperpath);
 +      err = PTR_ERR(ufs->upper_mnt);
 +      if (IS_ERR(ufs->upper_mnt)) {
-+              printk(KERN_ERR "overlayfs: failed to clone upperpath\n");
++              pr_err("overlayfs: failed to clone upperpath\n");
 +              goto out_put_lowerpath;
 +      }
 +
 +      ufs->lower_mnt = clone_private_mount(&lowerpath);
 +      err = PTR_ERR(ufs->lower_mnt);
 +      if (IS_ERR(ufs->lower_mnt)) {
-+              printk(KERN_ERR "overlayfs: failed to clone lowerpath\n");
++              pr_err("overlayfs: failed to clone lowerpath\n");
 +              goto out_put_upper_mnt;
 +      }
 +
 +      .mount          = ovl_mount,
 +      .kill_sb        = kill_anon_super,
 +};
++MODULE_ALIAS_FS("overlayfs");
 +
 +static int __init ovl_init(void)
 +{
 +module_exit(ovl_exit);
 --- a/fs/splice.c
 +++ b/fs/splice.c
-@@ -1311,6 +1311,7 @@ long do_splice_direct(struct file *in, l
+@@ -1313,6 +1313,7 @@ long do_splice_direct(struct file *in, l
  
        return ret;
  }
  extern int generic_permission(struct inode *, int);
  
  static inline bool execute_ok(struct inode *inode)
+@@ -2414,6 +2428,9 @@ extern ssize_t generic_file_splice_write
+               struct file *, loff_t *, size_t, unsigned int);
+ extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe,
+               struct file *out, loff_t *, size_t len, unsigned int flags);
++extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out,
++              loff_t *opos, size_t len, unsigned int flags);
++
+ extern void
+ file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping);
 --- a/include/linux/mount.h
 +++ b/include/linux/mount.h
 @@ -68,6 +68,9 @@ extern void mnt_pin(struct vfsmount *mnt
diff --git a/target/linux/generic/patches-3.10/101-overlayfs_path_ref.patch b/target/linux/generic/patches-3.10/101-overlayfs_path_ref.patch
deleted file mode 100644 (file)
index 0891ddf..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/fs/overlayfs/super.c
-+++ b/fs/overlayfs/super.c
-@@ -385,7 +385,6 @@ struct dentry *ovl_lookup(struct inode *
- struct file *ovl_path_open(struct path *path, int flags)
- {
--      path_get(path);
-       return dentry_open(path, flags, current_cred());
- }
index 5d04f6dc42e7e43d334ecc19b678303c8b759809..ac9aa5425713e787e54fb985aa85797d991ee80a 100644 (file)
@@ -51,7 +51,7 @@
        } else if (argc != 1)
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1244,6 +1244,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+@@ -1245,6 +1245,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
          the unaligned access emulation.
          see arch/parisc/kernel/unaligned.c for reference
  
index 348970961d7509cf7fb32ccc40a231b6c0bf721f..f541deb899be58e5a8892e84ad76f40e0a0d2fbd 100644 (file)
        .init.data : {
 --- a/arch/arm/boot/compressed/Makefile
 +++ b/arch/arm/boot/compressed/Makefile
-@@ -122,6 +122,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
+@@ -123,6 +123,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
  ORIG_CFLAGS := $(KBUILD_CFLAGS)
  KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
  endif
 +KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
  
  ccflags-y := -fpic -mno-single-pic-base -fno-builtin -I$(obj)
- asflags-y := -Wa,-march=all -DZIMAGE
+ asflags-y := -DZIMAGE
index 8cc15e470ba43f5aa830d78eb3efa4617c11ecff..a28f69308c2611d12566d9027ad299d3cbb48579 100644 (file)
@@ -17,7 +17,7 @@
        tristate "Userspace cryptographic algorithm configuration"
 --- a/crypto/algboss.c
 +++ b/crypto/algboss.c
-@@ -247,6 +247,9 @@ static int cryptomgr_schedule_test(struc
+@@ -248,6 +248,9 @@ static int cryptomgr_schedule_test(struc
        type = alg->cra_flags;
  
        /* This piece of crap needs to disappear into per-type test hooks. */
@@ -27,7 +27,7 @@
        if ((!((type ^ CRYPTO_ALG_TYPE_BLKCIPHER) &
               CRYPTO_ALG_TYPE_BLKCIPHER_MASK) && !(type & CRYPTO_ALG_GENIV) &&
             ((alg->cra_flags & CRYPTO_ALG_TYPE_MASK) ==
-@@ -255,6 +258,7 @@ static int cryptomgr_schedule_test(struc
+@@ -256,6 +259,7 @@ static int cryptomgr_schedule_test(struc
            (!((type ^ CRYPTO_ALG_TYPE_AEAD) & CRYPTO_ALG_TYPE_MASK) &&
             alg->cra_type == &crypto_nivaead_type && alg->cra_aead.ivsize))
                type |= CRYPTO_ALG_TESTED;
index eddd8e5303850f32298ce6c2afd4f2d68453881c..c1384b331f274a95d94f4795cab25f6c2a2ad7fb 100644 (file)
@@ -1,6 +1,6 @@
 --- a/crypto/Kconfig
 +++ b/crypto/Kconfig
-@@ -1359,6 +1359,13 @@ config CRYPTO_842
+@@ -1361,6 +1361,13 @@ config CRYPTO_842
        help
          This is the 842 algorithm.
  
index 7f43aff8f56d8c172c11ff8d58bc56fd60587455..e7f05def7fef3225ce44c0a7b4681d09e2131243 100644 (file)
@@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3227,6 +3230,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3226,6 +3229,16 @@ packet_setsockopt(struct socket *sock, i
                po->tp_tx_has_off = !!val;
                return 0;
        }
@@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
        default:
                return -ENOPROTOOPT;
        }
-@@ -3276,6 +3289,13 @@ static int packet_getsockopt(struct sock
+@@ -3275,6 +3288,13 @@ static int packet_getsockopt(struct sock
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
index 02a76c3ace42c3ee54a99434d4749c2effd056ec..3d3c6253f29bab2631bcc0ca3cc748acb1378663 100644 (file)
@@ -49,7 +49,7 @@
  
  int ipv6_get_lladdr(struct net_device *dev, struct in6_addr *addr,
                    unsigned char banned_flags)
-@@ -5133,6 +5132,9 @@ int __init addrconf_init(void)
+@@ -5137,6 +5136,9 @@ int __init addrconf_init(void)
  
        ipv6_addr_label_rtnl_register();
  
@@ -59,7 +59,7 @@
        return 0;
  errout:
        rtnl_af_unregister(&inet6_ops);
-@@ -5151,6 +5153,9 @@ void addrconf_cleanup(void)
+@@ -5155,6 +5157,9 @@ void addrconf_cleanup(void)
        struct net_device *dev;
        int i;
  
index 8204bba51bce04339ae9613f1d55e68bcbac6f7e..bc56b71d37f06d341258471a1f6a9161e652a6be 100644 (file)
@@ -58,7 +58,7 @@
        default:
 --- a/net/bridge/br_multicast.c
 +++ b/net/bridge/br_multicast.c
-@@ -782,7 +782,7 @@ static void __br_multicast_send_query(st
+@@ -783,7 +783,7 @@ static void __br_multicast_send_query(st
        if (port) {
                __skb_push(skb, sizeof(struct ethhdr));
                skb->dev = port->dev;
index d1093713924eb5f191ee6ab413dca20a70118025..b1a0fb71f8dd6219d4377876ed08b6e8b35a7624 100644 (file)
@@ -1,6 +1,6 @@
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -1847,7 +1847,7 @@ static inline int pskb_network_may_pull(
+@@ -1848,7 +1848,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 402148dfd0a4c47a840ea66dad60828258b96911..59cfa6a3b62d0257a26537545e8d7a460150aee6 100644 (file)
@@ -14,7 +14,7 @@ when needed.
 
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -1892,6 +1892,24 @@ static inline void pskb_trim_unique(stru
+@@ -1893,6 +1893,24 @@ static inline void pskb_trim_unique(stru
        BUG_ON(err);
  }
  
index 505bc2bd538c01ab745088ed7ac3853e93793954..72cff92840b4ad42f3ba66f0f9ab6fd00a873dc7 100644 (file)
@@ -1,5 +1,3 @@
-diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
-index 005e2c2..a6a1df4 100644
 --- a/include/net/netns/ipv6.h
 +++ b/include/net/netns/ipv6.h
 @@ -55,6 +55,7 @@ struct netns_ipv6 {
@@ -10,8 +8,6 @@ index 005e2c2..a6a1df4 100644
        struct rt6_info         *ip6_blk_hole_entry;
        struct fib6_table       *fib6_local_tbl;
        struct fib_rules_ops    *fib6_rules_ops;
-diff --git a/include/uapi/linux/fib_rules.h b/include/uapi/linux/fib_rules.h
-index 51da65b..1429852 100644
 --- a/include/uapi/linux/fib_rules.h
 +++ b/include/uapi/linux/fib_rules.h
 @@ -64,6 +64,10 @@ enum {
@@ -25,8 +21,6 @@ index 51da65b..1429852 100644
        __FR_ACT_MAX,
  };
  
-diff --git a/include/uapi/linux/icmpv6.h b/include/uapi/linux/icmpv6.h
-index e0133c7..dabfa1a 100644
 --- a/include/uapi/linux/icmpv6.h
 +++ b/include/uapi/linux/icmpv6.h
 @@ -115,6 +115,7 @@ struct icmp6hdr {
@@ -37,8 +31,6 @@ index e0133c7..dabfa1a 100644
  
  /*
   *    Codes for Time Exceeded
-diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
-index 7a2144e..8f643f1 100644
 --- a/include/uapi/linux/rtnetlink.h
 +++ b/include/uapi/linux/rtnetlink.h
 @@ -203,6 +203,7 @@ enum {
@@ -49,11 +41,9 @@ index 7a2144e..8f643f1 100644
        __RTN_MAX
  };
  
-diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c
-index 26aa65d..2f66341 100644
 --- a/net/ipv4/fib_rules.c
 +++ b/net/ipv4/fib_rules.c
-@@ -84,6 +84,10 @@ static int fib4_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -84,6 +84,10 @@ static int fib4_rule_action(struct fib_r
                err = -EACCES;
                goto errout;
  
@@ -64,11 +54,9 @@ index 26aa65d..2f66341 100644
        case FR_ACT_BLACKHOLE:
        default:
                err = -EINVAL;
-diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 8f6cb7a..dbae75d 100644
 --- a/net/ipv4/fib_semantics.c
 +++ b/net/ipv4/fib_semantics.c
-@@ -138,6 +138,10 @@ const struct fib_prop fib_props[RTN_MAX + 1] = {
+@@ -138,6 +138,10 @@ const struct fib_prop fib_props[RTN_MAX
                .error  = -EINVAL,
                .scope  = RT_SCOPE_NOWHERE,
        },
@@ -79,11 +67,9 @@ index 8f6cb7a..dbae75d 100644
  };
  
  static void rt_fibinfo_free(struct rtable __rcu **rtp)
-diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
-index 49616fe..e2845bd 100644
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2334,6 +2334,7 @@ static const char *const rtn_type_names[__RTN_MAX] = {
+@@ -2334,6 +2334,7 @@ static const char *const rtn_type_names[
        [RTN_THROW] = "THROW",
        [RTN_NAT] = "NAT",
        [RTN_XRESOLVE] = "XRESOLVE",
@@ -91,11 +77,9 @@ index 49616fe..e2845bd 100644
  };
  
  static inline const char *rtn_type(char *buf, size_t len, unsigned int t)
-diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
-index df97f0a..2bd33cc 100644
 --- a/net/ipv4/ipmr.c
 +++ b/net/ipv4/ipmr.c
-@@ -181,6 +181,7 @@ static int ipmr_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -181,6 +181,7 @@ static int ipmr_rule_action(struct fib_r
        case FR_ACT_UNREACHABLE:
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
@@ -103,11 +87,9 @@ index df97f0a..2bd33cc 100644
                return -EACCES;
        case FR_ACT_BLACKHOLE:
        default:
-diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c
-index 2e1a432..c4413b2 100644
 --- a/net/ipv6/fib6_rules.c
 +++ b/net/ipv6/fib6_rules.c
-@@ -69,6 +69,9 @@ static int fib6_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -69,6 +69,9 @@ static int fib6_rule_action(struct fib_r
        case FR_ACT_PROHIBIT:
                rt = net->ipv6.ip6_prohibit_entry;
                goto discard_pkt;
@@ -117,11 +99,9 @@ index 2e1a432..c4413b2 100644
        }
  
        table = fib6_get_table(net, rule->table);
-diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
-index 583e8d4..1e524da 100644
 --- a/net/ipv6/ip6mr.c
 +++ b/net/ipv6/ip6mr.c
-@@ -166,6 +166,8 @@ static int ip6mr_rule_action(struct fib_rule *rule, struct flowi *flp,
+@@ -166,6 +166,8 @@ static int ip6mr_rule_action(struct fib_
                return -ENETUNREACH;
        case FR_ACT_PROHIBIT:
                return -EACCES;
@@ -130,11 +110,9 @@ index 583e8d4..1e524da 100644
        case FR_ACT_BLACKHOLE:
        default:
                return -EINVAL;
-diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 2b87418..864f5fe 100644
 --- a/net/ipv6/route.c
 +++ b/net/ipv6/route.c
-@@ -245,6 +245,24 @@ static const struct rt6_info ip6_prohibit_entry_template = {
+@@ -245,6 +245,24 @@ static const struct rt6_info ip6_prohibi
        .rt6i_ref       = ATOMIC_INIT(1),
  };
  
@@ -159,7 +137,7 @@ index 2b87418..864f5fe 100644
  static const struct rt6_info ip6_blk_hole_entry_template = {
        .dst = {
                .__refcnt       = ATOMIC_INIT(1),
-@@ -1459,6 +1477,9 @@ int ip6_route_add(struct fib6_config *cfg)
+@@ -1459,6 +1477,9 @@ int ip6_route_add(struct fib6_config *cf
                case RTN_THROW:
                        rt->dst.error = -EAGAIN;
                        break;
@@ -169,7 +147,7 @@ index 2b87418..864f5fe 100644
                default:
                        rt->dst.error = -ENETUNREACH;
                        break;
-@@ -2035,6 +2056,17 @@ static int ip6_pkt_prohibit_out(struct sk_buff *skb)
+@@ -2035,6 +2056,17 @@ static int ip6_pkt_prohibit_out(struct s
        return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
  }
  
@@ -187,7 +165,7 @@ index 2b87418..864f5fe 100644
  #endif
  
  /*
-@@ -2240,7 +2272,8 @@ static int rtm_to_fib6_config(struct sk_buff *skb, struct nlmsghdr *nlh,
+@@ -2240,7 +2272,8 @@ static int rtm_to_fib6_config(struct sk_
        if (rtm->rtm_type == RTN_UNREACHABLE ||
            rtm->rtm_type == RTN_BLACKHOLE ||
            rtm->rtm_type == RTN_PROHIBIT ||
@@ -197,7 +175,7 @@ index 2b87418..864f5fe 100644
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -2442,6 +2475,9 @@ static int rt6_fill_node(struct net *net,
+@@ -2442,6 +2475,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
@@ -207,7 +185,7 @@ index 2b87418..864f5fe 100644
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -2692,6 +2728,8 @@ static int ip6_route_dev_notify(struct notifier_block *this,
+@@ -2692,6 +2728,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -216,7 +194,7 @@ index 2b87418..864f5fe 100644
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -2952,6 +2990,17 @@ static int __net_init ip6_route_net_init(struct net *net)
+@@ -2952,6 +2990,17 @@ static int __net_init ip6_route_net_init
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
@@ -243,7 +221,7 @@ index 2b87418..864f5fe 100644
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -2987,6 +3038,7 @@ static void __net_exit ip6_route_net_exit(struct net *net)
+@@ -2987,6 +3038,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
index 3b71723a12d8c17f1245165dd7b03cec4155982b..d7eb1b07318fa7e2b72e262b9c3885b28e614806 100644 (file)
@@ -29,7 +29,7 @@
  obj-$(CONFIG_CICADA_PHY)      += cicada.o
 --- a/include/uapi/linux/Kbuild
 +++ b/include/uapi/linux/Kbuild
-@@ -360,6 +360,7 @@ header-y += stddef.h
+@@ -361,6 +361,7 @@ header-y += stddef.h
  header-y += string.h
  header-y += suspend_ioctls.h
  header-y += swab.h
index e9b599608cb514980b8df65998a9c2d2db8d01fa..869200787fa2b75968192290031e31b0a6724bbc 100644 (file)
@@ -34,7 +34,7 @@
  #define IF_GET_IFACE  0x0001          /* for querying only */
 --- a/include/linux/skbuff.h
 +++ b/include/linux/skbuff.h
-@@ -1877,6 +1877,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -1878,6 +1878,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  
@@ -45,7 +45,7 @@
  /**
   *    pskb_trim_unique - remove end from a paged unique (not cloned) buffer
   *    @skb: buffer to alter
-@@ -2001,16 +2005,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2002,16 +2006,6 @@ static inline struct sk_buff *dev_alloc_
  }
  
  
@@ -79,7 +79,7 @@
        help
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -2542,9 +2542,19 @@ int dev_hard_start_xmit(struct sk_buff *
+@@ -2576,9 +2576,19 @@ int dev_hard_start_xmit(struct sk_buff *
                if (!list_empty(&ptype_all))
                        dev_queue_xmit_nit(skb, dev);
  
                if (rc == NETDEV_TX_OK)
                        txq_trans_update(txq);
                return rc;
-@@ -2560,9 +2570,19 @@ gso:
+@@ -2594,9 +2604,19 @@ gso:
                if (!list_empty(&ptype_all))
                        dev_queue_xmit_nit(nskb, dev);
  
index 526132bf718a100d2f5639b0a00c8b592365ba4c..479c52d3011e764d9d8cbb960e163ca4a86be9fe 100644 (file)
                goto err;
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
-@@ -2851,6 +2851,8 @@ static __net_initdata struct pernet_oper
+@@ -2838,6 +2838,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
  {
  
 --- a/net/ipv4/fib_trie.c
 +++ b/net/ipv4/fib_trie.c
-@@ -2589,10 +2589,12 @@ static const struct file_operations fib_
+@@ -2590,10 +2590,12 @@ static const struct file_operations fib_
  
  int __net_init fib_proc_init(struct net *net)
  {
                         &fib_triestat_fops))
                goto out2;
  
-@@ -2602,17 +2604,21 @@ int __net_init fib_proc_init(struct net
+@@ -2603,17 +2605,21 @@ int __net_init fib_proc_init(struct net
        return 0;
  
  out3:
index a16eff64c74543dafab99c242c24aa5706b10509..4f3545db6cf1036568c96b0027412ccbed19fb02 100644 (file)
@@ -26,7 +26,7 @@
  endif
 --- a/include/linux/fs.h
 +++ b/include/linux/fs.h
-@@ -2467,12 +2467,26 @@ enum {
+@@ -2468,12 +2468,26 @@ enum {
        DIO_SKIP_HOLES  = 0x02,
  };
  
index dea0ea318b1a2324cb5b7cb0690f664db306f230..22778c04c79d206376688d3ef97e5eb8a1077e5c 100644 (file)
@@ -20,7 +20,7 @@
 +#endif
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1185,6 +1185,10 @@ config RELAY
+@@ -1186,6 +1186,10 @@ config RELAY
  
          If unsure, say N.
  
index 475a4080019292176537cdba78cf318bab34c3cc..97d5bccda2e1b4ce7214f11286e6325545f191b7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/crypto/Kconfig
 +++ b/crypto/Kconfig
-@@ -1404,3 +1404,6 @@ source "drivers/crypto/Kconfig"
+@@ -1406,3 +1406,6 @@ source "drivers/crypto/Kconfig"
  source crypto/asymmetric_keys/Kconfig
  
  endif # if CRYPTO
index 1159b8810fcb89d63bb9589026550423b7ce1c22..993d384b284188bc87673dc04daa58d30092d506 100644 (file)
@@ -52,7 +52,7 @@
   * When we die, we re-parent all our children, and try to:
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -3694,6 +3694,7 @@ int can_nice(const struct task_struct *p
+@@ -3707,6 +3707,7 @@ int can_nice(const struct task_struct *p
        return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
                capable(CAP_SYS_NICE));
  }
@@ -62,7 +62,7 @@
  
 --- a/mm/memory.c
 +++ b/mm/memory.c
-@@ -1413,6 +1413,7 @@ void zap_page_range(struct vm_area_struc
+@@ -1404,6 +1404,7 @@ void zap_page_range(struct vm_area_struc
        mmu_notifier_invalidate_range_end(mm, start, end);
        tlb_finish_mmu(&tlb, start, end);
  }
index e866c0bb9b5768257c68e8eeb546f10317c19cfa..38a00165b69f4c72bbc63d366da11d2551eef98d 100644 (file)
@@ -13,7 +13,7 @@ FEATURES:=audio display gpio pcie usb usbgadget squashfs targz
 CFLAGS:=-Os -pipe -mtune=cortex-a9 -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp
 MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
-LINUX_VERSION:=3.10-rc3
+LINUX_VERSION:=3.10
 
 include $(INCLUDE_DIR)/target.mk