2014-10-13 02:33:26

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 00/25] 3.17.1-stable review

This is the start of the stable review cycle for the 3.17.1 release.
There are 25 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.

Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.17.1-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <[email protected]>
Linux 3.17.1-rc1

Bryan O'Donoghue <[email protected]>
serial: 8250: Add Quark X1000 to 8250_pci.c

Yasuaki Ishimatsu <[email protected]>
driver/base/node: remove unnecessary kfree of node struct from unregister_one_node

Cristian Stoica <[email protected]>
crypto: caam - fix addressing of struct member

Lu Baolu <[email protected]>
USB: Add device quirk for ASUS T100 Base Station keyboard

Felipe Balbi <[email protected]>
usb: musb: dsps: kill OTG timer on suspend

Andreas Bomholtz <[email protected]>
USB: cp210x: add support for Seluxit USB dongle

Joe Savage <[email protected]>
USB: serial: cp210x: added Ketra N1 wireless interface support

Felipe Balbi <[email protected]>
Revert "usb: gadget: composite: dequeue cdev->req before free it in composite_dev_cleanup"

Dan Carpenter <[email protected]>
usb: gadget: f_fs: signedness bug in __ffs_func_bind_do_descs()

Hans de Goede <[email protected]>
uas: Add another ASM1051 usb-id to the uas blacklist

Hans de Goede <[email protected]>
uas: Add US_FL_NO_ATA_1X quirk for Seagate (0bc2:ab20) drives

Hans de Goede <[email protected]>
uas: Add no-report-opcodes quirk

Hans de Goede <[email protected]>
uas: Add a quirk for rejecting ATA_12 and ATA_16 commands

Yinghai Lu <[email protected]>
PCI: pciehp: Fix wait time in timeout message

Frederic Weisbecker <[email protected]>
arm: Tell irq work about self IPI support

Frederic Weisbecker <[email protected]>
x86: Tell irq work about self IPI support

Frederic Weisbecker <[email protected]>
irq_work: Force raised irq work to run on irq work interrupt

Peter Zijlstra <[email protected]>
irq_work: Introduce arch_irq_work_has_interrupt()

WANG Cong <[email protected]>
net_sched: copy exts->type in tcf_exts_change()

Sylvain \\\"ythier\\\" Hitier <[email protected]>
3c59x: fix bad split of cpu_to_le32(pci_map_single())

Vlad Yasevich <[email protected]>
sctp: handle association restarts when the socket is closed.

KY Srinivasan <[email protected]>
hyperv: Fix a bug in netvsc_send()

Joe Lawrence <[email protected]>
team: avoid race condition in scheduling delayed work

Florian Fainelli <[email protected]>
net: systemport: fix bcm_sysport_insert_tsb()

Nicolas Dichtel <[email protected]>
ip6_gre: fix flowi6_proto value in xmit path


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

Diffstat:

Documentation/kernel-parameters.txt | 4 +++
Makefile | 4 +--
arch/alpha/include/asm/Kbuild | 1 +
arch/arc/include/asm/Kbuild | 1 +
arch/arm/include/asm/irq_work.h | 11 ++++++++
arch/arm/kernel/smp.c | 2 +-
arch/arm64/include/asm/Kbuild | 3 +-
arch/avr32/include/asm/Kbuild | 1 +
arch/blackfin/include/asm/Kbuild | 1 +
arch/c6x/include/asm/Kbuild | 1 +
arch/cris/include/asm/Kbuild | 1 +
arch/frv/include/asm/Kbuild | 1 +
arch/hexagon/include/asm/Kbuild | 1 +
arch/ia64/include/asm/Kbuild | 1 +
arch/m32r/include/asm/Kbuild | 1 +
arch/m68k/include/asm/Kbuild | 1 +
arch/metag/include/asm/Kbuild | 1 +
arch/microblaze/include/asm/Kbuild | 1 +
arch/mips/include/asm/Kbuild | 1 +
arch/mn10300/include/asm/Kbuild | 1 +
arch/openrisc/include/asm/Kbuild | 1 +
arch/parisc/include/asm/Kbuild | 1 +
arch/powerpc/include/asm/Kbuild | 1 +
arch/s390/include/asm/Kbuild | 1 +
arch/score/include/asm/Kbuild | 1 +
arch/sh/include/asm/Kbuild | 1 +
arch/sparc/include/asm/Kbuild | 1 +
arch/tile/include/asm/Kbuild | 1 +
arch/um/include/asm/Kbuild | 1 +
arch/unicore32/include/asm/Kbuild | 1 +
arch/x86/include/asm/irq_work.h | 11 ++++++++
arch/x86/kernel/irq_work.c | 2 +-
arch/xtensa/include/asm/Kbuild | 1 +
drivers/base/node.c | 1 -
drivers/crypto/caam/caamhash.c | 6 ++--
drivers/net/ethernet/3com/3c59x.c | 2 +-
drivers/net/ethernet/broadcom/bcmsysport.c | 13 +++++----
drivers/net/hyperv/netvsc.c | 15 +++++-----
drivers/net/team/team.c | 4 +--
drivers/pci/hotplug/pciehp_hpc.c | 2 +-
drivers/tty/serial/8250/8250_pci.c | 21 ++++++++++++++
drivers/usb/core/hub.c | 6 ++--
drivers/usb/core/quirks.c | 4 +++
drivers/usb/gadget/composite.c | 1 -
drivers/usb/gadget/function/f_fs.c | 3 +-
drivers/usb/musb/musb_dsps.c | 2 ++
drivers/usb/serial/cp210x.c | 2 ++
drivers/usb/storage/uas.c | 17 +++++++++++
drivers/usb/storage/unusual_uas.h | 45 +++++++++++++++++++++++-------
drivers/usb/storage/usb.c | 9 +++++-
include/asm-generic/irq_work.h | 10 +++++++
include/linux/irq_work.h | 3 ++
include/linux/usb/quirks.h | 3 ++
include/linux/usb_usual.h | 4 +++
include/net/sctp/command.h | 2 +-
kernel/irq_work.c | 15 ++++++++--
kernel/time/timer.c | 2 +-
net/ipv6/ip6_gre.c | 4 +--
net/sched/cls_api.c | 1 +
net/sctp/sm_statefuns.c | 19 +++++++++++--
60 files changed, 229 insertions(+), 50 deletions(-)


2014-10-13 02:30:10

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 11/25] arm: Tell irq work about self IPI support

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

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

From: Frederic Weisbecker <[email protected]>

commit 09f6edd424218eb69078551b2ecfada1f2d098eb upstream.

ARM irq work IPI support depends on SMP support. That information is
partly known at early boottime. Lets implement
arch_irq_work_has_interrupt() accordingly.

Acked-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Russell King <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Frederic Weisbecker <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
arch/arm/include/asm/Kbuild | 1 -
arch/arm/include/asm/irq_work.h | 11 +++++++++++
arch/arm/kernel/smp.c | 2 +-
3 files changed, 12 insertions(+), 2 deletions(-)

--- a/arch/arm/include/asm/Kbuild
+++ b/arch/arm/include/asm/Kbuild
@@ -11,7 +11,6 @@ generic-y += hash.h
generic-y += ioctl.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
-generic-y += irq_work.h
generic-y += kdebug.h
generic-y += local.h
generic-y += local64.h
--- /dev/null
+++ b/arch/arm/include/asm/irq_work.h
@@ -0,0 +1,11 @@
+#ifndef __ASM_ARM_IRQ_WORK_H
+#define __ASM_ARM_IRQ_WORK_H
+
+#include <asm/smp_plat.h>
+
+static inline bool arch_irq_work_has_interrupt(void)
+{
+ return is_smp();
+}
+
+#endif /* _ASM_ARM_IRQ_WORK_H */
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -503,7 +503,7 @@ void arch_send_call_function_single_ipi(
#ifdef CONFIG_IRQ_WORK
void arch_irq_work_raise(void)
{
- if (is_smp())
+ if (arch_irq_work_has_interrupt())
smp_cross_call(cpumask_of(smp_processor_id()), IPI_IRQ_WORK);
}
#endif

2014-10-13 02:30:19

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 14/25] uas: Add no-report-opcodes quirk

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

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

From: Hans de Goede <[email protected]>

commit 734016b00b50a3c6a0e1fc1b7b217e783f5123a1 upstream.

Besides the ASM1051 (*) needing sdev->no_report_opcodes = 1, it turns out that
the JMicron JMS567 also needs it to work properly with uas (usb-storage always
sets it). Since some of the scsi devs were not to keen on the idea to
outrightly set sdev->no_report_opcodes = 1 for all uas devices, so add a quirk
for this, and set it for the JMS567.

*) Which has become a non-issue since we've completely blacklisted uas on
the ASM1051 for other reasons

Reported-and-tested-by: Claudio Bizzarri <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
Documentation/kernel-parameters.txt | 2 ++
drivers/usb/storage/uas.c | 4 ++++
drivers/usb/storage/unusual_uas.h | 7 +++++++
drivers/usb/storage/usb.c | 5 ++++-
include/linux/usb_usual.h | 2 ++
5 files changed, 19 insertions(+), 1 deletion(-)

--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -3522,6 +3522,8 @@ bytes respectively. Such letter suffixes
READ_DISC_INFO command);
e = NO_READ_CAPACITY_16 (don't use
READ_CAPACITY_16 command);
+ f = NO_REPORT_OPCODES (don't use report opcodes
+ command, uas only);
h = CAPACITY_HEURISTICS (decrease the
reported device capacity by one
sector if the number is odd);
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -961,6 +961,10 @@ static int uas_slave_alloc(struct scsi_d
static int uas_slave_configure(struct scsi_device *sdev)
{
struct uas_dev_info *devinfo = sdev->hostdata;
+
+ if (devinfo->flags & US_FL_NO_REPORT_OPCODES)
+ sdev->no_report_opcodes = 1;
+
scsi_set_tag_type(sdev, MSG_ORDERED_TAG);
scsi_activate_tcq(sdev, devinfo->qdepth - 2);
return 0;
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -53,3 +53,10 @@ UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x99
"Expansion Desk",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_NO_ATA_1X),
+
+/* Reported-by: Claudio Bizzarri <[email protected]> */
+UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
+ "JMicron",
+ "JMS567",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_REPORT_OPCODES),
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -479,7 +479,7 @@ void usb_stor_adjust_quirks(struct usb_d
US_FL_SINGLE_LUN | US_FL_NO_WP_DETECT |
US_FL_NO_READ_DISC_INFO | US_FL_NO_READ_CAPACITY_16 |
US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE |
- US_FL_NO_ATA_1X);
+ US_FL_NO_ATA_1X | US_FL_NO_REPORT_OPCODES);

p = quirks;
while (*p) {
@@ -517,6 +517,9 @@ void usb_stor_adjust_quirks(struct usb_d
case 'e':
f |= US_FL_NO_READ_CAPACITY_16;
break;
+ case 'f':
+ f |= US_FL_NO_REPORT_OPCODES;
+ break;
case 'h':
f |= US_FL_CAPACITY_HEURISTICS;
break;
--- a/include/linux/usb_usual.h
+++ b/include/linux/usb_usual.h
@@ -75,6 +75,8 @@
/* Cannot handle FUA in WRITE or READ CDBs */ \
US_FLAG(NO_ATA_1X, 0x02000000) \
/* Cannot handle ATA_12 or ATA_16 CDBs */ \
+ US_FLAG(NO_REPORT_OPCODES, 0x04000000) \
+ /* Cannot handle MI_REPORT_SUPPORTED_OPERATION_CODES */ \

#define US_FLAG(name, value) US_FL_##name = value ,
enum { US_DO_ALL_FLAGS };

2014-10-13 02:30:36

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 06/25] 3c59x: fix bad split of cpu_to_le32(pci_map_single())

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

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

From: "Sylvain \\\"ythier\\\" Hitier" <[email protected]>

[ Upstream commit 88b09a6d958af6c458acf055ee2eb5bc9564efda ]

In commit 6f2b6a3005b2c34c39f207a87667564f64f2f91a,
# 3c59x: Add dma error checking and recovery
the intent is to split out the mapping from the byte-swapping in order to
insert a dma_mapping_error() check.

Kinda this semantic patch:

// See http://coccinelle.lip6.fr/
//
// Beware, grouik-and-dirty!
@@
expression DEV, X, Y, Z;
@@
- cpu_to_le32(pci_map_single(DEV, X, Y, Z))
+ dma_addr_t addr = pci_map_single(DEV, X, Y, Z);
+ if (dma_mapping_error(&DEV->dev, addr))
+ /* snip */;
+ cpu_to_le32(addr)

However, the #else part (of the #if DO_ZEROCOPY test) is changed this way:

- cpu_to_le32(pci_map_single(DEV, X, Y, Z))
+ dma_addr_t addr = cpu_to_le32(pci_map_single(DEV, X, Y, Z));
// ^^^^^^^^^^^
// That mismatches the 3 other changes!
+ if (dma_mapping_error(&DEV->dev, addr))
+ /* snip */;
+ cpu_to_le32(addr)

Let's remove the leftover cpu_to_le32() for coherency.

v2: Better changelog.
v3: Add Acked-by

Fixes: 6f2b6a3005b2c34c39f207a87667564f64f2f91a
# 3c59x: Add dma error checking and recovery
Acked-by: Neil Horman <[email protected]>
Signed-off-by: Sylvain "ythier" Hitier <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/net/ethernet/3com/3c59x.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/net/ethernet/3com/3c59x.c
+++ b/drivers/net/ethernet/3com/3c59x.c
@@ -2214,7 +2214,7 @@ boomerang_start_xmit(struct sk_buff *skb
}
}
#else
- dma_addr = cpu_to_le32(pci_map_single(VORTEX_PCI(vp), skb->data, skb->len, PCI_DMA_TODEVICE));
+ dma_addr = pci_map_single(VORTEX_PCI(vp), skb->data, skb->len, PCI_DMA_TODEVICE);
if (dma_mapping_error(&VORTEX_PCI(vp)->dev, dma_addr))
goto out_dma_err;
vp->tx_ring[entry].addr = cpu_to_le32(dma_addr);

