public inbox for stable@vger.kernel.org
 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: Eric Dumazet <edumazet@google.com>,
	Mircea Gherzan <mgherzan@gmail.com>,
	Daniel Borkmann <dxchgb@gmail.com>,
	Hannes Frederic Sowa <hannes@stressinduktion.org>,
	Matt Evans <matt@ozlabs.org>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	"David S. Miller" <davem@davemloft.net>,
	Kamal Mostafa <kamal@canonical.com>
Subject: [PATCH 3.8 117/124] bpf: do not use reciprocal divide
Date: Mon, 10 Feb 2014 11:40:57 -0800	[thread overview]
Message-ID: <1392061264-28124-118-git-send-email-kamal@canonical.com> (raw)
In-Reply-To: <1392061264-28124-1-git-send-email-kamal@canonical.com>

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

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

From: Eric Dumazet <edumazet@google.com>

[ Upstream commit aee636c4809fa54848ff07a899b326eb1f9987a2 ]

At first Jakub Zawadzki noticed that some divisions by reciprocal_divide
were not correct. (off by one in some cases)
http://www.wireshark.org/~darkjames/reciprocal-buggy.c

He could also show this with BPF:
http://www.wireshark.org/~darkjames/set-and-dump-filter-k-bug.c

The reciprocal divide in linux kernel is not generic enough,
lets remove its use in BPF, as it is not worth the pain with
current cpus.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
Cc: Mircea Gherzan <mgherzan@gmail.com>
Cc: Daniel Borkmann <dxchgb@gmail.com>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: Matt Evans <matt@ozlabs.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 arch/arm/net/bpf_jit_32.c       |  6 +++---
 arch/powerpc/net/bpf_jit_comp.c |  7 ++++---
 arch/s390/net/bpf_jit_comp.c    | 17 ++++++++++++-----
 arch/sparc/net/bpf_jit_comp.c   | 17 ++++++++++++++---
 arch/x86/net/bpf_jit_comp.c     | 14 ++++++++++----
 net/core/filter.c               | 30 ++----------------------------
 6 files changed, 45 insertions(+), 46 deletions(-)

diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
index a34f1e2..373656a 100644
--- a/arch/arm/net/bpf_jit_32.c
+++ b/arch/arm/net/bpf_jit_32.c
@@ -630,10 +630,10 @@ load_ind:
 			emit(ARM_MUL(r_A, r_A, r_X), ctx);
 			break;
 		case BPF_S_ALU_DIV_K:
-			/* current k == reciprocal_value(userspace k) */
+			if (k == 1)
+				break;
 			emit_mov_i(r_scratch, k, ctx);
-			/* A = top 32 bits of the product */
-			emit(ARM_UMULL(r_scratch, r_A, r_A, r_scratch), ctx);
+			emit_udiv(r_A, r_A, r_scratch, ctx);
 			break;
 		case BPF_S_ALU_DIV_X:
 			update_on_xread(ctx);
diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index e834f1e..8a2284c 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -209,10 +209,11 @@ static int bpf_jit_build_body(struct sk_filter *fp, u32 *image,
 			}
 			PPC_DIVWU(r_A, r_A, r_X);
 			break;
-		case BPF_S_ALU_DIV_K: /* A = reciprocal_divide(A, K); */
+		case BPF_S_ALU_DIV_K: /* A /= K */
+			if (K == 1)
+				break;
 			PPC_LI32(r_scratch1, K);
-			/* Top 32 bits of 64bit result -> A */
-			PPC_MULHWU(r_A, r_A, r_scratch1);
+			PPC_DIVWU(r_A, r_A, r_scratch1);
 			break;
 		case BPF_S_ALU_AND_X:
 			ctx->seen |= SEEN_XREG;
diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
index bb28441..fd01c59 100644
--- a/arch/s390/net/bpf_jit_comp.c
+++ b/arch/s390/net/bpf_jit_comp.c
@@ -335,11 +335,13 @@ static int bpf_jit_insn(struct bpf_jit *jit, struct sock_filter *filter,
 		/* dr %r4,%r12 */
 		EMIT2(0x1d4c);
 		break;
-	case BPF_S_ALU_DIV_K: /* A = reciprocal_divide(A, K) */
-		/* m %r4,<d(K)>(%r13) */
-		EMIT4_DISP(0x5c40d000, EMIT_CONST(K));
-		/* lr %r5,%r4 */
-		EMIT2(0x1854);
+	case BPF_S_ALU_DIV_K: /* A /= K */
+		if (K == 1)
+			break;
+		/* lhi %r4,0 */
+		EMIT4(0xa7480000);
+		/* d %r4,<d(K)>(%r13) */
+		EMIT4_DISP(0x5d40d000, EMIT_CONST(K));
 		break;
 	case BPF_S_ALU_MOD_X: /* A %= X */
 		jit->seen |= SEEN_XREG | SEEN_RET0;
@@ -355,6 +357,11 @@ static int bpf_jit_insn(struct bpf_jit *jit, struct sock_filter *filter,
 		EMIT2(0x1854);
 		break;
 	case BPF_S_ALU_MOD_K: /* A %= K */
+		if (K == 1) {
+			/* lhi %r5,0 */
+			EMIT4(0xa7580000);
+			break;
+		}
 		/* lhi %r4,0 */
 		EMIT4(0xa7480000);
 		/* d %r4,<d(K)>(%r13) */
diff --git a/arch/sparc/net/bpf_jit_comp.c b/arch/sparc/net/bpf_jit_comp.c
index 3109ca6..d844747 100644
--- a/arch/sparc/net/bpf_jit_comp.c
+++ b/arch/sparc/net/bpf_jit_comp.c
@@ -497,9 +497,20 @@ void bpf_jit_compile(struct sk_filter *fp)
 			case BPF_S_ALU_MUL_K:	/* A *= K */
 				emit_alu_K(MUL, K);
 				break;
-			case BPF_S_ALU_DIV_K:	/* A /= K */
-				emit_alu_K(MUL, K);
-				emit_read_y(r_A);
+			case BPF_S_ALU_DIV_K:	/* A /= K with K != 0*/
+				if (K == 1)
+					break;
+				emit_write_y(G0);
+#ifdef CONFIG_SPARC32
+				/* The Sparc v8 architecture requires
+				 * three instructions between a %y
+				 * register write and the first use.
+				 */
+				emit_nop();
+				emit_nop();
+				emit_nop();
+#endif
+				emit_alu_K(DIV, K);
 				break;
 			case BPF_S_ALU_DIV_X:	/* A /= X; */
 				emit_cmpi(r_X, 0);
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index d11a470..5e9c43f 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -303,15 +303,21 @@ void bpf_jit_compile(struct sk_filter *fp)
 				EMIT2(0x89, 0xd0);	/* mov %edx,%eax */
 				break;
 			case BPF_S_ALU_MOD_K: /* A %= K; */
+				if (K == 1) {
+					CLEAR_A();
+					break;
+				}
 				EMIT2(0x31, 0xd2);	/* xor %edx,%edx */
 				EMIT1(0xb9);EMIT(K, 4);	/* mov imm32,%ecx */
 				EMIT2(0xf7, 0xf1);	/* div %ecx */
 				EMIT2(0x89, 0xd0);	/* mov %edx,%eax */
 				break;
-			case BPF_S_ALU_DIV_K: /* A = reciprocal_divide(A, K); */
-				EMIT3(0x48, 0x69, 0xc0); /* imul imm32,%rax,%rax */
-				EMIT(K, 4);
-				EMIT4(0x48, 0xc1, 0xe8, 0x20); /* shr $0x20,%rax */
+			case BPF_S_ALU_DIV_K: /* A /= K */
+				if (K == 1)
+					break;
+				EMIT2(0x31, 0xd2);	/* xor %edx,%edx */
+				EMIT1(0xb9);EMIT(K, 4);	/* mov imm32,%ecx */
+				EMIT2(0xf7, 0xf1);	/* div %ecx */
 				break;
 			case BPF_S_ALU_AND_X:
 				seen |= SEEN_XREG;
diff --git a/net/core/filter.c b/net/core/filter.c
index c23543c..9a8d5e8 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -36,7 +36,6 @@
 #include <asm/uaccess.h>
 #include <asm/unaligned.h>
 #include <linux/filter.h>
-#include <linux/reciprocal_div.h>
 #include <linux/ratelimit.h>
 #include <linux/seccomp.h>
 #include <linux/if_vlan.h>
@@ -166,7 +165,7 @@ unsigned int sk_run_filter(const struct sk_buff *skb,
 			A /= X;
 			continue;
 		case BPF_S_ALU_DIV_K:
-			A = reciprocal_divide(A, K);
+			A /= K;
 			continue;
 		case BPF_S_ALU_MOD_X:
 			if (X == 0)
@@ -549,11 +548,6 @@ int sk_chk_filter(struct sock_filter *filter, unsigned int flen)
 		/* Some instructions need special checks */
 		switch (code) {
 		case BPF_S_ALU_DIV_K:
-			/* check for division by zero */
-			if (ftest->k == 0)
-				return -EINVAL;
-			ftest->k = reciprocal_value(ftest->k);
-			break;
 		case BPF_S_ALU_MOD_K:
 			/* check for division by zero */
 			if (ftest->k == 0)
@@ -835,27 +829,7 @@ static void sk_decode_filter(struct sock_filter *filt, struct sock_filter *to)
 	to->code = decodes[code];
 	to->jt = filt->jt;
 	to->jf = filt->jf;
-
-	if (code == BPF_S_ALU_DIV_K) {
-		/*
-		 * When loaded this rule user gave us X, which was
-		 * translated into R = r(X). Now we calculate the
-		 * RR = r(R) and report it back. If next time this
-		 * value is loaded and RRR = r(RR) is calculated
-		 * then the R == RRR will be true.
-		 *
-		 * One exception. X == 1 translates into R == 0 and
-		 * we can't calculate RR out of it with r().
-		 */
-
-		if (filt->k == 0)
-			to->k = 1;
-		else
-			to->k = reciprocal_value(filt->k);
-
-		BUG_ON(reciprocal_value(to->k) != filt->k);
-	} else
-		to->k = filt->k;
+	to->k = filt->k;
 }
 
 int sk_get_filter(struct sock *sk, struct sock_filter __user *ubuf, unsigned int len)
-- 
1.8.3.2


  parent reply	other threads:[~2014-02-10 19:40 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-10 19:39 [3.8.y.z extended stable] Linux 3.8.13.18 stable review Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 001/124] KVM: s390: kvm/sigp.c: fix memory leakage Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 002/124] KVM: s390: Always store status during SIGP STOP_AND_STORE_STATUS Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 003/124] KVM: s390: fix diagnose code extraction Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 004/124] rtlwifi: rtl8192cu: Fix W=1 build warning Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 005/124] rtlwifi: rtl8192cu: Add new firmware Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 006/124] rtlwifi: Set the link state Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 007/124] rtlwifi: rtl8192cu: Fix duplicate if test Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 008/124] rtlwifi: rtl8192cu: Fix some code in RF handling Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 009/124] NFSv4: OPEN must handle the NFS4ERR_IO return code correctly Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 010/124] parport: parport_pc: remove double PCI ID for NetMos Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 011/124] staging: vt6656: [BUG] BBvUpdatePreEDThreshold Always set sensitivity on bScanning Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 012/124] [SCSI] bfa: Chinook quad port 16G FC HBA claim issue Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 013/124] usb: option: add new zte 3g modem pids to option driver Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 014/124] [media] dib8000: make 32 bits read atomic Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 015/124] serial: add support for 200 v3 series Titan card Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 016/124] usb: xhci: Check for XHCI_PLAT in xhci_cleanup_msix() Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 017/124] [media] anysee: fix non-working E30 Combo Plus DVB-T Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 018/124] x86/efi: Fix off-by-one bug in EFI Boot Services reservation Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 019/124] perf kvm: Fix kvm report without guestmount Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 020/124] rtc-cmos: Add an alarm disable quirk Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 021/124] slub: Fix calculation of cpu slabs Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 022/124] mtd: mxc_nand: remove duplicated ecc_stats counting Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 023/124] xen/pvhvm: If xen_platform_pci=0 is set don't blow up (v4) Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 024/124] USB: pl2303: fix data corruption on termios updates Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 025/124] USB: serial: add support for iBall 3.5G connect usb modem Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 026/124] USB: Nokia 502 is an unusual device Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 027/124] USB: cypress_m8: fix ring-indicator detection and reporting Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 028/124] ALSA: rme9652: fix a missing comma in channel_map_9636_ds[] Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 029/124] SUNRPC: don't map EKEYEXPIRED to EACCES in call_refreshresult Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 030/124] sunrpc: Fix infinite loop in RPC state machine Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 031/124] tpm/tpm_ppi: Do not compare strcmp(a,b) == -1 Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 032/124] dm thin: initialize dm_thin_new_mapping returned by get_next_mapping Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 033/124] dm thin: fix discard support to a previously shared block Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 034/124] dm thin: fix set_pool_mode exposed pool operation races Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 035/124] SELinux: Fix memory leak upon loading policy Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 036/124] drm/radeon: warn users when hw_i2c is enabled (v2) Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 037/124] USB: fix race between hub_disconnect and recursively_mark_NOTATTACHED Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 038/124] ext4: avoid clearing beyond i_blocks when truncating an inline data file Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 039/124] USB: ftdi_sio: added CS5 quirk for broken smartcard readers Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 040/124] dm: wait until embedded kobject is released before destroying a device Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 041/124] dm space map common: make sure new space is used during extend Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 042/124] ASoC: adau1701: Fix ADAU1701_SEROCTL_WORD_LEN_16 constant Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 043/124] radeon/pm: Guard access to rdev->pm.power_state array Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 044/124] drm/radeon: skip colorbuffer checking if COLOR_INFO.FORMAT is set to INVALID Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 045/124] staging: r8712u: Set device type to wlan Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 046/124] ALSA: Enable CONFIG_ZONE_DMA for smaller PCI DMA masks Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 047/124] [media] media: s5p_mfc: remove s5p_mfc_get_node_type() function Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 048/124] mmc: atmel-mci: fix timeout errors in SDIO mode when using DMA Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 049/124] ftrace: Check module functions being traced on reload Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 050/124] ftrace: Fix function graph with loading of modules Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 051/124] ftrace: Use schedule_on_each_cpu() as a heavy synchronize_sched() Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 052/124] ftrace: Fix synchronization location disabling and freeing ftrace_ops Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 053/124] rtlwifi: rtl8192cu: Add new device ID Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 054/124] mwifiex: add missing endian conversion for fw_tsf Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 055/124] b43: Fix lockdep splat Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 056/124] b43: Fix unload oops if firmware is not available Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 057/124] b43legacy: " Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 058/124] nfs4.1: properly handle ENOTSUP in SECINFO_NO_NAME Kamal Mostafa
