From: Chuck Anderson Date: Fri, 5 Feb 2016 04:17:46 +0000 (-0800) Subject: Merge branch 'topic/uek-4.1/stable-cherry-picks' of git://ca-git.us.oracle.com/linux... X-Git-Tag: v4.1.12-92~201 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=97ff2312e60f32569e2c19acce4f2fe65efbb755;p=users%2Fjedix%2Flinux-maple.git Merge branch 'topic/uek-4.1/stable-cherry-picks' of git://ca-git.us.oracle.com/linux-chander-public.git into uek/uek-4.1 * topic/uek-4.1/stable-cherry-picks: (96 commits) KEYS: Fix race between read and revoke rhashtable: Fix walker list corruption tcp: restore fastopen with no data in SYN packet fou: clean up socket with kfree_rcu rhashtable: Enforce minimum size on initial hash table net: fix uninitialized variable issue bluetooth: Validate socket address length in sco_sock_bind(). net: check both type and procotol for tcp sockets skbuff: Fix offset error in skb_reorder_vlan_header pptp: verify sockaddr_len in pptp_bind() and pptp_connect() net: fix IP early demux races sh_eth: fix kernel oops in skb_put() net: add validation for the socket syscall protocol argument ipv6: sctp: clone options to avoid use after free vxlan: fix incorrect RCO bit in VXLAN header ipv6: keep existing flags when setting IFA_F_OPTIMISTIC pppoe: fix memory corruption in padt work structure usb: core : hub: Fix BOS 'NULL pointer' kernel panic nfs4: start callback_ident at idr 1 nfsd: eliminate sending duplicate and repeated delegations ... --- 97ff2312e60f32569e2c19acce4f2fe65efbb755 diff --cc drivers/block/nvme-core.c index b1b808cf375bc,04c0e8f3183c3..231360935e646 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c @@@ -619,16 -605,9 +621,16 @@@ static void req_completion(struct nvme_ if (!blk_queue_stopped(req->q)) blk_mq_kick_requeue_list(req->q); spin_unlock_irqrestore(req->q->queue_lock, flags); - return; + goto release_iod; } - req->errors = nvme_error_status(status); + if (req->cmd_type == REQ_TYPE_SPECIAL) { + if (cmd_rq->ctx == CMD_CTX_CANCELLED) + req->errors = -EINTR; + else + req->errors = status; + } else { + req->errors = nvme_error_status(status); + } } else req->errors = 0; diff --cc net/sctp/ipv6.c index e703ff7fed40a,3267a5cbb3e86..05a295b75b33e --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c @@@ -634,8 -634,9 +634,9 @@@ static struct sock *sctp_v6_create_acce struct sock *newsk; struct ipv6_pinfo *newnp, *np = inet6_sk(sk); struct sctp6_sock *newsctp6sk; + struct ipv6_txoptions *opt; - newsk = sk_alloc(sock_net(sk), PF_INET6, GFP_KERNEL, sk->sk_prot); + newsk = sk_alloc(sock_net(sk), PF_INET6, GFP_KERNEL, sk->sk_prot, 0); if (!newsk) goto out;