2014-10-13 02:30:23

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 13/25] uas: Add a quirk for rejecting ATA_12 and ATA_16 commands

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

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

From: Hans de Goede <[email protected]>

commit 593078525c8b234a35a36ff551b8716464e86481 upstream.

And set this quirk for the Seagate Expansion Desk (0bc2:2312), as that one
seems to hang upon receiving an ATA_12 or ATA_16 command.

https://bugzilla.kernel.org/show_bug.cgi?id=79511
https://bbs.archlinux.org/viewtopic.php?id=183190

While at it also add missing documentation for the u value for usb-storage
quirks.

Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
Documentation/kernel-parameters.txt | 2 ++
drivers/usb/storage/uas.c | 13 +++++++++++++
drivers/usb/storage/unusual_uas.h | 23 +++++++++++++----------
drivers/usb/storage/usb.c | 6 +++++-
include/linux/usb_usual.h | 2 ++
5 files changed, 35 insertions(+), 11 deletions(-)

--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -3541,6 +3541,8 @@ bytes respectively. Such letter suffixes
bogus residue values);
s = SINGLE_LUN (the device has only one
Logical Unit);
+ t = NO_ATA_1X (don't allow ATA(12) and ATA(16)
+ commands, uas only);
u = IGNORE_UAS (don't bind to the uas driver);
w = NO_WP_DETECT (don't test whether the
medium is write-protected).
--- a/drivers/usb/storage/uas.c
+++ b/drivers/usb/storage/uas.c
@@ -28,6 +28,7 @@
#include <scsi/scsi_tcq.h>

#include "uas-detect.h"
+#include "scsiglue.h"

/*
* The r00-r01c specs define this version of the SENSE IU data structure.
@@ -49,6 +50,7 @@ struct uas_dev_info {
struct usb_anchor cmd_urbs;
struct usb_anchor sense_urbs;
struct usb_anchor data_urbs;
+ unsigned long flags;
int qdepth, resetting;
struct response_iu response;
unsigned cmd_pipe, status_pipe, data_in_pipe, data_out_pipe;
@@ -714,6 +716,15 @@ static int uas_queuecommand_lck(struct s

BUILD_BUG_ON(sizeof(struct uas_cmd_info) > sizeof(struct scsi_pointer));

+ if ((devinfo->flags & US_FL_NO_ATA_1X) &&
+ (cmnd->cmnd[0] == ATA_12 || cmnd->cmnd[0] == ATA_16)) {
+ memcpy(cmnd->sense_buffer, usb_stor_sense_invalidCDB,
+ sizeof(usb_stor_sense_invalidCDB));
+ cmnd->result = SAM_STAT_CHECK_CONDITION;
+ cmnd->scsi_done(cmnd);
+ return 0;
+ }
+
spin_lock_irqsave(&devinfo->lock, flags);

if (devinfo->resetting) {
@@ -1087,6 +1098,8 @@ static int uas_probe(struct usb_interfac
devinfo->resetting = 0;
devinfo->running_task = 0;
devinfo->shutdown = 0;
+ devinfo->flags = id->driver_info;
+ usb_stor_adjust_quirks(udev, &devinfo->flags);
init_usb_anchor(&devinfo->cmd_urbs);
init_usb_anchor(&devinfo->sense_urbs);
init_usb_anchor(&devinfo->data_urbs);
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -40,13 +40,16 @@
* and don't forget to CC: the USB development list <[email protected]>
*/

-/*
- * This is an example entry for the US_FL_IGNORE_UAS flag. Once we have an
- * actual entry using US_FL_IGNORE_UAS this entry should be removed.
- *
- * UNUSUAL_DEV( 0xabcd, 0x1234, 0x0100, 0x0100,
- * "Example",
- * "Storage with broken UAS",
- * USB_SC_DEVICE, USB_PR_DEVICE, NULL,
- * US_FL_IGNORE_UAS),
- */
+/* https://bugzilla.kernel.org/show_bug.cgi?id=79511 */
+UNUSUAL_DEV(0x0bc2, 0x2312, 0x0000, 0x9999,
+ "Seagate",
+ "Expansion Desk",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
+
+/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
+UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x9999,
+ "Seagate",
+ "Expansion Desk",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -478,7 +478,8 @@ void usb_stor_adjust_quirks(struct usb_d
US_FL_CAPACITY_OK | US_FL_IGNORE_RESIDUE |
US_FL_SINGLE_LUN | US_FL_NO_WP_DETECT |
US_FL_NO_READ_DISC_INFO | US_FL_NO_READ_CAPACITY_16 |
- US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE);
+ US_FL_INITIAL_READ10 | US_FL_WRITE_CACHE |
+ US_FL_NO_ATA_1X);

p = quirks;
while (*p) {
@@ -543,6 +544,9 @@ void usb_stor_adjust_quirks(struct usb_d
case 's':
f |= US_FL_SINGLE_LUN;
break;
+ case 't':
+ f |= US_FL_NO_ATA_1X;
+ break;
case 'u':
f |= US_FL_IGNORE_UAS;
break;
--- a/include/linux/usb_usual.h
+++ b/include/linux/usb_usual.h
@@ -73,6 +73,8 @@
/* Device advertises UAS but it is broken */ \
US_FLAG(BROKEN_FUA, 0x01000000) \
/* Cannot handle FUA in WRITE or READ CDBs */ \
+ US_FLAG(NO_ATA_1X, 0x02000000) \
+ /* Cannot handle ATA_12 or ATA_16 CDBs */ \

#define US_FLAG(name, value) US_FL_##name = value ,
enum { US_DO_ALL_FLAGS };

2014-10-13 02:30:41

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 07/25] net_sched: copy exts->type in tcf_exts_change()

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

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

From: WANG Cong <[email protected]>

[ Upstream commit 5301e3e117d88ef0967ce278912e54757f1a31a2 ]

We need to copy exts->type when committing the change, otherwise
it would be always 0. This is a quick fix for -net and -stable,
for net-next tcf_exts will be removed.

Fixes: commit 33be627159913b094bb578e83 ("net_sched: act: use standard struct list_head")
Reported-by: Jamal Hadi Salim <[email protected]>
Cc: Jamal Hadi Salim <[email protected]>
Cc: John Fastabend <[email protected]>
Signed-off-by: Cong Wang <[email protected]>
Acked-by: Jamal Hadi Salim <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
net/sched/cls_api.c | 1 +
1 file changed, 1 insertion(+)

--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -549,6 +549,7 @@ void tcf_exts_change(struct tcf_proto *t
tcf_tree_lock(tp);
list_splice_init(&dst->actions, &tmp);
list_splice(&src->actions, &dst->actions);
+ dst->type = src->type;
tcf_tree_unlock(tp);
tcf_action_destroy(&tmp, TCA_ACT_UNBIND);
#endif

2014-10-13 02:30:29

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 04/25] hyperv: Fix a bug in netvsc_send()

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

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

From: KY Srinivasan <[email protected]>

[ Upstream commit 3a67c9ccad926a168d8b7891537a452018368a5b ]

After the packet is successfully sent, we should not touch the packet
as it may have been freed. This patch is based on the work done by
Long Li <[email protected]>.

David, please queue this up for stable.

Signed-off-by: K. Y. Srinivasan <[email protected]>
Reported-by: Sitsofe Wheeler <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/net/hyperv/netvsc.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)

--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -705,6 +705,7 @@ int netvsc_send(struct hv_device *device
unsigned int section_index = NETVSC_INVALID_INDEX;
u32 msg_size = 0;
struct sk_buff *skb;
+ u16 q_idx = packet->q_idx;


net_device = get_outbound_net_device(device);
@@ -769,24 +770,24 @@ int netvsc_send(struct hv_device *device

if (ret == 0) {
atomic_inc(&net_device->num_outstanding_sends);
- atomic_inc(&net_device->queue_sends[packet->q_idx]);
+ atomic_inc(&net_device->queue_sends[q_idx]);

if (hv_ringbuf_avail_percent(&out_channel->outbound) <
RING_AVAIL_PERCENT_LOWATER) {
netif_tx_stop_queue(netdev_get_tx_queue(
- ndev, packet->q_idx));
+ ndev, q_idx));

if (atomic_read(&net_device->
- queue_sends[packet->q_idx]) < 1)
+ queue_sends[q_idx]) < 1)
netif_tx_wake_queue(netdev_get_tx_queue(
- ndev, packet->q_idx));
+ ndev, q_idx));
}
} else if (ret == -EAGAIN) {
netif_tx_stop_queue(netdev_get_tx_queue(
- ndev, packet->q_idx));
- if (atomic_read(&net_device->queue_sends[packet->q_idx]) < 1) {
+ ndev, q_idx));
+ if (atomic_read(&net_device->queue_sends[q_idx]) < 1) {
netif_tx_wake_queue(netdev_get_tx_queue(
- ndev, packet->q_idx));
+ ndev, q_idx));
ret = -ENOSPC;
}
} else {

2014-10-13 02:30:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 08/25] irq_work: Introduce arch_irq_work_has_interrupt()

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

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

From: Peter Zijlstra <[email protected]>

commit c5c38ef3d70377dc504a6a3f611a3ec814bc757b upstream.

The nohz full code needs irq work to trigger its own interrupt so that
the subsystem can work even when the tick is stopped.

Lets introduce arch_irq_work_has_interrupt() that archs can override to
tell about their support for this ability.

Signed-off-by: Peter Zijlstra <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Frederic Weisbecker <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
arch/alpha/include/asm/Kbuild | 1 +
arch/arc/include/asm/Kbuild | 1 +
arch/arm/include/asm/Kbuild | 1 +
arch/arm64/include/asm/Kbuild | 3 ++-
arch/avr32/include/asm/Kbuild | 1 +
arch/blackfin/include/asm/Kbuild | 1 +
arch/c6x/include/asm/Kbuild | 1 +
arch/cris/include/asm/Kbuild | 1 +
arch/frv/include/asm/Kbuild | 1 +
arch/hexagon/include/asm/Kbuild | 1 +
arch/ia64/include/asm/Kbuild | 1 +
arch/m32r/include/asm/Kbuild | 1 +
arch/m68k/include/asm/Kbuild | 1 +
arch/metag/include/asm/Kbuild | 1 +
arch/microblaze/include/asm/Kbuild | 1 +
arch/mips/include/asm/Kbuild | 1 +
arch/mn10300/include/asm/Kbuild | 1 +
arch/openrisc/include/asm/Kbuild | 1 +
arch/parisc/include/asm/Kbuild | 1 +
arch/powerpc/include/asm/Kbuild | 1 +
arch/s390/include/asm/Kbuild | 1 +
arch/score/include/asm/Kbuild | 1 +
arch/sh/include/asm/Kbuild | 1 +
arch/sparc/include/asm/Kbuild | 1 +
arch/tile/include/asm/Kbuild | 1 +
arch/um/include/asm/Kbuild | 1 +
arch/unicore32/include/asm/Kbuild | 1 +
arch/x86/include/asm/Kbuild | 1 +
arch/xtensa/include/asm/Kbuild | 1 +
include/asm-generic/irq_work.h | 10 ++++++++++
include/linux/irq_work.h | 2 ++
31 files changed, 42 insertions(+), 1 deletion(-)