2014-02-10 19:39 ` [PATCH 3.8 059/124] usb: ehci: add freescale imx28 special write register method Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 060/124] audit: reset audit backlog wait time after error recovery Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 061/124] audit: correct a type mismatch in audit_syscall_exit() Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 062/124] xtensa: xtfpga: fix definitions of platform devices Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 063/124] dm sysfs: fix a module unload race Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 064/124] KVM: x86: limit PIT timer frequency Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 065/124] ata: sata_mv: introduce compatible string "marvell, armada-370-sata" Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 066/124] ata: sata_mv: fix disk hotplug for Armada 370/XP SoCs Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 067/124] arm: mvebu: fix length of SATA registers area in .dtsi Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 068/124] ARM: mvebu: update the SATA compatible string for Armada 370/XP Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 069/124] md/raid5: fix long-standing problem with bitmap handling on write failure Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 070/124] x86: Add check for number of available vectors before CPU down Kamal Mostafa
     [not found]   ` <52F973E0.7030400@redhat.com>
2014-02-11 22:29     ` Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 071/124] libata: disable LPM for some WD SATA-I devices Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 072/124] mmc: sdhci: fix lockdep error in tuning routine Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 073/124] turbostat: Don't put unprocessed uapi headers in the include path Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 074/124] turbostat: Use GCC's CPUID functions to support PIC Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 075/124] drm/radeon: disable ss on DP for DCE3.x Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 076/124] nfs4: fix discover_server_trunking use after free Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 077/124] drm/radeon: fix surface sync in fence on cayman (v2) Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 078/124] drm/radeon: set the full cache bit for fences on r7xx+ Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 079/124] mfd: max77686: Fix regmap resource leak on driver remove Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 080/124] hp_accel: Add a new PnP ID HPQ6007 for new HP laptops Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 081/124] ASoC: wm5110: Extend SYSCLK patch file for rev D Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 082/124] intel-iommu: fix off-by-one in pagetable freeing Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 083/124] arch/sh/kernel/kgdb.c: add missing #include <linux/sched.h> Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 084/124] fuse: fix pipe_buf_operations Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 085/124] drm/cirrus: correct register values for 16bpp Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 086/124] IB/qib: Fix QP check when looping back to/from QP1 Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 087/124] ore: Fix wrong math in allocation of per device BIO Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 088/124] drm/i915: VLV2 - Fix hotplug detect bits Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 089/124] b43: fix the wrong assignment of status.freq in b43_rx() Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 090/124] rtc: max8907: weekday encoding fixes Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 091/124] vfs: Is mounted should be testing mnt_ns for NULL or error Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 092/124] Btrfs: handle EAGAIN case properly in btrfs_drop_snapshot() Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 093/124] btrfs: restrict snapshotting to own subvolumes Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 094/124] ACPI / init: Flag use of ACPI and ACPI idioms for power supplies to regulator API Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 095/124] drm/ast: do not attempt to acquire a reservation while in an interrupt handler Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 096/124] drm/cirrus: " Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 097/124] drm/mgag200: " Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 098/124] drm: ast,cirrus,mgag200: use drm_can_sleep Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 099/124] powerpc: Make sure "cache" directory is removed when offlining cpu Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 100/124] drm/radeon/DCE4+: clear bios scratch dpms bit (v2) Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 101/124] mm/page-writeback.c: fix dirty_balance_reserve subtraction from dirtyable memory Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 102/124] mm/page-writeback.c: do not count anon pages as " Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 103/124] mm: numa: initialise numa balancing after jump label initialisation Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 104/124] target/iscsi: Fix network portal creation race Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 105/124] mm/mempolicy.c: fix mempolicy printing in numa_maps Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 106/124] mm, oom: base root bonus on current usage Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 107/124] alpha: fix broken network checksum Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 108/124] hpfs: remember free space Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 109/124] drm/nouveau/bios: fix offset calculation for BMPv1 bioses Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 110/124] e752x_edac: Fix pci_dev usage count Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 111/124] bnx2x: fix DMA unmapping of TSO split BDs Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 112/124] inet_diag: fix inet_diag_dump_icsk() timewait socket state logic Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 113/124] ieee802154: Fix memory leak in ieee802154_add_iface() Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 114/124] net: avoid reference counter overflows on fib_rules in multicast forwarding Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 115/124] net,via-rhine: Fix tx_timeout handling Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 116/124] tcp: metrics: Avoid duplicate entries with the same destination-IP Kamal Mostafa
2014-02-10 19:40 ` Kamal Mostafa [this message]
2014-02-10 19:40 ` [PATCH 3.8 118/124] s390/bpf,jit: fix 32 bit divisions, use unsigned divide instructions Kamal Mostafa
2014-02-10 19:40 ` [PATCH 3.8 119/124] fib_frontend: fix possible NULL pointer dereference Kamal Mostafa
2014-02-10 19:41 ` [PATCH 3.8 120/124] net: Fix memory leak if TPROXY used with TCP early demux Kamal Mostafa
2014-02-10 19:41 ` [PATCH 3.8 121/124] xen-netfront: fix resource leak in netfront Kamal Mostafa
2014-02-10 19:41 ` [PATCH 3.8 122/124] sit: fix double free of fb_tunnel_dev on exit Kamal Mostafa
2014-02-10 19:41 ` [PATCH 3.8 123/124] Revert "ip6tnl: fix use after free of fb_tnl_dev" Kamal Mostafa
2014-02-10 19:41 ` [PATCH 3.8 124/124] ip6tnl: fix double free of fb_tnl_dev on exit 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=1392061264-28124-118-git-send-email-kamal@canonical.com \
    --to=kamal@canonical.com \
    --cc=davem@davemloft.net \
    --cc=dxchgb@gmail.com \
    --cc=edumazet@google.com \
    --cc=hannes@stressinduktion.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matt@ozlabs.org \
    --cc=mgherzan@gmail.com \
    --cc=schwidefsky@de.ibm.com \
    --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