mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kamal Mostafa <kamal@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Francesco Ruggeri <fruggeri@arista.com>,
	"David S. Miller" <davem@davemloft.net>,
	Kamal Mostafa <kamal@canonical.com>
Subject: [PATCH 3.19.y-ckt 019/164] packet: race condition in packet_bind
Date: Wed,  2 Dec 2015 08:57:50 -0800	[thread overview]
Message-ID: <1449075615-20754-20-git-send-email-kamal@canonical.com> (raw)
In-Reply-To: <1449075615-20754-1-git-send-email-kamal@canonical.com>

3.19.8-ckt11 -stable review patch.  If anyone has any objections, please let me know.

------------------

From: Francesco Ruggeri <fruggeri@aristanetworks.com>

[ Upstream commit 30f7ea1c2b5f5fb7462c5ae44fe2e40cb2d6a474 ]

There is a race conditions between packet_notifier and packet_bind{_spkt}.

It happens if packet_notifier(NETDEV_UNREGISTER) executes between the
time packet_bind{_spkt} takes a reference on the new netdevice and the
time packet_do_bind sets po->ifindex.
In this case the notification can be missed.
If this happens during a dev_change_net_namespace this can result in the
netdevice to be moved to the new namespace while the packet_sock in the
old namespace still holds a reference on it. When the netdevice is later
deleted in the new namespace the deletion hangs since the packet_sock
is not found in the new namespace' &net->packet.sklist.
It can be reproduced with the script below.

This patch makes packet_do_bind check again for the presence of the
netdevice in the packet_sock's namespace after the synchronize_net
in unregister_prot_hook.
More in general it also uses the rcu lock for the duration of the bind
to stop dev_change_net_namespace/rollback_registered_many from
going past the synchronize_net following unlist_netdevice, so that
no NETDEV_UNREGISTER notifications can happen on the new netdevice
while the bind is executing. In order to do this some code from
packet_bind{_spkt} is consolidated into packet_do_dev.

import socket, os, time, sys
proto=7
realDev='em1'
vlanId=400
if len(sys.argv) > 1:
   vlanId=int(sys.argv[1])
dev='vlan%d' % vlanId

os.system('taskset -p 0x10 %d' % os.getpid())

s = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, proto)
os.system('ip link add link %s name %s type vlan id %d' %
          (realDev, dev, vlanId))
os.system('ip netns add dummy')

pid=os.fork()

if pid == 0:
   # dev should be moved while packet_do_bind is in synchronize net
   os.system('taskset -p 0x20000 %d' % os.getpid())
   os.system('ip link set %s netns dummy' % dev)
   os.system('ip netns exec dummy ip link del %s' % dev)
   s.close()
   sys.exit(0)

time.sleep(.004)
try:
   s.bind(('%s' % dev, proto+1))
except:
   print 'Could not bind socket'
   s.close()
   os.system('ip netns del dummy')
   sys.exit(0)

os.waitpid(pid, 0)
s.close()
os.system('ip netns del dummy')
sys.exit(0)

Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 net/packet/af_packet.c | 80 +++++++++++++++++++++++++++++++-------------------
 1 file changed, 49 insertions(+), 31 deletions(-)

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 8da43cb..bfc1880 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -2665,22 +2665,40 @@ static int packet_release(struct socket *sock)
  *	Attach a packet hook.
  */
 