--- a/arch/alpha/include/asm/Kbuild
+++ b/arch/alpha/include/asm/Kbuild
@@ -4,6 +4,7 @@ generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += scatterlist.h
--- a/arch/arc/include/asm/Kbuild
+++ b/arch/arc/include/asm/Kbuild
@@ -18,6 +18,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kmap_types.h
generic-y += kvm_para.h
generic-y += local.h
--- a/arch/arm/include/asm/Kbuild
+++ b/arch/arm/include/asm/Kbuild
@@ -11,6 +11,7 @@ generic-y += hash.h
generic-y += ioctl.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += local.h
generic-y += local64.h
--- a/arch/arm64/include/asm/Kbuild
+++ b/arch/arm64/include/asm/Kbuild
@@ -9,8 +9,8 @@ generic-y += current.h
generic-y += delay.h
generic-y += div64.h
generic-y += dma.h
-generic-y += emergency-restart.h
generic-y += early_ioremap.h
+generic-y += emergency-restart.h
generic-y += errno.h
generic-y += ftrace.h
generic-y += hash.h
@@ -19,6 +19,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kvm_para.h
--- a/arch/avr32/include/asm/Kbuild
+++ b/arch/avr32/include/asm/Kbuild
@@ -9,6 +9,7 @@ generic-y += exec.h
generic-y += futex.h
generic-y += hash.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += local.h
generic-y += local64.h
generic-y += mcs_spinlock.h
--- a/arch/blackfin/include/asm/Kbuild
+++ b/arch/blackfin/include/asm/Kbuild
@@ -15,6 +15,7 @@ generic-y += hw_irq.h
generic-y += ioctl.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kvm_para.h
--- a/arch/c6x/include/asm/Kbuild
+++ b/arch/c6x/include/asm/Kbuild
@@ -22,6 +22,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += local.h
--- a/arch/cris/include/asm/Kbuild
+++ b/arch/cris/include/asm/Kbuild
@@ -8,6 +8,7 @@ generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += kvm_para.h
generic-y += linkage.h
generic-y += mcs_spinlock.h
--- a/arch/frv/include/asm/Kbuild
+++ b/arch/frv/include/asm/Kbuild
@@ -3,6 +3,7 @@ generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += scatterlist.h
--- a/arch/hexagon/include/asm/Kbuild
+++ b/arch/hexagon/include/asm/Kbuild
@@ -23,6 +23,7 @@ generic-y += ioctls.h
generic-y += iomap.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += local.h
--- a/arch/ia64/include/asm/Kbuild
+++ b/arch/ia64/include/asm/Kbuild
@@ -2,6 +2,7 @@
generic-y += clkdev.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += kvm_para.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
--- a/arch/m32r/include/asm/Kbuild
+++ b/arch/m32r/include/asm/Kbuild
@@ -3,6 +3,7 @@ generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += module.h
generic-y += preempt.h
--- a/arch/m68k/include/asm/Kbuild
+++ b/arch/m68k/include/asm/Kbuild
@@ -11,6 +11,7 @@ generic-y += hw_irq.h
generic-y += ioctl.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kvm_para.h
--- a/arch/metag/include/asm/Kbuild
+++ b/arch/metag/include/asm/Kbuild
@@ -19,6 +19,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kvm_para.h
--- a/arch/microblaze/include/asm/Kbuild
+++ b/arch/microblaze/include/asm/Kbuild
@@ -5,6 +5,7 @@ generic-y += cputime.h
generic-y += device.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += scatterlist.h
--- a/arch/mips/include/asm/Kbuild
+++ b/arch/mips/include/asm/Kbuild
@@ -3,6 +3,7 @@ generic-y += cputime.h
generic-y += current.h
generic-y += emergency-restart.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += local64.h
generic-y += mcs_spinlock.h
generic-y += mutex.h
--- a/arch/mn10300/include/asm/Kbuild
+++ b/arch/mn10300/include/asm/Kbuild
@@ -4,6 +4,7 @@ generic-y += clkdev.h
generic-y += cputime.h
generic-y += exec.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += scatterlist.h
--- a/arch/openrisc/include/asm/Kbuild
+++ b/arch/openrisc/include/asm/Kbuild
@@ -31,6 +31,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kvm_para.h
--- a/arch/parisc/include/asm/Kbuild
+++ b/arch/parisc/include/asm/Kbuild
@@ -10,6 +10,7 @@ generic-y += exec.h
generic-y += hash.h
generic-y += hw_irq.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kvm_para.h
generic-y += local.h
--- a/arch/powerpc/include/asm/Kbuild
+++ b/arch/powerpc/include/asm/Kbuild
@@ -1,6 +1,7 @@

generic-y += clkdev.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += rwsem.h
--- a/arch/s390/include/asm/Kbuild
+++ b/arch/s390/include/asm/Kbuild
@@ -2,6 +2,7 @@

generic-y += clkdev.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += scatterlist.h
--- a/arch/score/include/asm/Kbuild
+++ b/arch/score/include/asm/Kbuild
@@ -6,6 +6,7 @@ generic-y += barrier.h
generic-y += clkdev.h
generic-y += cputime.h
generic-y += hash.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += preempt.h
generic-y += scatterlist.h
--- a/arch/sh/include/asm/Kbuild
+++ b/arch/sh/include/asm/Kbuild
@@ -12,6 +12,7 @@ generic-y += hash.h
generic-y += ioctl.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kvm_para.h
generic-y += local.h
generic-y += local64.h
--- a/arch/sparc/include/asm/Kbuild
+++ b/arch/sparc/include/asm/Kbuild
@@ -8,6 +8,7 @@ generic-y += emergency-restart.h
generic-y += exec.h
generic-y += hash.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += linkage.h
generic-y += local.h
generic-y += local64.h
--- a/arch/tile/include/asm/Kbuild
+++ b/arch/tile/include/asm/Kbuild
@@ -17,6 +17,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += local.h
generic-y += local64.h
generic-y += mcs_spinlock.h
--- a/arch/um/include/asm/Kbuild
+++ b/arch/um/include/asm/Kbuild
@@ -14,6 +14,7 @@ generic-y += hash.h
generic-y += hw_irq.h
generic-y += io.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += mcs_spinlock.h
generic-y += mutex.h
--- a/arch/unicore32/include/asm/Kbuild
+++ b/arch/unicore32/include/asm/Kbuild
@@ -22,6 +22,7 @@ generic-y += ioctl.h
generic-y += ioctls.h
generic-y += ipcbuf.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += local.h
--- a/arch/x86/include/asm/Kbuild
+++ b/arch/x86/include/asm/Kbuild
@@ -7,5 +7,6 @@ genhdr-y += unistd_x32.h
generic-y += clkdev.h
generic-y += cputime.h
generic-y += early_ioremap.h
+generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += scatterlist.h
--- a/arch/xtensa/include/asm/Kbuild
+++ b/arch/xtensa/include/asm/Kbuild
@@ -12,6 +12,7 @@ generic-y += hardirq.h
generic-y += hash.h
generic-y += ioctl.h
generic-y += irq_regs.h
+generic-y += irq_work.h
generic-y += kdebug.h
generic-y += kmap_types.h
generic-y += kvm_para.h
--- /dev/null
+++ b/include/asm-generic/irq_work.h
@@ -0,0 +1,10 @@
+#ifndef __ASM_IRQ_WORK_H
+#define __ASM_IRQ_WORK_H
+
+static inline bool arch_irq_work_has_interrupt(void)
+{
+ return false;
+}
+
+#endif /* __ASM_IRQ_WORK_H */
+
--- a/include/linux/irq_work.h
+++ b/include/linux/irq_work.h
@@ -42,6 +42,8 @@ void irq_work_run(void);
void irq_work_sync(struct irq_work *work);

#ifdef CONFIG_IRQ_WORK
+#include <asm/irq_work.h>
+
bool irq_work_needs_cpu(void);
#else
static inline bool irq_work_needs_cpu(void) { return false; }

2014-10-13 02:30:53

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 21/25] usb: musb: dsps: kill OTG timer on suspend

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

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

From: Felipe Balbi <[email protected]>

commit 468bcc2a2ca071f652009d2d20d97f2437630cae upstream.

if we don't make sure to kill the timer, it could
expire after we have already gated our clocks.

That will trigger a Data Abort exception because
we would try to access register while clock is gated.

Fix that bug.

Fixes 869c597 (usb: musb: dsps: add support for suspend and resume)
Tested-by: Dave Gerlach <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/musb/musb_dsps.c | 2 ++
1 file changed, 2 insertions(+)

--- a/drivers/usb/musb/musb_dsps.c
+++ b/drivers/usb/musb/musb_dsps.c
@@ -870,6 +870,7 @@ static int dsps_suspend(struct device *d
struct musb *musb = platform_get_drvdata(glue->musb);
void __iomem *mbase = musb->ctrl_base;

+ del_timer_sync(&glue->timer);
glue->context.control = dsps_readl(mbase, wrp->control);
glue->context.epintr = dsps_readl(mbase, wrp->epintr_set);
glue->context.coreintr = dsps_readl(mbase, wrp->coreintr_set);
@@ -895,6 +896,7 @@ static int dsps_resume(struct device *de
dsps_writel(mbase, wrp->mode, glue->context.mode);
dsps_writel(mbase, wrp->tx_mode, glue->context.tx_mode);
dsps_writel(mbase, wrp->rx_mode, glue->context.rx_mode);
+ setup_timer(&glue->timer, otg_timer, (unsigned long) musb);

return 0;
}

2014-10-13 02:31:00

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 23/25] crypto: caam - fix addressing of struct member

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

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

From: Cristian Stoica <[email protected]>

commit 4451d494b1910bf7b7f8381a637d0fe6d2142467 upstream.

buf_0 and buf_1 in caam_hash_state are not next to each other.
Accessing buf_1 is incorrect from &buf_0 with an offset of only
size_of(buf_0). The same issue is also with buflen_0 and buflen_1

Signed-off-by: Cristian Stoica <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/crypto/caam/caamhash.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

--- a/drivers/crypto/caam/caamhash.c
+++ b/drivers/crypto/caam/caamhash.c
@@ -1413,9 +1413,9 @@ static int ahash_update_first(struct aha
struct device *jrdev = ctx->jrdev;
gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG |
CRYPTO_TFM_REQ_MAY_SLEEP)) ? GFP_KERNEL : GFP_ATOMIC;
- u8 *next_buf = state->buf_0 + state->current_buf *
- CAAM_MAX_HASH_BLOCK_SIZE;
- int *next_buflen = &state->buflen_0 + state->current_buf;
+ u8 *next_buf = state->current_buf ? state->buf_1 : state->buf_0;
+ int *next_buflen = state->current_buf ?
+ &state->buflen_1 : &state->buflen_0;
int to_hash;
u32 *sh_desc = ctx->sh_desc_update_first, *desc;
dma_addr_t ptr = ctx->sh_desc_update_first_dma;

2014-10-13 02:31:06

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 25/25] serial: 8250: Add Quark X1000 to 8250_pci.c

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

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

From: Bryan O'Donoghue <[email protected]>

commit 1ede7dcca3c4fa15a518ab0473126f9c3e621e4c upstream.

Quark X1000 contains two designware derived 8250 serial ports.
Each port has a unique PCI configuration space consisting of
BAR0:UART BAR1:DMA respectively.

Unlike the standard 8250 the register width is 32 bits for RHR,IER etc
The Quark UART has a fundamental clock @ 44.2368 MHz allowing for a
bitrate of up to about 2.76 megabits per second.

This patch enables standard 8250 mode

Signed-off-by: Bryan O'Donoghue <[email protected]>
Reviewed-by: Heikki Krogerus <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/tty/serial/8250/8250_pci.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1788,6 +1788,7 @@ pci_wch_ch353_setup(struct serial_privat
#define PCI_DEVICE_ID_COMMTECH_4222PCIE 0x0022
#define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a
#define PCI_DEVICE_ID_AMCC_ADDIDATA_APCI7800 0x818e
+#define PCI_DEVICE_ID_INTEL_QRK_UART 0x0936

#define PCI_VENDOR_ID_SUNIX 0x1fd4
#define PCI_DEVICE_ID_SUNIX_1999 0x1999
@@ -1898,6 +1899,13 @@ static struct pci_serial_quirk pci_seria
.subdevice = PCI_ANY_ID,
.setup = byt_serial_setup,
},
+ {
+ .vendor = PCI_VENDOR_ID_INTEL,
+ .device = PCI_DEVICE_ID_INTEL_QRK_UART,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .setup = pci_default_setup,
+ },
/*
* ITE
*/
@@ -2740,6 +2748,7 @@ enum pci_board_num_t {
pbn_ADDIDATA_PCIe_8_3906250,
pbn_ce4100_1_115200,
pbn_byt,
+ pbn_qrk,
pbn_omegapci,
pbn_NETMOS9900_2s_115200,
pbn_brcm_trumanage,
@@ -3490,6 +3499,12 @@ static struct pciserial_board pci_boards
.uart_offset = 0x80,
.reg_shift = 2,
},
+ [pbn_qrk] = {
+ .flags = FL_BASE0,
+ .num_ports = 1,
+ .base_baud = 2764800,
+ .reg_shift = 2,
+ },
[pbn_omegapci] = {
.flags = FL_BASE0,
.num_ports = 8,
@@ -5192,6 +5207,12 @@ static struct pci_device_id serial_pci_t
pbn_byt },

