From 0a7b0b750bbf4f8d379bb5fd1bd355afafe5e333 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Wed, 4 Apr 2012 10:06:36 -0700 Subject: [PATCH] 3.0-stable patches added patches: net-usb-cdc_eem-fix-mtu.patch rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immediate-operand-of-and.patch --- queue-3.0/net-usb-cdc_eem-fix-mtu.patch | 36 +++++++++++++++++ ...x-memcpy-bug-in-rose_set_mac_address.patch | 39 +++++++++++++++++++ queue-3.0/series | 3 ++ ...-the-16-bit-immediate-operand-of-and.patch | 33 ++++++++++++++++ 4 files changed, 111 insertions(+) create mode 100644 queue-3.0/net-usb-cdc_eem-fix-mtu.patch create mode 100644 queue-3.0/rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch create mode 100644 queue-3.0/series create mode 100644 queue-3.0/x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immediate-operand-of-and.patch diff --git a/queue-3.0/net-usb-cdc_eem-fix-mtu.patch b/queue-3.0/net-usb-cdc_eem-fix-mtu.patch new file mode 100644 index 00000000000..f98dc2a3421 --- /dev/null +++ b/queue-3.0/net-usb-cdc_eem-fix-mtu.patch @@ -0,0 +1,36 @@ +From 8571d69919724723b3b66f4566b29424bc9eb9cf Mon Sep 17 00:00:00 2001 +From: Rabin Vincent +Date: Thu, 29 Mar 2012 07:15:15 +0000 +Subject: net: usb: cdc_eem: fix mtu + + +From: Rabin Vincent + +[ Upstream commit 78fb72f7936c01d5b426c03a691eca082b03f2b9 ] + +Make CDC EEM recalculate the hard_mtu after adjusting the +hard_header_len. + +Without this, usbnet adjusts the MTU down to 1494 bytes, and the host is +unable to receive standard 1500-byte frames from the device. + +Tested with the Linux USB Ethernet gadget. + +Cc: Oliver Neukum +Signed-off-by: Rabin Vincent +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/usb/cdc_eem.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/usb/cdc_eem.c ++++ b/drivers/net/usb/cdc_eem.c +@@ -93,6 +93,7 @@ static int eem_bind(struct usbnet *dev, + /* no jumbogram (16K) support for now */ + + dev->net->hard_header_len += EEM_HEAD + ETH_FCS_LEN; ++ dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; + + return 0; + } diff --git a/queue-3.0/rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch b/queue-3.0/rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch new file mode 100644 index 00000000000..8f895c08cd3 --- /dev/null +++ b/queue-3.0/rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch @@ -0,0 +1,39 @@ +From 0ae11904bcc55515d8f1765d985aa9cdfadc9fef Mon Sep 17 00:00:00 2001 +From: "danborkmann@iogearbox.net" +Date: Tue, 27 Mar 2012 22:47:43 +0000 +Subject: rose_dev: fix memcpy-bug in rose_set_mac_address + + +From: "danborkmann@iogearbox.net" + +[ Upstream commit 81213b5e8ae68e204aa7a3f83c4f9100405dbff9 ] + +If both addresses equal, nothing needs to be done. If the device is down, +then we simply copy the new address to dev->dev_addr. If the device is up, +then we add another loopback device with the new address, and if that does +not fail, we remove the loopback device with the old address. And only +then, we update the dev->dev_addr. + +Signed-off-by: Daniel Borkmann +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + net/rose/rose_dev.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/net/rose/rose_dev.c ++++ b/net/rose/rose_dev.c +@@ -96,11 +96,11 @@ static int rose_set_mac_address(struct n + struct sockaddr *sa = addr; + int err; + +- if (!memcpy(dev->dev_addr, sa->sa_data, dev->addr_len)) ++ if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len)) + return 0; + + if (dev->flags & IFF_UP) { +- err = rose_add_loopback_node((rose_address *)dev->dev_addr); ++ err = rose_add_loopback_node((rose_address *)sa->sa_data); + if (err) + return err; + diff --git a/queue-3.0/series b/queue-3.0/series new file mode 100644 index 00000000000..6f355cc4571 --- /dev/null +++ b/queue-3.0/series @@ -0,0 +1,3 @@ +x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immediate-operand-of-and.patch +rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch +net-usb-cdc_eem-fix-mtu.patch diff --git a/queue-3.0/x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immediate-operand-of-and.patch b/queue-3.0/x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immediate-operand-of-and.patch new file mode 100644 index 00000000000..8bebdff1c00 --- /dev/null +++ b/queue-3.0/x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immediate-operand-of-and.patch @@ -0,0 +1,33 @@ +From fdb0d05a8632bd03784309760fb11c0d5cf0de3f Mon Sep 17 00:00:00 2001 +From: "zhuangfeiran@ict.ac.cn" +Date: Wed, 28 Mar 2012 23:27:00 +0000 +Subject: x86 bpf_jit: fix a bug in emitting the 16-bit immediate operand of AND + + +From: "zhuangfeiran@ict.ac.cn" + +[ Upstream commit 1d24fb3684f347226747c6b11ea426b7b992694e ] + +When K >= 0xFFFF0000, AND needs the two least significant bytes of K as +its operand, but EMIT2() gives it the least significant byte of K and +0x2. EMIT() should be used here to replace EMIT2(). + +Signed-off-by: Feiran Zhuang +Acked-by: Eric Dumazet +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + arch/x86/net/bpf_jit_comp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/net/bpf_jit_comp.c ++++ b/arch/x86/net/bpf_jit_comp.c +@@ -289,7 +289,7 @@ void bpf_jit_compile(struct sk_filter *f + EMIT2(0x24, K & 0xFF); /* and imm8,%al */ + } else if (K >= 0xFFFF0000) { + EMIT2(0x66, 0x25); /* and imm16,%ax */ +- EMIT2(K, 2); ++ EMIT(K, 2); + } else { + EMIT1_off32(0x25, K); /* and imm32,%eax */ + } -- 2.47.3