-static int packet_do_bind(struct sock *sk, struct net_device *dev, __be16 proto)
+static int packet_do_bind(struct sock *sk, const char *name, int ifindex,
+			  __be16 proto)
 {
 	struct packet_sock *po = pkt_sk(sk);
 	struct net_device *dev_curr;
 	__be16 proto_curr;
 	bool need_rehook;
+	struct net_device *dev = NULL;
+	int ret = 0;
+	bool unlisted = false;
 
-	if (po->fanout) {
-		if (dev)
-			dev_put(dev);
-
+	if (po->fanout)
 		return -EINVAL;
-	}
 
 	lock_sock(sk);
 	spin_lock(&po->bind_lock);
+	rcu_read_lock();
+
+	if (name) {
+		dev = dev_get_by_name_rcu(sock_net(sk), name);
+		if (!dev) {
+			ret = -ENODEV;
+			goto out_unlock;
+		}
+	} else if (ifindex) {
+		dev = dev_get_by_index_rcu(sock_net(sk), ifindex);
+		if (!dev) {
+			ret = -ENODEV;
+			goto out_unlock;
+		}
+	}
+
+	if (dev)
+		dev_hold(dev);
 
 	proto_curr = po->prot_hook.type;
 	dev_curr = po->prot_hook.dev;
@@ -2688,14 +2706,29 @@ static int packet_do_bind(struct sock *sk, struct net_device *dev, __be16 proto)
 	need_rehook = proto_curr != proto || dev_curr != dev;
 
 	if (need_rehook) {
-		unregister_prot_hook(sk, true);
+		if (po->running) {
+			rcu_read_unlock();
+			__unregister_prot_hook(sk, true);
+			rcu_read_lock();
+			dev_curr = po->prot_hook.dev;
+			if (dev)
+				unlisted = !dev_get_by_index_rcu(sock_net(sk),
+								 dev->ifindex);
+		}
 
 		po->num = proto;
 		po->prot_hook.type = proto;
-		po->prot_hook.dev = dev;
 
-		po->ifindex = dev ? dev->ifindex : 0;
-		packet_cached_dev_assign(po, dev);
+		if (unlikely(unlisted)) {
+			dev_put(dev);
+			po->prot_hook.dev = NULL;
+			po->ifindex = -1;
+			packet_cached_dev_reset(po);
+		} else {
+			po->prot_hook.dev = dev;
+			po->ifindex = dev ? dev->ifindex : 0;
+			packet_cached_dev_assign(po, dev);
+		}
 	}
 	if (dev_curr)
 		dev_put(dev_curr);
@@ -2703,7 +2736,7 @@ static int packet_do_bind(struct sock *sk, struct net_device *dev, __be16 proto)
 	if (proto == 0 || !need_rehook)
 		goto out_unlock;
 
-	if (!dev || (dev->flags & IFF_UP)) {
+	if (!unlisted && (!dev || (dev->flags & IFF_UP))) {
 		register_prot_hook(sk);
 	} else {
 		sk->sk_err = ENETDOWN;
@@ -2712,9 +2745,10 @@ static int packet_do_bind(struct sock *sk, struct net_device *dev, __be16 proto)
 	}
 
 out_unlock:
+	rcu_read_unlock();
 	spin_unlock(&po->bind_lock);
 	release_sock(sk);
-	return 0;
+	return ret;
 }
 
 /*
@@ -2726,8 +2760,6 @@ static int packet_bind_spkt(struct socket *sock, struct sockaddr *uaddr,
 {
 	struct sock *sk = sock->sk;
 	char name[15];
-	struct net_device *dev;
-	int err = -ENODEV;
 
 	/*
 	 *	Check legality
@@ -2737,19 +2769,13 @@ static int packet_bind_spkt(struct socket *sock, struct sockaddr *uaddr,
 		return -EINVAL;
 	strlcpy(name, uaddr->sa_data, sizeof(name));
 
-	dev = dev_get_by_name(sock_net(sk), name);
-	if (dev)
-		err = packet_do_bind(sk, dev, pkt_sk(sk)->num);
-	return err;
+	return packet_do_bind(sk, name, 0, pkt_sk(sk)->num);
 }
 
 static int packet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
 {
 	struct sockaddr_ll *sll = (struct sockaddr_ll *)uaddr;
 	struct sock *sk = sock->sk;
-	struct net_device *dev = NULL;
-	int err;
-
 
 	/*
 	 *	Check legality
@@ -2760,16 +2786,8 @@ static int packet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len
 	if (sll->sll_family != AF_PACKET)
 		return -EINVAL;
 
-	if (sll->sll_ifindex) {
-		err = -ENODEV;
-		dev = dev_get_by_index(sock_net(sk), sll->sll_ifindex);
-		if (dev == NULL)
-			goto out;
-	}
-	err = packet_do_bind(sk, dev, sll->sll_protocol ? : pkt_sk(sk)->num);
-
-out:
-	return err;
+	return packet_do_bind(sk, NULL, sll->sll_ifindex,
+			      sll->sll_protocol ? : pkt_sk(sk)->num);
 }
 
 static struct proto packet_proto = {
-- 
1.9.1


  parent reply	other threads:[~2015-12-02 17:00 UTC|newest]

Thread overview: 170+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-02 16:57 [3.19.y-ckt stable] Linux 3.19.8-ckt11 stable review Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 001/164] x86/setup: Extend low identity map to cover whole kernel range Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 002/164] x86/setup: Fix low identity map for >= 2GB " Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 003/164] drm/radeon: add quirk for MSI R7 370 Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 004/164] drm/radeon: add quirk for ASUS " Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 005/164] drm/radeon: fix quirk for MSI R7 370 Armor 2X Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 006/164] irda: precedence bug in irlmp_seq_hb_idx() Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 007/164] tipc: allow non-linear first fragment buffer Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 008/164] qmi_wwan: add Sierra Wireless MC74xx/EM74xx Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 009/164] macvtap: unbreak receiving of gro skb with frag list Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 010/164] RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 011/164] stmmac: Correctly report PTP capabilities Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 012/164] ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 013/164] qmi_wwan: fix entry for HP lt4112 LTE/HSPA+ Gobi 4G Module Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 014/164] sit: fix sit0 percpu double allocations Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 015/164] sfc: push partner queue for skb->xmit_more Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 016/164] net: avoid NULL deref in inet_ctl_sock_destroy() Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 017/164] ipv6: clean up dev_snmp6 proc entry when we fail to initialize inet6_dev Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 018/164] ipv4: disable BH when changing ip local port range Kamal Mostafa
2015-12-02 16:57 ` Kamal Mostafa [this message]
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 020/164] net: fix a race in dst_release() Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 021/164] HID: core: Avoid uninitialized buffer access Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 022/164] [media] v4l2-compat-ioctl32: fix alignment for ARM64 Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 023/164] net: mvneta: Fix CPU_MAP registers initialisation Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 024/164] mtd: mtdpart: fix add_mtd_partitions error path Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 025/164] fs/proc, core/debug: Don't expose absolute kernel addresses via wchan Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 026/164] [media] v4l2-ctrls: arrays are also considered compound controls Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 027/164] [media] media: v4l2-ctrls: Fix 64bit support in get_ctrl() Kamal Mostafa
2015-12-02 16:57 ` [PATCH 3.19.y-ckt 028/164] ARM: tegra: paz00: use con_id's to refer GPIO's in gpiod_lookup table Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 029/164] ARM: 8426/1: dma-mapping: add missing range check in dma_mmap() Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 030/164] ARM: 8427/1: dma-mapping: add support for offset parameter " Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 031/164] integrity: prevent loading untrusted certificates on the IMA trusted keyring Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 032/164] usb: dwc3: pci: Add the Synopsys HAPS AXI Product ID Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 033/164] usb: dwc3: pci: Add the PCI Product ID for Synopsys USB 3.1 Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 034/164] usb: dwc3: Support Synopsys USB 3.1 IP Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 035/164] usb: dwc3: Add dis_enblslpm_quirk Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 036/164] spi: ti-qspi: Fix data corruption seen on r/w stress test Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 037/164] nfsd: serialize state seqid morphing operations Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 038/164] lockd: create NSM handles per net namespace Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 039/164] Btrfs: fix file corruption and data loss after cloning inline extents Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 040/164] ARM: common: edma: Fix channel parameter for irq callbacks Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 041/164] iommu/vt-d: Fix ATSR handling for Root-Complex integrated endpoints Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 042/164] Btrfs: fix truncation of compressed and inlined extents Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 043/164] jbd2: fix checkpoint list cleanup Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 044/164] ext4: fix potential use after free in __ext4_journal_stop Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 045/164] [PATCH] fix calculation of meta_bg descriptor backups Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 046/164] ext4, jbd2: ensure entering into panic after recording an error in superblock Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 047/164] vTPM: fix memory allocation flag for rtce buffer at kernel boot Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 048/164] spi: dw: explicitly free IRQ handler in dw_spi_remove_host() Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 049/164] [media] media: vb2 dma-contig: Fully cache synchronise buffers in prepare and finish Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 050/164] [media] media: vb2 dma-sg: " Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 051/164] [media] media/v4l2-ctrls: fix setting autocluster to manual with VIDIOC_S_CTRL Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 052/164] Bluetooth: hidp: fix device disconnect on idle timeout Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 053/164] Bluetooth: ath3k: Add new AR3012 0930:021c id Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 054/164] Bluetooth: ath3k: Add support of AR3012 0cf3:817b device Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 055/164] Bluetooth: Fix removing connection parameters when unpairing Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 056/164] spi: atmel: Fix DMA-setup for transfers with more than 8 bits per word Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 057/164] USB: qcserial: add Sierra Wireless MC74xx/EM74xx Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 058/164] staging: rtl8712: Add device ID for Sitecom WLA2100 Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 059/164] ACPI: Use correct IRQ when uninstalling ACPI interrupt handler Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 060/164] ACPI: Using correct irq when waiting for events Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 061/164] ACPI / PM: Fix incorrect wakeup IRQ setting during suspend-to-idle Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 062/164] ALSA: hda/realtek - Dell XPS one ALC3260 speaker no sound after resume back Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 063/164] ALSA: hda - Disable 64bit address for Creative HDA controllers Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 064/164] MAINTAINERS: Add public mailing list for ARC Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 065/164] megaraid_sas: Expose TAPE drives unconditionally Kamal Mostafa
2015-12-02 17:09   ` Sumit Saxena
2015-12-02 17:39     ` Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 066/164] megaraid_sas: Do not use PAGE_SIZE for max_sectors Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 067/164] KVM: s390: SCA must not cross page boundaries Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 068/164] arm64: Fix compat register mappings Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 069/164] can: Use correct type in sizeof() in nla_put() Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 070/164] mtd: blkdevs: fix potential deadlock + lockdep warnings Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 071/164] Revert "dm mpath: fix stalls when handling invalid ioctls" Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 072/164] drm/i915: add quirk to enable backlight on Dell Chromebook 11 (2015) Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 073/164] crypto: algif_hash - Only export and import on sockets with data Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 074/164] xtensa: fixes for configs without loop option Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 075/164] PCI: spear: Fix dw_pcie_cfg_read/write() usage Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 076/164] megaraid_sas : SMAP restriction--do not access user memory from IOCTL code Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 077/164] mac80211: fix divide by zero when NOA update Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 078/164] nl80211: Fix potential memory leak from parse_acl_data Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 079/164] mac80211: allow null chandef in tracing Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 080/164] xtensa: fix secondary core boot in SMP Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 081/164] recordmcount: Fix endianness handling bug for nop_mcount Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 082/164] recordmcount: arm64: Replace the ignored mcount call into nop Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 083/164] KVM: VMX: fix SMEP and SMAP without EPT Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 084/164] thermal: exynos: Fix unbalanced regulator disable on probe failure Kamal Mostafa
2015-12-09 13:24   ` Krzysztof Kozlowski
2015-12-10  0:49     ` Krzysztof Kozlowski
2015-12-10 16:26       ` Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 085/164] ALSA: hda - Apply pin fixup for HP ProBook 6550b Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 086/164] ALSA: hda - Add Intel Lewisburg device IDs Audio Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 087/164] firewire: ohci: fix JMicron JMB38x IT context discovery Kamal Mostafa
2015-12-02 16:58 ` [PATCH 3.19.y-ckt 088/164] scsi: restart list search after unlock in scsi_remove_target Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 089/164] mm: slab: only move management objects off-slab for sizes larger than KMALLOC_MIN_SIZE Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 090/164] memcg: fix thresholds for 32b architectures Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 091/164] arm64: bpf: fix div-by-zero case Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 092/164] arm64: bpf: fix mod-by-zero case Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 093/164] Input: elantech - add Fujitsu Lifebook U745 to force crc_enabled Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 094/164] proc: actually make proc_fd_permission() thread-friendly Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 095/164] printk: prevent userland from spoofing kernel messages Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 096/164] fs, seqfile: always allow oom killer Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 097/164] x86/cpu: Call verify_cpu() after having entered long mode too Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 098/164] parisc: Fixes and cleanups in kernel uapi header files Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 099/164] Btrfs: fix race leading to incorrect item deletion when dropping extents Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 100/164] Btrfs: fix race leading to BUG_ON when running delalloc for nodatacow Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 101/164] ALSA: usb: Add native DSD support for Aune X1S Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 102/164] perf: Fix inherited events vs. tracepoint filters Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 103/164] scsi_sysfs: Fix queue_ramp_up_period return code Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 104/164] Btrfs: fix race when listing an inode's xattrs Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 105/164] ideapad-laptop: Add Lenovo Yoga 900 to no_hw_rfkill dmi list Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 106/164] storvsc: Don't set the SRB_FLAGS_QUEUE_ACTION_ENABLE flag Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 107/164] KVM: x86: work around infinite loop in microcode when #AC is delivered Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 108/164] KVM: svm: unconditionally intercept #DB Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 109/164] drivers: of: of_reserved_mem: fixup the alignment with CMA setup Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 110/164] drm/ast: Initialized data needed to map fbdev memory Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 111/164] FS-Cache: Increase reference of parent after registering, netfs success Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 112/164] FS-Cache: Don't override netfs's primary_index if registering failed Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 113/164] FS-Cache: Handle a write to the page immediately beyond the EOF marker Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 114/164] binfmt_elf: Don't clobber passed executable's file header Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 115/164] fs/pipe.c: return error code rather than 0 in pipe_write() Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 116/164] ALSA: hda/hdmi - apply Skylake fix-ups to Broxton display codec Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 117/164] crypto: crc32c-pclmul - use .rodata instead of .rotata Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 118/164] wm831x_power: Use IRQF_ONESHOT to request threaded IRQs Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 119/164] mwifiex: fix mwifiex_rdeeprom_read() Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 120/164] dmaengine: dw: convert to __ffs() Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 121/164] tcp: call sk_mark_napi_id() on the child, not the listener Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 122/164] vivid: Fix iteration in driver removal path Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 123/164] usb: ehci-orion: fix probe for !GENERIC_PHY Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 124/164] devres: fix a for loop bounds check Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 125/164] netfilter: remove dead code Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 126/164] ipv4: Fix ip_queue_xmit to pass sk into ip_local_out_sk Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 127/164] i2c: img-scb: enable fencing for all versions of the ip Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 128/164] i2c: img-scb: do dummy writes before fifo access Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 129/164] i2c: img-scb: use DIV_ROUND_UP to round divisor values Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 130/164] i2c: img-scb: fix LOW and HIGH period values for the SCL clock Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 131/164] i2c: img-scb: Clear line and interrupt status before starting a transfer Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 132/164] i2c: img-scb: verify support for requested bit rate Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 133/164] hsi: fix double kfree Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 134/164] hsi: omap_ssi_port: Prevent warning if cawake_gpio is not defined Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 135/164] regulator: arizona-ldo1: Fix handling of GPIO 0 Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 136/164] ARM: pxa: remove incorrect __init annotation on pxa27x_set_pwrmode Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 137/164] ALSA: fireworks/bebob/oxfw/dice: enable to make as built-in Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 138/164] drm: Fix return value of drm_framebuffer_init() Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 139/164] ALSA: dice: correct variable types for __be32 data Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 140/164] ALSA: dice: assign converted data to the same type of variable Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 141/164] ALSA: fireworks: use u32 type for be32_to_cpup() macro Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 142/164] ALSA: bebob: use correct type for __be32 data Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 143/164] sunrpc: avoid warning in gss_key_timeout Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 144/164] clk: versatile-icst: fix memory leak Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 145/164] MIPS: atomic: Fix comment describing atomic64_add_unless's return value Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 146/164] mfd: twl6040: Fix deferred probe handling for clk32k Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 147/164] DT: mmc: sh_mmcif: fix "compatible" property text Kamal Mostafa
2015-12-02 16:59 ` [PATCH 3.19.y-ckt 148/164] netfilter: nf_nat_redirect: add missing NULL pointer check Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 149/164] of/fdt: fix error checking for earlycon address Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 150/164] netfilter: nfnetlink: don't probe module if it exists Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 151/164] sparc/PCI: Add mem64 resource parsing for root bus Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 152/164] xprtrdma: Re-arm after missed events Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 153/164] ceph: fix message length computation Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 154/164] tracepoints: Fix documentation of RCU lockdep checks Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 155/164] ipv6: fix tunnel error handling Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 156/164] perf trace: Fix documentation for -i Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 157/164] bonding: fix panic on non-ARPHRD_ETHER enslave failure Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 158/164] rtc: ds1307: Fix alarm programming for mcp794xx Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 159/164] mac80211: fix driver RSSI event calculations Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 160/164] packet: fix match_fanout_group() Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 161/164] tcp: apply Kern's check on RTTs used for congestion control Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 162/164] net: fix percpu memory leaks Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 163/164] TPM: Avoid reference to potentially freed memory Kamal Mostafa
2015-12-02 17:00 ` [PATCH 3.19.y-ckt 164/164] [3.19-stable only] fib_rules: Fix dump_rules() not to exit early Kamal Mostafa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1449075615-20754-20-git-send-email-kamal@canonical.com \
    --to=kamal@canonical.com \
    --cc=davem@davemloft.net \
    --cc=fruggeri@arista.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®