/*
+ * Intel Quark x1000
+ */
+ { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_QRK_UART,
+ PCI_ANY_ID, PCI_ANY_ID, 0, 0,
+ pbn_qrk },
+ /*
* Cronyx Omega PCI
*/
{ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_CRONYX_OMEGA,

2014-10-13 02:31:24

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 17/25] usb: gadget: f_fs: signedness bug in __ffs_func_bind_do_descs()

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

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

From: Dan Carpenter <[email protected]>

commit 85b06f5e53d17c15844ef3cd45d0c7107f0ae45c upstream.

We need "idx" to be signed for the error handling to work.

Fixes: 6d5c1c77bbf9 ('usb: gadget: f_fs: fix the redundant ep files problem')
Acked-by: Michal Nazarewicz <[email protected]>
Signed-off-by: Dan Carpenter <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/gadget/function/f_fs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/usb/gadget/function/f_fs.c
+++ b/drivers/usb/gadget/function/f_fs.c
@@ -2393,7 +2393,8 @@ static int __ffs_func_bind_do_descs(enum
struct usb_endpoint_descriptor *ds = (void *)desc;
struct ffs_function *func = priv;
struct ffs_ep *ffs_ep;
- unsigned ep_desc_id, idx;
+ unsigned ep_desc_id;
+ int idx;
static const char *speed_names[] = { "full", "high", "super" };

if (type != FFS_DESCRIPTOR)

2014-10-13 02:31:48

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 24/25] driver/base/node: remove unnecessary kfree of node struct from unregister_one_node

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

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

From: Yasuaki Ishimatsu <[email protected]>

commit 33ead538f642a33b1d658782a5d14a40b5014d1f upstream.

Commit 92d585ef067d ("numa: fix NULL pointer access and memory
leak in unregister_one_node()") added kfree() of node struct in
unregister_one_node(). But node struct is freed by node_device_release()
which is called in unregister_node(). So by adding the kfree(),
node struct is freed two times.

While hot removing memory, the commit leads the following BUG_ON():

kernel BUG at mm/slub.c:3346!
invalid opcode: 0000 [#1] SMP
[...]
Call Trace:
[...] unregister_one_node
[...] try_offline_node
[...] remove_memory
[...] acpi_memory_device_remove
[...] acpi_bus_trim
[...] acpi_bus_trim
[...] acpi_device_hotplug
[...] acpi_hotplug_work_fn
[...] process_one_work
[...] worker_thread
[...] ? rescuer_thread
[...] kthread
[...] ? kthread_create_on_node
[...] ret_from_fork
[...] ? kthread_create_on_node

This patch removes unnecessary kfree() from unregister_one_node().

Signed-off-by: Yasuaki Ishimatsu <[email protected]>
Cc: Xishi Qiu <[email protected]>
Fixes: 92d585ef067d "numa: fix NULL pointer access and memory leak in unregister_one_node()"
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/base/node.c | 1 -
1 file changed, 1 deletion(-)

--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -603,7 +603,6 @@ void unregister_one_node(int nid)
return;

unregister_node(node_devices[nid]);
- kfree(node_devices[nid]);
node_devices[nid] = NULL;
}


2014-10-13 02:32:05

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 22/25] USB: Add device quirk for ASUS T100 Base Station keyboard

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

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

From: Lu Baolu <[email protected]>

commit ddbe1fca0bcb87ca8c199ea873a456ca8a948567 upstream.

This full-speed USB device generates spurious remote wakeup event
as soon as USB_DEVICE_REMOTE_WAKEUP feature is set. As the result,
Linux can't enter system suspend and S0ix power saving modes once
this keyboard is used.

This patch tries to introduce USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk.
With this quirk set, wakeup capability will be ignored during
device configure.

This patch could be back-ported to kernels as old as 2.6.39.

Signed-off-by: Lu Baolu <[email protected]>
Acked-by: Alan Stern <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/core/hub.c | 6 ++++--
drivers/usb/core/quirks.c | 4 ++++
include/linux/usb/quirks.h | 3 +++
3 files changed, 11 insertions(+), 2 deletions(-)

--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1983,8 +1983,10 @@ void usb_set_device_state(struct usb_dev
|| new_state == USB_STATE_SUSPENDED)
; /* No change to wakeup settings */
else if (new_state == USB_STATE_CONFIGURED)
- wakeup = udev->actconfig->desc.bmAttributes
- & USB_CONFIG_ATT_WAKEUP;
+ wakeup = (udev->quirks &
+ USB_QUIRK_IGNORE_REMOTE_WAKEUP) ? 0 :
+ udev->actconfig->desc.bmAttributes &
+ USB_CONFIG_ATT_WAKEUP;
else
wakeup = 0;
}
--- a/drivers/usb/core/quirks.c
+++ b/drivers/usb/core/quirks.c
@@ -159,6 +159,10 @@ static const struct usb_device_id usb_qu
/* USB3503 */
{ USB_DEVICE(0x0424, 0x3503), .driver_info = USB_QUIRK_RESET_RESUME },

+ /* ASUS Base Station(T100) */
+ { USB_DEVICE(0x0b05, 0x17e0), .driver_info =
+ USB_QUIRK_IGNORE_REMOTE_WAKEUP },
+
{ } /* terminating entry must be last */
};

--- a/include/linux/usb/quirks.h
+++ b/include/linux/usb/quirks.h
@@ -41,4 +41,7 @@
*/
#define USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL 0x00000080

+/* device generates spurious wakeup, ignore remote wakeup capability */
+#define USB_QUIRK_IGNORE_REMOTE_WAKEUP 0x00000200
+
#endif /* __LINUX_USB_QUIRKS_H */

2014-10-13 02:30:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 19/25] USB: serial: cp210x: added Ketra N1 wireless interface support

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

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

From: Joe Savage <[email protected]>

commit bfc2d7dfdd761ae3beccdb26abebe03cef042f46 upstream.

Added support for Ketra N1 wireless interface, which uses the
Silicon Labs' CP2104 USB to UART bridge with customized PID 8946.

Signed-off-by: Joe Savage <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/serial/cp210x.c | 1 +
1 file changed, 1 insertion(+)

