Merge tag 'v3.10.106' into update
authorStricted <info@stricted.net>
Wed, 21 Mar 2018 22:06:23 +0000 (23:06 +0100)
committerStricted <info@stricted.net>
Wed, 21 Mar 2018 22:06:23 +0000 (23:06 +0100)
This is the 3.10.106 stable release

43 files changed:
1  2 
Documentation/kernel-parameters.txt
Makefile
arch/arm/kernel/ptrace.c
arch/arm64/include/uapi/asm/ptrace.h
arch/arm64/kernel/ptrace.c
crypto/Makefile
drivers/char/Kconfig
drivers/mtd/nand/Kconfig
drivers/net/tun.c
drivers/usb/gadget/composite.c
drivers/usb/host/xhci-mem.c
fs/block_dev.c
fs/exec.c
fs/ext4/inode.c
fs/ext4/mballoc.c
fs/fuse/file.c
fs/jfs/xattr.c
fs/posix_acl.c
fs/ubifs/tnc.c
include/crypto/algapi.h
include/linux/cpu.h
include/linux/posix_acl.h
kernel/cpu.c
kernel/events/core.c
kernel/sched/core.c
kernel/trace/ring_buffer.c
kernel/trace/trace.c
mm/page_alloc.c
net/core/dev.c
net/core/sock.c
net/ipv4/inet_connection_sock.c
net/ipv4/netfilter/arp_tables.c
net/ipv4/ping.c
net/ipv4/route.c
net/ipv4/tcp.c
net/ipv4/tcp_ipv4.c
net/ipv6/raw.c
net/ipv6/tcp_ipv6.c
net/l2tp/l2tp_ip.c
net/l2tp/l2tp_ip6.c
net/packet/af_packet.c
net/socket.c
security/selinux/hooks.c

Simple merge
diff --cc Makefile
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc crypto/Makefile
Simple merge
Simple merge
Simple merge
Simple merge
index 957178db0c6d13ab318f1ad8600b6e75a7da9118,584e43c9748f0cbd01d2f290326fad1773263ba0..3fc750f52639a5885855c2a19f4063391f1eac1f
@@@ -1394,15 -1326,16 +1392,21 @@@ composite_setup(struct usb_gadget *gadg
                        goto unknown;
                if (!cdev->config || intf >= MAX_CONFIG_INTERFACES)
                        break;
 -              f = cdev->config->interface[intf];
 +
 +              if (cdev->config)
 +                  f = cdev->config->interface[intf];
 +              else
 +                      pr_debug("%s: cdev->config = NULL \n", __func__);
 +
                if (!f)
                        break;
-               if (w_value && !f->set_alt)
+               /*
+                * If there's no get_alt() method, we know only altsetting zero
+                * works. There is no need to check if set_alt() is not NULL
+                * as we check this in usb_add_function().
+                */
+               if (w_value && !f->get_alt)
                        break;
                value = f->set_alt(f, w_index, w_value);
                if (value == USB_GADGET_DELAYED_STATUS) {
Simple merge
diff --cc fs/block_dev.c
Simple merge
diff --cc fs/exec.c
Simple merge
diff --cc fs/ext4/inode.c
Simple merge
Simple merge
diff --cc fs/fuse/file.c
Simple merge
diff --cc fs/jfs/xattr.c
index c79b1d7a53e24be8c918313318b325b949997954,29a28601cb93eb0d8c39098d95f0e92ab16ed562..537525a7f996047d9472f5f0ed76bc1ffa34a864
@@@ -693,11 -693,12 +693,12 @@@ static int can_set_system_xattr(struct 
                        return rc;
                }
                if (acl) {
+                       struct posix_acl *old_acl = acl;
                        rc = posix_acl_update_mode(inode, &inode->i_mode, &acl);
-                       posix_acl_release(acl);
-                       if (rc) {
+                       posix_acl_release(old_acl);
+                       if (rc < 0) {
                                printk(KERN_ERR
 -                                     "posix_acl_equiv_mode returned %d\n",
 +                                     "posix_acl_update_mode returned %d\n",
                                       rc);
                                return rc;
                        }
diff --cc fs/posix_acl.c
Simple merge
diff --cc fs/ubifs/tnc.c
Simple merge
Simple merge
Simple merge
index 2ae0bba45f12478feab0808b5cf2442e6a6e4165,43cb8d59d0a77e52fdf6edf93f65d0e5935b5cf6..8ff25caf81ad698c39e6af0549fcd0ac2f5b1211
@@@ -89,8 -89,8 +89,9 @@@ extern int posix_acl_permission(struct 
  extern struct posix_acl *posix_acl_from_mode(umode_t, gfp_t);
  extern int posix_acl_equiv_mode(const struct posix_acl *, umode_t *);
  extern int posix_acl_create(struct posix_acl **, gfp_t, umode_t *);
+ extern int posix_acl_update_mode(struct inode *, umode_t *, struct posix_acl **);
  extern int posix_acl_chmod(struct posix_acl **, gfp_t, umode_t);
 +extern int posix_acl_update_mode(struct inode *, umode_t *, struct posix_acl **);
  
  extern struct posix_acl *get_posix_acl(struct inode *, int);
  extern int set_posix_acl(struct inode *, int, struct posix_acl *);
diff --cc kernel/cpu.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc mm/page_alloc.c
Simple merge
diff --cc net/core/dev.c
Simple merge
diff --cc net/core/sock.c
Simple merge
Simple merge
Simple merge
diff --cc net/ipv4/ping.c
index 01189884976e94640b29139a9471bf9680f5f0d7,0b778d75e38d6a13c0e07a59be0402af220a4af7..21cb9f0ba96323a44e6d74c57d8827fc3637a5bb
@@@ -147,25 -132,25 +147,24 @@@ void ping_hash(struct sock *sk
        BUG(); /* "Please do not press this button again." */
  }
  
 -static void ping_v4_unhash(struct sock *sk)
 +void ping_unhash(struct sock *sk)
  {
        struct inet_sock *isk = inet_sk(sk);
-       pr_info("ping_unhash(isk=%p,isk->num=%u)\n", isk, isk->inet_num);
 -
+       pr_debug("ping_v4_unhash(isk=%p,isk->num=%u)\n", isk, isk->inet_num);
+       write_lock_bh(&ping_table.lock);
        if (sk_hashed(sk)) {
-               write_lock_bh(&ping_table.lock);
                hlist_nulls_del(&sk->sk_nulls_node);
                sk_nulls_node_init(&sk->sk_nulls_node);
                sock_put(sk);
                isk->inet_num = 0;
                isk->inet_sport = 0;
                sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
-               write_unlock_bh(&ping_table.lock);
-               pr_info("ping_unhash(isk=%p,sk=%p)\n", isk, sk);
        }
+       write_unlock_bh(&ping_table.lock);
  }
 +EXPORT_SYMBOL_GPL(ping_unhash);
  
 -static struct sock *ping_v4_lookup(struct net *net, __be32 saddr, __be32 daddr,
 -                                 u16 ident, int dif)
 +static struct sock *ping_lookup(struct net *net, struct sk_buff *skb, u16 ident)
  {
        struct hlist_nulls_head *hslot = ping_hashslot(&ping_table, net, ident);
        struct sock *sk = NULL;
Simple merge
diff --cc net/ipv4/tcp.c
Simple merge
Simple merge
diff --cc net/ipv6/raw.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc net/socket.c
Simple merge
Simple merge