--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -122,6 +122,7 @@ static const struct usb_device_id id_tab
{ USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
{ USB_DEVICE(0x10C4, 0x88A4) }, /* MMB Networks ZigBee USB Device */
{ USB_DEVICE(0x10C4, 0x88A5) }, /* Planet Innovation Ingeni ZigBee USB Device */
+ { USB_DEVICE(0x10C4, 0x8946) }, /* Ketra N1 Wireless Interface */
{ USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
{ USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
{ USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */

2014-10-13 02:32:41

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 20/25] USB: cp210x: add support for Seluxit USB dongle

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

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

From: Andreas Bomholtz <[email protected]>

commit dee80ad12d2b1b304286a707fde7ab05d1fc7bab upstream.

Added the Seluxit ApS USB Serial Dongle to cp210x driver.

Signed-off-by: Andreas Bomholtz <[email protected]>
Signed-off-by: Johan Hovold <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/serial/cp210x.c | 1 +
1 file changed, 1 insertion(+)

--- a/drivers/usb/serial/cp210x.c
+++ b/drivers/usb/serial/cp210x.c
@@ -156,6 +156,7 @@ static const struct usb_device_id id_tab
{ USB_DEVICE(0x1ADB, 0x0001) }, /* Schweitzer Engineering C662 Cable */
{ USB_DEVICE(0x1B1C, 0x1C00) }, /* Corsair USB Dongle */
{ USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
+ { USB_DEVICE(0x1D6F, 0x0010) }, /* Seluxit ApS RF Dongle */
{ USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
{ USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */
{ USB_DEVICE(0x1FB9, 0x0100) }, /* Lake Shore Model 121 Current Source */

2014-10-13 02:33:00

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 18/25] Revert "usb: gadget: composite: dequeue cdev->req before free it in composite_dev_cleanup"

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

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

From: Felipe Balbi <[email protected]>

commit bf17eba7ae1e813b0ad67cb1078dcbd7083b906e upstream.

This reverts commit f2267089ea17fa97b796b1b4247e3f8957655df3.

That commit causes more problem than fixes. Firstly, kfree()
should be called after usb_ep_dequeue() and secondly, the way
things are, we will try to dequeue a request that has already
completed much more frequently than one which is pending.

Cc: Li Jun <[email protected]>
Signed-off-by: Felipe Balbi <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/gadget/composite.c | 1 -
1 file changed, 1 deletion(-)

--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -1956,7 +1956,6 @@ void composite_dev_cleanup(struct usb_co
}
if (cdev->req) {
kfree(cdev->req->buf);
- usb_ep_dequeue(cdev->gadget->ep0, cdev->req);
usb_ep_free_request(cdev->gadget->ep0, cdev->req);
}
cdev->next_string_id = 0;

2014-10-13 02:33:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 09/25] irq_work: Force raised irq work to run on irq work interrupt

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

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

From: Frederic Weisbecker <[email protected]>

commit 76a33061b9323b7fdb220ae5fa116c10833ec22e upstream.

The nohz full kick, which restarts the tick when any resource depend
on it, can't be executed anywhere given the operation it does on timers.
If it is called from the scheduler or timers code, chances are that
we run into a deadlock.

This is why we run the nohz full kick from an irq work. That way we make
sure that the kick runs on a virgin context.

However if that's the case when irq work runs in its own dedicated
self-ipi, things are different for the big bunch of archs that don't
support the self triggered way. In order to support them, irq works are
also handled by the timer interrupt as fallback.

Now when irq works run on the timer interrupt, the context isn't blank.
More precisely, they can run in the context of the hrtimer that runs the
tick. But the nohz kick cancels and restarts this hrtimer and cancelling
an hrtimer from itself isn't allowed. This is why we run in an endless
loop:

Kernel panic - not syncing: Watchdog detected hard LOCKUP on cpu 2
CPU: 2 PID: 7538 Comm: kworker/u8:8 Not tainted 3.16.0+ #34
Workqueue: btrfs-endio-write normal_work_helper [btrfs]
ffff880244c06c88 000000001b486fe1 ffff880244c06bf0 ffffffff8a7f1e37
ffffffff8ac52a18 ffff880244c06c78 ffffffff8a7ef928 0000000000000010
ffff880244c06c88 ffff880244c06c20 000000001b486fe1 0000000000000000
Call Trace:
<NMI[<ffffffff8a7f1e37>] dump_stack+0x4e/0x7a
[<ffffffff8a7ef928>] panic+0xd4/0x207
[<ffffffff8a1450e8>] watchdog_overflow_callback+0x118/0x120
[<ffffffff8a186b0e>] __perf_event_overflow+0xae/0x350
[<ffffffff8a184f80>] ? perf_event_task_disable+0xa0/0xa0
[<ffffffff8a01a4cf>] ? x86_perf_event_set_period+0xbf/0x150
[<ffffffff8a187934>] perf_event_overflow+0x14/0x20
[<ffffffff8a020386>] intel_pmu_handle_irq+0x206/0x410
[<ffffffff8a01937b>] perf_event_nmi_handler+0x2b/0x50
[<ffffffff8a007b72>] nmi_handle+0xd2/0x390
[<ffffffff8a007aa5>] ? nmi_handle+0x5/0x390
[<ffffffff8a0cb7f8>] ? match_held_lock+0x8/0x1b0
[<ffffffff8a008062>] default_do_nmi+0x72/0x1c0
[<ffffffff8a008268>] do_nmi+0xb8/0x100
[<ffffffff8a7ff66a>] end_repeat_nmi+0x1e/0x2e
[<ffffffff8a0cb7f8>] ? match_held_lock+0x8/0x1b0
[<ffffffff8a0cb7f8>] ? match_held_lock+0x8/0x1b0
[<ffffffff8a0cb7f8>] ? match_held_lock+0x8/0x1b0
<<EOE><IRQ[<ffffffff8a0ccd2f>] lock_acquired+0xaf/0x450
[<ffffffff8a0f74c5>] ? lock_hrtimer_base.isra.20+0x25/0x50
[<ffffffff8a7fc678>] _raw_spin_lock_irqsave+0x78/0x90
[<ffffffff8a0f74c5>] ? lock_hrtimer_base.isra.20+0x25/0x50
[<ffffffff8a0f74c5>] lock_hrtimer_base.isra.20+0x25/0x50
[<ffffffff8a0f7723>] hrtimer_try_to_cancel+0x33/0x1e0
[<ffffffff8a0f78ea>] hrtimer_cancel+0x1a/0x30
[<ffffffff8a109237>] tick_nohz_restart+0x17/0x90
[<ffffffff8a10a213>] __tick_nohz_full_check+0xc3/0x100
[<ffffffff8a10a25e>] nohz_full_kick_work_func+0xe/0x10
[<ffffffff8a17c884>] irq_work_run_list+0x44/0x70
[<ffffffff8a17c8da>] irq_work_run+0x2a/0x50
[<ffffffff8a0f700b>] update_process_times+0x5b/0x70
[<ffffffff8a109005>] tick_sched_handle.isra.21+0x25/0x60
[<ffffffff8a109b81>] tick_sched_timer+0x41/0x60
[<ffffffff8a0f7aa2>] __run_hrtimer+0x72/0x470
[<ffffffff8a109b40>] ? tick_sched_do_timer+0xb0/0xb0
[<ffffffff8a0f8707>] hrtimer_interrupt+0x117/0x270
[<ffffffff8a034357>] local_apic_timer_interrupt+0x37/0x60
[<ffffffff8a80010f>] smp_apic_timer_interrupt+0x3f/0x50
[<ffffffff8a7fe52f>] apic_timer_interrupt+0x6f/0x80

To fix this we force non-lazy irq works to run on irq work self-IPIs
when available. That ability of the arch to trigger irq work self IPIs
is available with arch_irq_work_has_interrupt().

Reported-by: Catalin Iacob <[email protected]>
Reported-by: Dave Jones <[email protected]>
Acked-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Frederic Weisbecker <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
include/linux/irq_work.h | 1 +
kernel/irq_work.c | 15 +++++++++++++--
kernel/time/timer.c | 2 +-
3 files changed, 15 insertions(+), 3 deletions(-)

--- a/include/linux/irq_work.h
+++ b/include/linux/irq_work.h
@@ -39,6 +39,7 @@ bool irq_work_queue_on(struct irq_work *
#endif

void irq_work_run(void);
+void irq_work_tick(void);
void irq_work_sync(struct irq_work *work);

#ifdef CONFIG_IRQ_WORK
--- a/kernel/irq_work.c
+++ b/kernel/irq_work.c
@@ -115,8 +115,10 @@ bool irq_work_needs_cpu(void)

raised = &__get_cpu_var(raised_list);
lazy = &__get_cpu_var(lazy_list);
- if (llist_empty(raised) && llist_empty(lazy))
- return false;
+
+ if (llist_empty(raised) || arch_irq_work_has_interrupt())
+ if (llist_empty(lazy))
+ return false;

/* All work should have been flushed before going offline */
WARN_ON_ONCE(cpu_is_offline(smp_processor_id()));
@@ -171,6 +173,15 @@ void irq_work_run(void)
}
EXPORT_SYMBOL_GPL(irq_work_run);

+void irq_work_tick(void)
+{
+ struct llist_head *raised = &__get_cpu_var(raised_list);
+
+ if (!llist_empty(raised) && !arch_irq_work_has_interrupt())
+ irq_work_run_list(raised);
+ irq_work_run_list(&__get_cpu_var(lazy_list));
+}
+
/*
* Synchronize against the irq_work @entry, ensures the entry is not
* currently in use.
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1385,7 +1385,7 @@ void update_process_times(int user_tick)
rcu_check_callbacks(cpu, user_tick);
#ifdef CONFIG_IRQ_WORK
if (in_irq())
- irq_work_run();
+ irq_work_tick();
#endif
scheduler_tick();
run_posix_cpu_timers(p);

2014-10-13 02:34:21

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 05/25] sctp: handle association restarts when the socket is closed.

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

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

From: Vlad Yasevich <[email protected]>

[ Upstream commit bdf6fa52f01b941d4a80372d56de465bdbbd1d23 ]

Currently association restarts do not take into consideration the
state of the socket. When a restart happens, the current assocation
simply transitions into established state. This creates a condition
where a remote system, through a the restart procedure, may create a
local association that is no way reachable by user. The conditions
to trigger this are as follows:
1) Remote does not acknoledge some data causing data to remain
outstanding.
2) Local application calls close() on the socket. Since data
is still outstanding, the association is placed in SHUTDOWN_PENDING
state. However, the socket is closed.
3) The remote tries to create a new association, triggering a restart
on the local system. The association moves from SHUTDOWN_PENDING
to ESTABLISHED. At this point, it is no longer reachable by
any socket on the local system.

This patch addresses the above situation by moving the newly ESTABLISHED
association into SHUTDOWN-SENT state and bundling a SHUTDOWN after
the COOKIE-ACK chunk. This way, the restarted associate immidiately
enters the shutdown procedure and forces the termination of the
unreachable association.

Reported-by: David Laight <[email protected]>
Signed-off-by: Vlad Yasevich <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
include/net/sctp/command.h | 2 +-
net/sctp/sm_statefuns.c | 19 ++++++++++++++++---
2 files changed, 17 insertions(+), 4 deletions(-)

--- a/include/net/sctp/command.h
+++ b/include/net/sctp/command.h
@@ -115,7 +115,7 @@ typedef enum {
* analysis of the state functions, but in reality just taken from
* thin air in the hopes othat we don't trigger a kernel panic.
*/
-#define SCTP_MAX_NUM_COMMANDS 14
+#define SCTP_MAX_NUM_COMMANDS 20

typedef union {
void *zero_all; /* Set to NULL to clear the entire union */
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -1775,9 +1775,22 @@ static sctp_disposition_t sctp_sf_do_dup
/* Update the content of current association. */
sctp_add_cmd_sf(commands, SCTP_CMD_UPDATE_ASSOC, SCTP_ASOC(new_asoc));
sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP, SCTP_ULPEVENT(ev));
- sctp_add_cmd_sf(commands, SCTP_CMD_NEW_STATE,
- SCTP_STATE(SCTP_STATE_ESTABLISHED));
- sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(repl));
+ if (sctp_state(asoc, SHUTDOWN_PENDING) &&
+ (sctp_sstate(asoc->base.sk, CLOSING) ||
+ sock_flag(asoc->base.sk, SOCK_DEAD))) {
+ /* if were currently in SHUTDOWN_PENDING, but the socket
+ * has been closed by user, don't transition to ESTABLISHED.
+ * Instead trigger SHUTDOWN bundled with COOKIE_ACK.
+ */
+ sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(repl));
+ return sctp_sf_do_9_2_start_shutdown(net, ep, asoc,
+ SCTP_ST_CHUNK(0), NULL,
+ commands);
+ } else {
+ sctp_add_cmd_sf(commands, SCTP_CMD_NEW_STATE,
+ SCTP_STATE(SCTP_STATE_ESTABLISHED));
+ sctp_add_cmd_sf(commands, SCTP_CMD_REPLY, SCTP_CHUNK(repl));
+ }
return SCTP_DISPOSITION_CONSUME;

nomem_ev:

2014-10-13 02:30:26

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 16/25] uas: Add another ASM1051 usb-id to the uas blacklist

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

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

From: Hans de Goede <[email protected]>

commit 710f1bf16ab1b1558f099b62c5011c4cbba6a7bb upstream.

As most ASM1051 based devices, this one has unfixable issues with uas too.

Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/storage/unusual_uas.h | 8 ++++++++
1 file changed, 8 insertions(+)

--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -67,3 +67,11 @@ UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x99
"JMS567",
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_NO_REPORT_OPCODES),
+
+/* Most ASM1051 based devices have issues with uas, blacklist them all */
+/* Reported-by: Hans de Goede <[email protected]> */
+UNUSUAL_DEV(0x174c, 0x5106, 0x0000, 0x9999,
+ "ASMedia",
+ "ASM1051",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_IGNORE_UAS),

2014-10-13 02:34:52

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 03/25] team: avoid race condition in scheduling delayed work

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

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

From: Joe Lawrence <[email protected]>

[ Upstream commit 47549650abd13d873fd2e5fc218db19e21031074 ]

When team_notify_peers and team_mcast_rejoin are called, they both reset
their respective .count_pending atomic variable. Then when the actual
worker function is executed, the variable is atomically decremented.
This pattern introduces a potential race condition where the
.count_pending rolls over and the worker function keeps rescheduling
until .count_pending decrements to zero again:

THREAD 1 THREAD 2

======== ========
team_notify_peers(teamX)
atomic_set count_pending = 1
schedule_delayed_work
team_notify_peers(teamX)
atomic_set count_pending = 1
team_notify_peers_work
atomic_dec_and_test
count_pending = 0
(return)
schedule_delayed_work
team_notify_peers_work
atomic_dec_and_test
count_pending = -1
schedule_delayed_work
(repeat until count_pending = 0)

Instead of assigning a new value to .count_pending, use atomic_add to
tack-on the additional desired worker function invocations.

Signed-off-by: Joe Lawrence <[email protected]>
Acked-by: Jiri Pirko <[email protected]>
Fixes: fc423ff00df3a19554414ee ("team: add peer notification")
Fixes: 492b200efdd20b8fcfdac87 ("team: add support for sending multicast rejoins")
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/net/team/team.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -647,7 +647,7 @@ static void team_notify_peers(struct tea
{
if (!team->notify_peers.count || !netif_running(team->dev))
return;
- atomic_set(&team->notify_peers.count_pending, team->notify_peers.count);
+ atomic_add(team->notify_peers.count, &team->notify_peers.count_pending);
schedule_delayed_work(&team->notify_peers.dw, 0);
}

@@ -687,7 +687,7 @@ static void team_mcast_rejoin(struct tea
{
if (!team->mcast_rejoin.count || !netif_running(team->dev))
return;
- atomic_set(&team->mcast_rejoin.count_pending, team->mcast_rejoin.count);
+ atomic_add(team->mcast_rejoin.count, &team->mcast_rejoin.count_pending);
schedule_delayed_work(&team->mcast_rejoin.dw, 0);
}


2014-10-13 02:35:20

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 02/25] net: systemport: fix bcm_sysport_insert_tsb()

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

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

From: Florian Fainelli <[email protected]>

[ Upstream commit e87474a6e697857df21cff0707a2472abceca8b3 ]

Similar to commit bc23333ba11fb7f959b7e87e121122f5a0fbbca8 ("net:
bcmgenet: fix bcmgenet_put_tx_csum()"), we need to return the skb
pointer in case we had to reallocate the SKB headroom.

Fixes: 80105befdb4b8 ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver")
Signed-off-by: Florian Fainelli <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
drivers/net/ethernet/broadcom/bcmsysport.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

--- a/drivers/net/ethernet/broadcom/bcmsysport.c
+++ b/drivers/net/ethernet/broadcom/bcmsysport.c
@@ -848,7 +848,8 @@ static irqreturn_t bcm_sysport_wol_isr(i
return IRQ_HANDLED;
}

-static int bcm_sysport_insert_tsb(struct sk_buff *skb, struct net_device *dev)
+static struct sk_buff *bcm_sysport_insert_tsb(struct sk_buff *skb,
+ struct net_device *dev)
{
struct sk_buff *nskb;
struct bcm_tsb *tsb;
@@ -864,7 +865,7 @@ static int bcm_sysport_insert_tsb(struct
if (!nskb) {
dev->stats.tx_errors++;
dev->stats.tx_dropped++;
- return -ENOMEM;
+ return NULL;
}
skb = nskb;
}
@@ -883,7 +884,7 @@ static int bcm_sysport_insert_tsb(struct
ip_proto = ipv6_hdr(skb)->nexthdr;
break;
default:
- return 0;
+ return skb;
}

/* Get the checksum offset and the L4 (transport) offset */
@@ -902,7 +903,7 @@ static int bcm_sysport_insert_tsb(struct
tsb->l4_ptr_dest_map = csum_info;
}

- return 0;
+ return skb;
}

static netdev_tx_t bcm_sysport_xmit(struct sk_buff *skb,
@@ -936,8 +937,8 @@ static netdev_tx_t bcm_sysport_xmit(stru

/* Insert TSB and checksum infos */
if (priv->tsb_en) {
- ret = bcm_sysport_insert_tsb(skb, dev);
- if (ret) {
+ skb = bcm_sysport_insert_tsb(skb, dev);
+ if (!skb) {
ret = NETDEV_TX_OK;
goto out;
}

2014-10-13 02:35:49

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 15/25] uas: Add US_FL_NO_ATA_1X quirk for Seagate (0bc2:ab20) drives

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

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

From: Hans de Goede <[email protected]>

commit f9554a6b199360c2f888173fd600e1eb7ff165ef upstream.

https://bbs.archlinux.org/viewtopic.php?pid=1457492

Signed-off-by: Hans de Goede <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/usb/storage/unusual_uas.h | 7 +++++++
1 file changed, 7 insertions(+)

--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -54,6 +54,13 @@ UNUSUAL_DEV(0x0bc2, 0x3312, 0x0000, 0x99
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_NO_ATA_1X),

+/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
+UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
+ "Seagate",
+ "Backup+ BK",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
+
/* Reported-by: Claudio Bizzarri <[email protected]> */
UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
"JMicron",

2014-10-13 02:36:14

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 12/25] PCI: pciehp: Fix wait time in timeout message

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

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

From: Yinghai Lu <[email protected]>

commit d433889cd5a0933fbd90f1e65bff5a8d7963cc52 upstream.

When we warned about a timeout on a hotplug command, we previously printed
the time between calls to pcie_write_cmd(), without accounting for any time
spent actually waiting. Consider this sequence:

pcie_write_cmd
write SLTCTL
cmd_started = jiffies # T1

pcie_write_cmd
pcie_wait_cmd
now = jiffies # T2
wait_event_timeout # we may wait here
if (timeout)
ctrl_info("Timeout on command issued %u msec ago",
jiffies_to_msecs(now - cmd_started))

We previously printed (T2 - T1), but that doesn't include the time spent in
wait_event_timeout().

Fix this by using the current jiffies value, not the one cached before
calling wait_event_timeout().

[bhelgaas: changelog, use current jiffies instead of adding timeout]
Fixes: 40b960831cfa ("PCI: pciehp: Compute timeout from hotplug command start time")
Signed-off-by: Yinghai Lu <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
drivers/pci/hotplug/pciehp_hpc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -173,7 +173,7 @@ static void pcie_wait_cmd(struct control
if (!rc)
ctrl_info(ctrl, "Timeout on hotplug command %#010x (issued %u msec ago)\n",
ctrl->slot_ctrl,
- jiffies_to_msecs(now - ctrl->cmd_started));
+ jiffies_to_msecs(jiffies - ctrl->cmd_started));
}

/**

2014-10-13 02:36:16

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 10/25] x86: Tell irq work about self IPI support

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

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

From: Frederic Weisbecker <[email protected]>

commit 3010279f0fc36f0388872203e63ca49912f648fd upstream.

x86 supports irq work self-IPIs when local apic is available. This is
partly known on runtime so lets implement arch_irq_work_has_interrupt()
accordingly.

This should be safely called after setup_arch().

Acked-by: Peter Zijlstra (Intel) <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Paul E. McKenney <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Signed-off-by: Frederic Weisbecker <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
arch/x86/include/asm/Kbuild | 1 -
arch/x86/include/asm/irq_work.h | 11 +++++++++++
arch/x86/kernel/irq_work.c | 2 +-
3 files changed, 12 insertions(+), 2 deletions(-)

--- a/arch/x86/include/asm/Kbuild
+++ b/arch/x86/include/asm/Kbuild
@@ -7,6 +7,5 @@ genhdr-y += unistd_x32.h
generic-y += clkdev.h
generic-y += cputime.h
generic-y += early_ioremap.h
-generic-y += irq_work.h
generic-y += mcs_spinlock.h
generic-y += scatterlist.h
--- /dev/null
+++ b/arch/x86/include/asm/irq_work.h
@@ -0,0 +1,11 @@
+#ifndef _ASM_IRQ_WORK_H
+#define _ASM_IRQ_WORK_H
+
+#include <asm/processor.h>
+
+static inline bool arch_irq_work_has_interrupt(void)
+{
+ return cpu_has_apic;
+}
+
+#endif /* _ASM_IRQ_WORK_H */
--- a/arch/x86/kernel/irq_work.c
+++ b/arch/x86/kernel/irq_work.c
@@ -41,7 +41,7 @@ __visible void smp_trace_irq_work_interr
void arch_irq_work_raise(void)
{
#ifdef CONFIG_X86_LOCAL_APIC
- if (!cpu_has_apic)
+ if (!arch_irq_work_has_interrupt())
return;

apic->send_IPI_self(IRQ_WORK_VECTOR);

2014-10-13 02:37:07

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 3.17 01/25] ip6_gre: fix flowi6_proto value in xmit path

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

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

From: Nicolas Dichtel <[email protected]>

[ Upstream commit 3be07244b7337760a3269d56b2f4a63e72218648 ]

In xmit path, we build a flowi6 which will be used for the output route lookup.
We are sending a GRE packet, neither IPv4 nor IPv6 encapsulated packet, thus the
protocol should be IPPROTO_GRE.

Fixes: c12b395a4664 ("gre: Support GRE over IPv6")
Reported-by: Matthieu Ternisien d'Ouville <[email protected]>
Signed-off-by: Nicolas Dichtel <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
net/ipv6/ip6_gre.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -782,7 +782,7 @@ static inline int ip6gre_xmit_ipv4(struc
encap_limit = t->parms.encap_limit;

memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6));
- fl6.flowi6_proto = IPPROTO_IPIP;
+ fl6.flowi6_proto = IPPROTO_GRE;

dsfield = ipv4_get_dsfield(iph);

@@ -832,7 +832,7 @@ static inline int ip6gre_xmit_ipv6(struc
encap_limit = t->parms.encap_limit;

memcpy(&fl6, &t->fl.u.ip6, sizeof(fl6));
- fl6.flowi6_proto = IPPROTO_IPV6;
+ fl6.flowi6_proto = IPPROTO_GRE;

dsfield = ipv6_get_dsfield(ipv6h);
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)

Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.17.1 release.
> There are 25 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.

Actually, 3.17 is a filesystem killer for some unlucky users due to the
libata blacklist being disabled by a bug.

Patch:
https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA blacklist)

I am not complaining that the patch hasn't made it to 3.17.1 (or even
mainline) yet. This is just a head's up to those that might be affected by
the problem.

--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh

2014-10-13 13:23:28

by Chuck Ebbert

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, 13 Oct 2014 08:28:35 -0300
Henrique de Moraes Holschuh <[email protected]> wrote:

> On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 3.17.1
> > release. There are 25 patches in this series, all will be posted
> > as a response to this one. If anyone has any issues with these
> > being applied, please let me know.
>
> Actually, 3.17 is a filesystem killer for some unlucky users due to
> the libata blacklist being disabled by a bug.
>
> Patch:
> https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> blacklist)
>

There are some more bugs too:


RCU stalls, fix has been in rcu/urgent for 7 days:
https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b


blk-mq bio merging (still no good fix available):
https://lkml.org/lkml/2014/10/9/729
(The fix sitting in the block tree:
https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
is wrong according to that message.)


Stalls when using nohz, requires series of six patches to fix that
didn't make 3.17 and weren't marked for -stable:

>From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <[email protected]>
Subject: nohz: Move nohz full init call to tick init

>From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <[email protected]>
Subject: irq_work: Introduce arch_irq_work_has_interrupt()

>From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <[email protected]>
Subject: irq_work: Force raised irq work to run on irq work interrupt

>From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <[email protected]>
Subject: x86: Tell irq work about self IPI support

>From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <[email protected]>
Subject: arm: Tell irq work about self IPI support

>From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
From: Frederic Weisbecker <[email protected]>
Subject: arm64: Tell irq work about self IPI support

2014-10-13 15:20:10

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On 10/12/2014 07:24 PM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.17.1 release.
> There are 25 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
> Anything received after that time might be too late.
>

Build results:
total: 134 pass: 134 fail: 0

Qemu test results:
total: 30 pass: 30 fail: 0

Details are available at http://server.roeck-us.net:8010/builders.

Guenter

2014-10-13 15:25:17

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 1:28 PM, Henrique de Moraes Holschuh
<[email protected]> wrote:
>
> I am not complaining that the patch hasn't made it to 3.17.1 (or even
> mainline) yet.

Hmm. It's been in mainline.since last Friday, afaik.

Linus

2014-10-13 15:53:42

by Romain Francoise

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 04:24:53AM +0200, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.17.1 release.
> There are 25 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.

Commit 1c40279960 ("libata: Un-break ATA blacklist") is apparently not
included, is in Linus' tree since Friday, and is rather urgent.

2014-10-13 15:58:09

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On 10/13/2014 08:44 AM, Romain Francoise wrote:
> On Mon, Oct 13, 2014 at 04:24:53AM +0200, Greg Kroah-Hartman wrote:
>> This is the start of the stable review cycle for the 3.17.1 release.
>> There are 25 patches in this series, all will be posted as a response
>> to this one. If anyone has any issues with these being applied, please
>> let me know.
>
> Commit 1c40279960 ("libata: Un-break ATA blacklist") is apparently not
> included, is in Linus' tree since Friday, and is rather urgent.
>

Partly unrelated, but if you send me a qemu config and qemu command line
to test if the blacklist is working (one which fails if it doesn't),
I'll be happy to add it to my automated tests.

Guenter

2014-10-13 20:35:44

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On 10/12/2014 08:24 PM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 3.17.1 release.
> There are 25 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.17.1-rc1.gz
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h

Compiled and booted on my test system. No dmesg regressions noticed
compared to 3.17. Ran kselftest target as it is included in this
release. Didn't notice any breakages.

-- Shuah


--
Shuah Khan
Sr. Linux Kernel Developer
Samsung Research America (Silicon Valley)
[email protected] | (970) 217-8978

2014-10-13 21:03:49

by George Spelvin

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

Romain Francoise <[email protected]> wrote:
> Commit 1c40279960 ("libata: Un-break ATA blacklist") is apparently not
> included, is in Linus' tree since Friday, and is rather urgent.

As the patch author, I agree. If nothing else, I'd like to be able to take
off this brown paper bag.

2014-10-14 01:28:38

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 05:25:14PM +0200, Linus Torvalds wrote:
> On Mon, Oct 13, 2014 at 1:28 PM, Henrique de Moraes Holschuh
> <[email protected]> wrote:
> >
> > I am not complaining that the patch hasn't made it to 3.17.1 (or even
> > mainline) yet.
>
> Hmm. It's been in mainline.since last Friday, afaik.

Now queued up, thanks.

greg k-h

2014-10-14 01:28:47

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 05:03:46PM -0400, George Spelvin wrote:
> Romain Francoise <[email protected]> wrote:
> > Commit 1c40279960 ("libata: Un-break ATA blacklist") is apparently not
> > included, is in Linus' tree since Friday, and is rather urgent.
>
> As the patch author, I agree. If nothing else, I'd like to be able to take
> off this brown paper bag.

Now queued up.

thanks,

greg k-h

2014-10-14 01:31:09

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> Stalls when using nohz, requires series of six patches to fix that
> didn't make 3.17 and weren't marked for -stable:
>
> From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: nohz: Move nohz full init call to tick init
>
> From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> From: Peter Zijlstra <[email protected]>
> Subject: irq_work: Introduce arch_irq_work_has_interrupt()
>
> From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: irq_work: Force raised irq work to run on irq work interrupt
>
> From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: x86: Tell irq work about self IPI support
>
> From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: arm: Tell irq work about self IPI support

I have all of these in 3.17.1-rc1.

> From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: arm64: Tell irq work about self IPI support

This one I missed, probably because no one actually has a arm64 machine
that is "public" :)

I'll go queue that one up now, thanks.

greg k-h

2014-10-14 02:40:15

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 08:19:56AM -0700, Guenter Roeck wrote:
> On 10/12/2014 07:24 PM, Greg Kroah-Hartman wrote:
> >This is the start of the stable review cycle for the 3.17.1 release.
> >There are 25 patches in this series, all will be posted as a response
> >to this one. If anyone has any issues with these being applied, please
> >let me know.
> >
> >Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
> >Anything received after that time might be too late.
> >
>
> Build results:
> total: 134 pass: 134 fail: 0
>
> Qemu test results:
> total: 30 pass: 30 fail: 0
>
> Details are available at http://server.roeck-us.net:8010/builders.

Thanks for testing all 3 of these and letting me know.

greg k-h

2014-10-14 02:41:09

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 02:35:41PM -0600, Shuah Khan wrote:
> On 10/12/2014 08:24 PM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 3.17.1 release.
> > There are 25 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.17.1-rc1.gz
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
> Compiled and booted on my test system. No dmesg regressions noticed
> compared to 3.17. Ran kselftest target as it is included in this
> release. Didn't notice any breakages.

Yeah, kselftest! I had forgotten that was operational in this release,
I'll go add it to my release scripts to make sure it is run before I cut
an -rc.

Thanks for testing all of these and letting me know.

greg k-h

2014-10-14 03:27:12

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Tue, Oct 14, 2014 at 04:39:11AM +0200, Greg Kroah-Hartman wrote:
> On Mon, Oct 13, 2014 at 08:19:56AM -0700, Guenter Roeck wrote:
> > On 10/12/2014 07:24 PM, Greg Kroah-Hartman wrote:
> > >This is the start of the stable review cycle for the 3.17.1 release.
> > >There are 25 patches in this series, all will be posted as a response
> > >to this one. If anyone has any issues with these being applied, please
> > >let me know.
> > >
> > >Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
> > >Anything received after that time might be too late.
> > >
> >
> > Build results:
> > total: 134 pass: 134 fail: 0
> >
> > Qemu test results:
> > total: 30 pass: 30 fail: 0
> >
> > Details are available at http://server.roeck-us.net:8010/builders.
>
> Thanks for testing all 3 of these and letting me know.

All 4, sorry...

2014-10-14 10:38:21

by Satoru Takeuchi

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

At Tue, 14 Oct 2014 05:26:07 +0200,
Greg Kroah-Hartman wrote:
>
> On Tue, Oct 14, 2014 at 04:39:11AM +0200, Greg Kroah-Hartman wrote:
> > On Mon, Oct 13, 2014 at 08:19:56AM -0700, Guenter Roeck wrote:
> > > On 10/12/2014 07:24 PM, Greg Kroah-Hartman wrote:
> > > >This is the start of the stable review cycle for the 3.17.1 release.
> > > >There are 25 patches in this series, all will be posted as a response
> > > >to this one. If anyone has any issues with these being applied, please
> > > >let me know.
> > > >
> > > >Responses should be made by Wed Oct 15 02:24:45 UTC 2014.
> > > >Anything received after that time might be too late.
> > > >
> > >
> > > Build results:
> > > total: 134 pass: 134 fail: 0
> > >
> > > Qemu test results:
> > > total: 30 pass: 30 fail: 0
> > >
> > > Details are available at http://server.roeck-us.net:8010/builders.
> >
> > Thanks for testing all 3 of these and letting me know.
>
> All 4, sorry...

Those 4 kernels also passd my test.

- Test Cases:
- Build this kernel.
- Boot this kernel.
- Build the latest mainline kernel with this kernel.

- Test Tool:
https://github.com/satoru-takeuchi/test-linux-stable

- Test Result (kernel .config, ktest config and test log):
http://satoru-takeuchi.org/test-linux-stable/results/<version>-<test datetime>.tar.xz

- Build Environment:
- OS: Debian Jessy x86_64
- CPU: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz x 4
- memory: 8GB

- Test Target Environment:
- Debian Jessy x86_64 (KVM guest on the Build Environment)
- # of vCPU: 2
- memory: 2GB

Thanks,
Satoru

2014-11-19 17:22:37

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> On Mon, 13 Oct 2014 08:28:35 -0300
> Henrique de Moraes Holschuh <[email protected]> wrote:
>
> > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > This is the start of the stable review cycle for the 3.17.1
> > > release. There are 25 patches in this series, all will be posted
> > > as a response to this one. If anyone has any issues with these
> > > being applied, please let me know.
> >
> > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > the libata blacklist being disabled by a bug.
> >
> > Patch:
> > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > blacklist)
> >
>
> There are some more bugs too:
>
>
> RCU stalls, fix has been in rcu/urgent for 7 days:
> https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b

Doesn't build in 3.17 properly :(

> blk-mq bio merging (still no good fix available):
> https://lkml.org/lkml/2014/10/9/729
> (The fix sitting in the block tree:
> https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> is wrong according to that message.)

Did this ever get resolved?

> Stalls when using nohz, requires series of six patches to fix that
> didn't make 3.17 and weren't marked for -stable:
>
> From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: nohz: Move nohz full init call to tick init
>
> From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> From: Peter Zijlstra <[email protected]>
> Subject: irq_work: Introduce arch_irq_work_has_interrupt()
>
> From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: irq_work: Force raised irq work to run on irq work interrupt
>
> From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: x86: Tell irq work about self IPI support
>
> From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: arm: Tell irq work about self IPI support
>
> From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
To: 09f6edd424218eb69078551b2ecfada1f2d098eb
To: Chuck Ebbert <[email protected]>
Cc: Henrique de Moraes Holschuh <[email protected]>,
[email protected], [email protected]
Bcc:
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review
Reply-To:
In-Reply-To: <20141013082319.175d90bb@as>

On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> On Mon, 13 Oct 2014 08:28:35 -0300
> Henrique de Moraes Holschuh <[email protected]> wrote:
>
> > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > This is the start of the stable review cycle for the 3.17.1
> > > release. There are 25 patches in this series, all will be posted
> > > as a response to this one. If anyone has any issues with these
> > > being applied, please let me know.
> >
> > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > the libata blacklist being disabled by a bug.
> >
> > Patch:
> > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > blacklist)
> >
>
> There are some more bugs too:
>
>
> RCU stalls, fix has been in rcu/urgent for 7 days:
> https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b

Doesn't build in 3.17 properly :(

> blk-mq bio merging (still no good fix available):
> https://lkml.org/lkml/2014/10/9/729
> (The fix sitting in the block tree:
> https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> is wrong according to that message.)

Did this ever get resolved?

> Stalls when using nohz, requires series of six patches to fix that
> didn't make 3.17 and weren't marked for -stable:
>
> From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: nohz: Move nohz full init call to tick init
>
> From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> From: Peter Zijlstra <[email protected]>
> Subject: irq_work: Introduce arch_irq_work_has_interrupt()
>
> From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: irq_work: Force raised irq work to run on irq work interrupt
>
> From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: x86: Tell irq work about self IPI support
>
> From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: arm: Tell irq work about self IPI support
>
> From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> From: Frederic Weisbecker <[email protected]>
> Subject: arm64: Tell irq work about self IPI support

These are pretty intrusive, maybe 3.18 is better for people to use :)

If Frederic says it's ok for me to backport these, I will, but I want
his ack first.

thanks,

greg k-h

2014-11-19 19:44:22

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
> On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > On Mon, 13 Oct 2014 08:28:35 -0300
> > Henrique de Moraes Holschuh <[email protected]> wrote:
> >
> > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > This is the start of the stable review cycle for the 3.17.1
> > > > release. There are 25 patches in this series, all will be posted
> > > > as a response to this one. If anyone has any issues with these
> > > > being applied, please let me know.
> > >
> > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > the libata blacklist being disabled by a bug.
> > >
> > > Patch:
> > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > blacklist)
> > >
> >
> > There are some more bugs too:
> >
> >
> > RCU stalls, fix has been in rcu/urgent for 7 days:
> > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
>
> Doesn't build in 3.17 properly :(
>
> > blk-mq bio merging (still no good fix available):
> > https://lkml.org/lkml/2014/10/9/729
> > (The fix sitting in the block tree:
> > https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> > is wrong according to that message.)
>
> Did this ever get resolved?
>
> > Stalls when using nohz, requires series of six patches to fix that
> > didn't make 3.17 and weren't marked for -stable:
> >
> > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: nohz: Move nohz full init call to tick init
> >
> > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > From: Peter Zijlstra <[email protected]>
> > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> >
> > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: irq_work: Force raised irq work to run on irq work interrupt
> >
> > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: x86: Tell irq work about self IPI support
> >
> > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: arm: Tell irq work about self IPI support
> >
> > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> To: 09f6edd424218eb69078551b2ecfada1f2d098eb
> To: Chuck Ebbert <[email protected]>
> Cc: Henrique de Moraes Holschuh <[email protected]>,
> [email protected], [email protected]
> Bcc:
> Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review
> Reply-To:
> In-Reply-To: <20141013082319.175d90bb@as>
>
> On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > On Mon, 13 Oct 2014 08:28:35 -0300
> > Henrique de Moraes Holschuh <[email protected]> wrote:
> >
> > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > This is the start of the stable review cycle for the 3.17.1
> > > > release. There are 25 patches in this series, all will be posted
> > > > as a response to this one. If anyone has any issues with these
> > > > being applied, please let me know.
> > >
> > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > the libata blacklist being disabled by a bug.
> > >
> > > Patch:
> > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > blacklist)
> > >
> >
> > There are some more bugs too:
> >
> >
> > RCU stalls, fix has been in rcu/urgent for 7 days:
> > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
>
> Doesn't build in 3.17 properly :(

Older kernels can use rcu_note_context_switch() instead of
rcu_note_voluntary_context_switch(), which didn't show up until quite
recently. Please note that rcu_note_context_switch() is quite a bit
more heavy-weight than is rcu_note_voluntary_context_switch(), but it
should be OK in this context.

Thanx, Paul

> > blk-mq bio merging (still no good fix available):
> > https://lkml.org/lkml/2014/10/9/729
> > (The fix sitting in the block tree:
> > https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> > is wrong according to that message.)
>
> Did this ever get resolved?
>
> > Stalls when using nohz, requires series of six patches to fix that
> > didn't make 3.17 and weren't marked for -stable:
> >
> > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: nohz: Move nohz full init call to tick init
> >
> > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > From: Peter Zijlstra <[email protected]>
> > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> >
> > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: irq_work: Force raised irq work to run on irq work interrupt
> >
> > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: x86: Tell irq work about self IPI support
> >
> > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: arm: Tell irq work about self IPI support
> >
> > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: arm64: Tell irq work about self IPI support
>
> These are pretty intrusive, maybe 3.18 is better for people to use :)
>
> If Frederic says it's ok for me to backport these, I will, but I want
> his ack first.
>
> thanks,
>
> greg k-h
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2014-11-19 20:16:51

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Wed, Nov 19, 2014 at 11:44:14AM -0800, Paul E. McKenney wrote:
> On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
> > On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > > On Mon, 13 Oct 2014 08:28:35 -0300
> > > Henrique de Moraes Holschuh <[email protected]> wrote:
> > >
> > > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > > This is the start of the stable review cycle for the 3.17.1
> > > > > release. There are 25 patches in this series, all will be posted
> > > > > as a response to this one. If anyone has any issues with these
> > > > > being applied, please let me know.
> > > >
> > > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > > the libata blacklist being disabled by a bug.
> > > >
> > > > Patch:
> > > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > > blacklist)
> > > >
> > >
> > > There are some more bugs too:
> > >
> > >
> > > RCU stalls, fix has been in rcu/urgent for 7 days:
> > > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
> >
> > Doesn't build in 3.17 properly :(
> >
> > > blk-mq bio merging (still no good fix available):
> > > https://lkml.org/lkml/2014/10/9/729
> > > (The fix sitting in the block tree:
> > > https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> > > is wrong according to that message.)
> >
> > Did this ever get resolved?
> >
> > > Stalls when using nohz, requires series of six patches to fix that
> > > didn't make 3.17 and weren't marked for -stable:
> > >
> > > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: nohz: Move nohz full init call to tick init
> > >
> > > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > > From: Peter Zijlstra <[email protected]>
> > > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> > >
> > > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: irq_work: Force raised irq work to run on irq work interrupt
> > >
> > > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: x86: Tell irq work about self IPI support
> > >
> > > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: arm: Tell irq work about self IPI support
> > >
> > > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > To: 09f6edd424218eb69078551b2ecfada1f2d098eb
> > To: Chuck Ebbert <[email protected]>
> > Cc: Henrique de Moraes Holschuh <[email protected]>,
> > [email protected], [email protected]
> > Bcc:
> > Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review
> > Reply-To:
> > In-Reply-To: <20141013082319.175d90bb@as>
> >
> > On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > > On Mon, 13 Oct 2014 08:28:35 -0300
> > > Henrique de Moraes Holschuh <[email protected]> wrote:
> > >
> > > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > > This is the start of the stable review cycle for the 3.17.1
> > > > > release. There are 25 patches in this series, all will be posted
> > > > > as a response to this one. If anyone has any issues with these
> > > > > being applied, please let me know.
> > > >
> > > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > > the libata blacklist being disabled by a bug.
> > > >
> > > > Patch:
> > > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > > blacklist)
> > > >
> > >
> > > There are some more bugs too:
> > >
> > >
> > > RCU stalls, fix has been in rcu/urgent for 7 days:
> > > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
> >
> > Doesn't build in 3.17 properly :(
>
> Older kernels can use rcu_note_context_switch() instead of
> rcu_note_voluntary_context_switch(), which didn't show up until quite
> recently. Please note that rcu_note_context_switch() is quite a bit
> more heavy-weight than is rcu_note_voluntary_context_switch(), but it
> should be OK in this context.

"OK" as in "worth the overhead to fix the known bug"? Or is this just
not worth backporting to 3.17, 3.14, and 3.10 as no one really hits this
issue there?

thanks,

greg k-h

2014-11-19 20:20:03

by Holger Hoffstätte

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Wed, 19 Nov 2014 11:44:14 -0800, Paul E. McKenney wrote:

> On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
>>
>> Doesn't build in 3.17 properly :(
>
> Older kernels can use rcu_note_context_switch() instead of
> rcu_note_voluntary_context_switch(), which didn't show up until quite
> recently. Please note that rcu_note_context_switch() is quite a bit
> more heavy-weight than is rcu_note_voluntary_context_switch(), but it
> should be OK in this context.

When I tried this in 3.14.x the kernel would lock up immediately during
boot (not even a console). This may or may not have to do with me also
using the BFS scheduler, but it's IMHO something that should be
double-checked.

I also tried to backport the necessary macros but that went nowhere
fast, since they ended up pulling in most of the rcu-task stuff..

-h

2014-11-19 20:35:21

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Wed, Nov 19, 2014 at 12:16:48PM -0800, Greg Kroah-Hartman wrote:
> On Wed, Nov 19, 2014 at 11:44:14AM -0800, Paul E. McKenney wrote:
> > On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
> > > On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > > > On Mon, 13 Oct 2014 08:28:35 -0300
> > > > Henrique de Moraes Holschuh <[email protected]> wrote:
> > > >
> > > > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > > > This is the start of the stable review cycle for the 3.17.1
> > > > > > release. There are 25 patches in this series, all will be posted
> > > > > > as a response to this one. If anyone has any issues with these
> > > > > > being applied, please let me know.
> > > > >
> > > > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > > > the libata blacklist being disabled by a bug.
> > > > >
> > > > > Patch:
> > > > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > > > blacklist)
> > > > >
> > > >
> > > > There are some more bugs too:
> > > >
> > > >
> > > > RCU stalls, fix has been in rcu/urgent for 7 days:
> > > > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
> > >
> > > Doesn't build in 3.17 properly :(
> > >
> > > > blk-mq bio merging (still no good fix available):
> > > > https://lkml.org/lkml/2014/10/9/729
> > > > (The fix sitting in the block tree:
> > > > https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> > > > is wrong according to that message.)
> > >
> > > Did this ever get resolved?
> > >
> > > > Stalls when using nohz, requires series of six patches to fix that
> > > > didn't make 3.17 and weren't marked for -stable:
> > > >
> > > > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > > > From: Frederic Weisbecker <[email protected]>
> > > > Subject: nohz: Move nohz full init call to tick init
> > > >
> > > > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > > > From: Peter Zijlstra <[email protected]>
> > > > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> > > >
> > > > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > > > From: Frederic Weisbecker <[email protected]>
> > > > Subject: irq_work: Force raised irq work to run on irq work interrupt
> > > >
> > > > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > > > From: Frederic Weisbecker <[email protected]>
> > > > Subject: x86: Tell irq work about self IPI support
> > > >
> > > > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > > > From: Frederic Weisbecker <[email protected]>
> > > > Subject: arm: Tell irq work about self IPI support
> > > >
> > > > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > > > From: Frederic Weisbecker <[email protected]>
> > > To: 09f6edd424218eb69078551b2ecfada1f2d098eb
> > > To: Chuck Ebbert <[email protected]>
> > > Cc: Henrique de Moraes Holschuh <[email protected]>,
> > > [email protected], [email protected]
> > > Bcc:
> > > Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review
> > > Reply-To:
> > > In-Reply-To: <20141013082319.175d90bb@as>
> > >
> > > On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > > > On Mon, 13 Oct 2014 08:28:35 -0300
> > > > Henrique de Moraes Holschuh <[email protected]> wrote:
> > > >
> > > > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > > > This is the start of the stable review cycle for the 3.17.1
> > > > > > release. There are 25 patches in this series, all will be posted
> > > > > > as a response to this one. If anyone has any issues with these
> > > > > > being applied, please let me know.
> > > > >
> > > > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > > > the libata blacklist being disabled by a bug.
> > > > >
> > > > > Patch:
> > > > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > > > blacklist)
> > > > >
> > > >
> > > > There are some more bugs too:
> > > >
> > > >
> > > > RCU stalls, fix has been in rcu/urgent for 7 days:
> > > > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
> > >
> > > Doesn't build in 3.17 properly :(
> >
> > Older kernels can use rcu_note_context_switch() instead of
> > rcu_note_voluntary_context_switch(), which didn't show up until quite
> > recently. Please note that rcu_note_context_switch() is quite a bit
> > more heavy-weight than is rcu_note_voluntary_context_switch(), but it
> > should be OK in this context.
>
> "OK" as in "worth the overhead to fix the known bug"? Or is this just
> not worth backporting to 3.17, 3.14, and 3.10 as no one really hits this
> issue there?

"OK" as in "the added overhead of rcu_note_context_switch() is likely
to be down in the noise in this case". I must confess that I have no
idea whether or not people hit this issue in 3.17, 3.14, or 3.10.

Thanx, Paul

2014-11-19 20:44:00

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Wed, Nov 19, 2014 at 12:35:12PM -0800, Paul E. McKenney wrote:
> On Wed, Nov 19, 2014 at 12:16:48PM -0800, Greg Kroah-Hartman wrote:
> > On Wed, Nov 19, 2014 at 11:44:14AM -0800, Paul E. McKenney wrote:
> > > On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
> > > > On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > > > > On Mon, 13 Oct 2014 08:28:35 -0300
> > > > > Henrique de Moraes Holschuh <[email protected]> wrote:
> > > > >
> > > > > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > > > > This is the start of the stable review cycle for the 3.17.1
> > > > > > > release. There are 25 patches in this series, all will be posted
> > > > > > > as a response to this one. If anyone has any issues with these
> > > > > > > being applied, please let me know.
> > > > > >
> > > > > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > > > > the libata blacklist being disabled by a bug.
> > > > > >
> > > > > > Patch:
> > > > > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > > > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > > > > blacklist)
> > > > > >
> > > > >
> > > > > There are some more bugs too:
> > > > >
> > > > >
> > > > > RCU stalls, fix has been in rcu/urgent for 7 days:
> > > > > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
> > > >
> > > > Doesn't build in 3.17 properly :(
> > > >
> > > > > blk-mq bio merging (still no good fix available):
> > > > > https://lkml.org/lkml/2014/10/9/729
> > > > > (The fix sitting in the block tree:
> > > > > https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git/commit/?h=for-3.18/core&id=764f612c6c3c231b9c12cfae7c328ccc9c453258
> > > > > is wrong according to that message.)
> > > >
> > > > Did this ever get resolved?
> > > >
> > > > > Stalls when using nohz, requires series of six patches to fix that
> > > > > didn't make 3.17 and weren't marked for -stable:
> > > > >
> > > > > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > > > > From: Frederic Weisbecker <[email protected]>
> > > > > Subject: nohz: Move nohz full init call to tick init
> > > > >
> > > > > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > > > > From: Peter Zijlstra <[email protected]>
> > > > > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> > > > >
> > > > > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > > > > From: Frederic Weisbecker <[email protected]>
> > > > > Subject: irq_work: Force raised irq work to run on irq work interrupt
> > > > >
> > > > > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > > > > From: Frederic Weisbecker <[email protected]>
> > > > > Subject: x86: Tell irq work about self IPI support
> > > > >
> > > > > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > > > > From: Frederic Weisbecker <[email protected]>
> > > > > Subject: arm: Tell irq work about self IPI support
> > > > >
> > > > > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > > > > From: Frederic Weisbecker <[email protected]>
> > > > To: 09f6edd424218eb69078551b2ecfada1f2d098eb
> > > > To: Chuck Ebbert <[email protected]>
> > > > Cc: Henrique de Moraes Holschuh <[email protected]>,
> > > > [email protected], [email protected]
> > > > Bcc:
> > > > Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review
> > > > Reply-To:
> > > > In-Reply-To: <20141013082319.175d90bb@as>
> > > >
> > > > On Mon, Oct 13, 2014 at 08:23:19AM -0500, Chuck Ebbert wrote:
> > > > > On Mon, 13 Oct 2014 08:28:35 -0300
> > > > > Henrique de Moraes Holschuh <[email protected]> wrote:
> > > > >
> > > > > > On Mon, 13 Oct 2014, Greg Kroah-Hartman wrote:
> > > > > > > This is the start of the stable review cycle for the 3.17.1
> > > > > > > release. There are 25 patches in this series, all will be posted
> > > > > > > as a response to this one. If anyone has any issues with these
> > > > > > > being applied, please let me know.
> > > > > >
> > > > > > Actually, 3.17 is a filesystem killer for some unlucky users due to
> > > > > > the libata blacklist being disabled by a bug.
> > > > > >
> > > > > > Patch:
> > > > > > https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/patch/?id=1c40279960bcd7d52dbdf1d466b20d24b99176c8
> > > > > > 1c40279960bcd7d52dbdf1d466b20d24b99176c8 (libata: Un-break ATA
> > > > > > blacklist)
> > > > > >
> > > > >
> > > > > There are some more bugs too:
> > > > >
> > > > >
> > > > > RCU stalls, fix has been in rcu/urgent for 7 days:
> > > > > https://git.kernel.org/cgit/linux/kernel/git/paulmck/linux-rcu.git/commit/?h=rcu/urgent&id=789cbbeca4eb7141cbd748ee93772471101b507b
> > > >
> > > > Doesn't build in 3.17 properly :(
> > >
> > > Older kernels can use rcu_note_context_switch() instead of
> > > rcu_note_voluntary_context_switch(), which didn't show up until quite
> > > recently. Please note that rcu_note_context_switch() is quite a bit
> > > more heavy-weight than is rcu_note_voluntary_context_switch(), but it
> > > should be OK in this context.
> >
> > "OK" as in "worth the overhead to fix the known bug"? Or is this just
> > not worth backporting to 3.17, 3.14, and 3.10 as no one really hits this
> > issue there?
>
> "OK" as in "the added overhead of rcu_note_context_switch() is likely
> to be down in the noise in this case". I must confess that I have no
> idea whether or not people hit this issue in 3.17, 3.14, or 3.10.

Ah, if no one has noticed this in older kernels, I'm not about to
backport it :)

Chuck, why do you think this needs to be in 3.17? And if so there, do
you think it also needs to be in older kernel trees as well?

thanks,

greg k-h

2014-11-20 00:13:32

by Frederic Weisbecker

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
> > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: nohz: Move nohz full init call to tick init
> >
> > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > From: Peter Zijlstra <[email protected]>
> > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> >
> > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: irq_work: Force raised irq work to run on irq work interrupt
> >
> > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: x86: Tell irq work about self IPI support
> >
> > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: arm: Tell irq work about self IPI support
> >
> > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > From: Frederic Weisbecker <[email protected]>
> > Subject: arm64: Tell irq work about self IPI support
>
> These are pretty intrusive, maybe 3.18 is better for people to use :)
>
> If Frederic says it's ok for me to backport these, I will, but I want
> his ack first.

Ah, not the whole lot is needed, only these (in the order):

irq_work: Introduce arch_irq_work_has_interrupt()
irq_work: Force raised irq work to run on irq work interrupt
x86: Tell irq work about self IPI support
arm: Tell irq work about self IPI support

You've applied them on your previous 3.17-stable release. They
just lacked stable tags upstream because we decided to backport them
after they got merged so you cherry-picked them directly :-)


Thanks!

2014-11-20 00:38:57

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 3.17 00/25] 3.17.1-stable review

On Thu, Nov 20, 2014 at 01:13:27AM +0100, Frederic Weisbecker wrote:
> On Wed, Nov 19, 2014 at 09:22:35AM -0800, Greg Kroah-Hartman wrote:
> > > From a80e49e2cc3145af014a8ae44f575829cc236192 Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: nohz: Move nohz full init call to tick init
> > >
> > > From c5c38ef3d70377dc504a6a3f611a3ec814bc757b Mon Sep 17 00:00:00 2001
> > > From: Peter Zijlstra <[email protected]>
> > > Subject: irq_work: Introduce arch_irq_work_has_interrupt()
> > >
> > > From 76a33061b9323b7fdb220ae5fa116c10833ec22e Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: irq_work: Force raised irq work to run on irq work interrupt
> > >
> > > From 3010279f0fc36f0388872203e63ca49912f648fd Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: x86: Tell irq work about self IPI support
> > >
> > > From 09f6edd424218eb69078551b2ecfada1f2d098eb Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: arm: Tell irq work about self IPI support
> > >
> > > From 3631073659d0aafeaa52227bb61a100efaf901dc Mon Sep 17 00:00:00 2001
> > > From: Frederic Weisbecker <[email protected]>
> > > Subject: arm64: Tell irq work about self IPI support
> >
> > These are pretty intrusive, maybe 3.18 is better for people to use :)
> >
> > If Frederic says it's ok for me to backport these, I will, but I want
> > his ack first.
>
> Ah, not the whole lot is needed, only these (in the order):
>
> irq_work: Introduce arch_irq_work_has_interrupt()
> irq_work: Force raised irq work to run on irq work interrupt
> x86: Tell irq work about self IPI support
> arm: Tell irq work about self IPI support
>
> You've applied them on your previous 3.17-stable release. They
> just lacked stable tags upstream because we decided to backport them
> after they got merged so you cherry-picked them directly :-)

So I already did this work? Great, I like it when that happens :)