* Re: net/usb/ax88179_178a driver broken in linux-3.12 [not found] <52890C7E.6000607@pobox.com> @ 2013-11-17 18:56 ` Mark Lord 2013-11-17 19:04 ` Mark Lord 0 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-11-17 18:56 UTC (permalink / raw) To: Eric Dumazet, Ming Lei, davem, netdev [-- Attachment #1: Type: text/plain, Size: 1460 bytes --] On 13-11-17 01:35 PM, Mark Lord wrote: > The USB3 network adapter locks up consistently for me here in 3.12, > but was working without issues in 3.11.x > > Source of the problem is this patch: > http://patchwork.ozlabs.org/patch/264021/ > > Reverting the patch fixes the adapter. Okay, upon closer inspection, the bug appears to be a math error. Here's a simpler (non-revert) patch to fix the bug that was introduced in 3.12. (un-mangled copy attached; reproduced below for ease of viewing). Don't exceed more than the 8 bytes of reserved ("needed_headroom") space when calling pskb_expand_head. This fixes a bug introduced in linux-3.12.0. Signed-off-by: Mark Lord <mlord@pobox.com> --- ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:47:26.127971404 -0500 @@ -1183,10 +1183,10 @@ if (((skb->len + 8) % frame_size) == 0) tx_hdr2 |= 0x80008000; /* Enable padding */ - headroom = skb_headroom(skb) - 8; + headroom = skb_headroom(skb); - if ((skb_header_cloned(skb) || headroom < 0) && - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { + if ((skb_header_cloned(skb) || headroom < 8) && + pskb_expand_head(skb, headroom < 8 ? 8 - headroom : 0, 0, GFP_ATOMIC)) { dev_kfree_skb_any(skb); return NULL; } -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com [-- Attachment #2: 51_ax88179_178a_fix_3.12_lockups.patch --] [-- Type: text/x-patch, Size: 811 bytes --] Don't exceed more than the 8 bytes of reserved ("needed_headroom") space when calling pskb_expand_head. This fixes a bug introduced in linux-3.12.0. Signed-off-by: Mark Lord <mlord@pobox.com> --- ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:47:26.127971404 -0500 @@ -1183,10 +1183,10 @@ if (((skb->len + 8) % frame_size) == 0) tx_hdr2 |= 0x80008000; /* Enable padding */ - headroom = skb_headroom(skb) - 8; + headroom = skb_headroom(skb); - if ((skb_header_cloned(skb) || headroom < 0) && - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { + if ((skb_header_cloned(skb) || headroom < 8) && + pskb_expand_head(skb, headroom < 8 ? 8 - headroom : 0, 0, GFP_ATOMIC)) { dev_kfree_skb_any(skb); return NULL; } ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-17 18:56 ` net/usb/ax88179_178a driver broken in linux-3.12 Mark Lord @ 2013-11-17 19:04 ` Mark Lord 2013-11-18 10:12 ` David Laight 0 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-11-17 19:04 UTC (permalink / raw) To: Eric Dumazet, Ming Lei, davem, netdev On 13-11-17 01:56 PM, Mark Lord wrote: > On 13-11-17 01:35 PM, Mark Lord wrote: >> The USB3 network adapter locks up consistently for me here in 3.12, >> but was working without issues in 3.11.x >> >> Source of the problem is this patch: >> http://patchwork.ozlabs.org/patch/264021/ >> >> Reverting the patch fixes the adapter. > > Okay, upon closer inspection, the bug appears to be a math error. > Here's a simpler (non-revert) patch to fix the bug that was introduced in 3.12. > > (un-mangled copy attached; reproduced below for ease of viewing). > > Don't exceed more than the 8 bytes of reserved ("needed_headroom") space > when calling pskb_expand_head. This fixes a bug introduced in linux-3.12.0. > > Signed-off-by: Mark Lord <mlord@pobox.com> > > > --- ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 > +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:47:26.127971404 -0500 > @@ -1183,10 +1183,10 @@ > if (((skb->len + 8) % frame_size) == 0) > tx_hdr2 |= 0x80008000; /* Enable padding */ > > - headroom = skb_headroom(skb) - 8; > + headroom = skb_headroom(skb); > > - if ((skb_header_cloned(skb) || headroom < 0) && > - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { > + if ((skb_header_cloned(skb) || headroom < 8) && > + pskb_expand_head(skb, headroom < 8 ? 8 - headroom : 0, 0, GFP_ATOMIC)) { > dev_kfree_skb_any(skb); > return NULL; > } > Dagnabbit.. that still locked up just after I sent the email, despite working fine in testing prior to that. So.. sticking with the full revert here for now. Perhaps one of you chaps can spot the bug. -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-17 19:04 ` Mark Lord @ 2013-11-18 10:12 ` David Laight 2013-11-18 13:32 ` David Laight 0 siblings, 1 reply; 23+ messages in thread From: David Laight @ 2013-11-18 10:12 UTC (permalink / raw) To: Mark Lord, Eric Dumazet, Ming Lei, davem, netdev > On 13-11-17 01:56 PM, Mark Lord wrote: > > On 13-11-17 01:35 PM, Mark Lord wrote: > >> The USB3 network adapter locks up consistently for me here in 3.12, > >> but was working without issues in 3.11.x The xhci driver is well broken in 3.12. Try disabling GSO and TSO so that the xhci driver is never given fragments. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-18 10:12 ` David Laight @ 2013-11-18 13:32 ` David Laight 2013-11-18 22:52 ` Mark Lord 0 siblings, 1 reply; 23+ messages in thread From: David Laight @ 2013-11-18 13:32 UTC (permalink / raw) To: David Laight, Mark Lord, Eric Dumazet, Ming Lei, davem, netdev > From: David Laight > > On 13-11-17 01:56 PM, Mark Lord wrote: > > > On 13-11-17 01:35 PM, Mark Lord wrote: > > >> The USB3 network adapter locks up consistently for me here in 3.12, > > >> but was working without issues in 3.11.x > > The xhci driver is well broken in 3.12. To correct myself... The xhci driver has never correctly support scatter-gather requests. In 3.12 code was added to usbnet to generate SG transmits, and to the ax88179_178a driver to use them. TCP segmentation offload was then enabled - with does generate SG transfers. SG transfers for 'disks' almost certainly work because the fragment boundaries are 'adequately aligned'. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-18 13:32 ` David Laight @ 2013-11-18 22:52 ` Mark Lord 2013-11-19 10:04 ` David Laight 0 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-11-18 22:52 UTC (permalink / raw) To: David Laight, Eric Dumazet, Ming Lei, davem, netdev On 13-11-18 08:32 AM, David Laight wrote: >> From: David Laight >>> On 13-11-17 01:56 PM, Mark Lord wrote: >>>> On 13-11-17 01:35 PM, Mark Lord wrote: >>>>> The USB3 network adapter locks up consistently for me here in 3.12, >>>>> but was working without issues in 3.11.x >> >> The xhci driver is well broken in 3.12. > > To correct myself... > > The xhci driver has never correctly support scatter-gather requests. > In 3.12 code was added to usbnet to generate SG transmits, and to the > ax88179_178a driver to use them. > TCP segmentation offload was then enabled - with does generate > SG transfers. > > SG transfers for 'disks' almost certainly work because the > fragment boundaries are 'adequately aligned'. > > David > Well, that's all very nice and whatnot, except the ax88179_178a driver still does not work in linux-3.12, whereas it works fine in all earlier kernels. That's a regression. And a simple revert (earlier in this thread) fixes it. So.. let's revert it for now, until a proper xhci compatible patch is produced. -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-18 22:52 ` Mark Lord @ 2013-11-19 10:04 ` David Laight 2013-11-19 13:44 ` Mark Lord ` (2 more replies) 0 siblings, 3 replies; 23+ messages in thread From: David Laight @ 2013-11-19 10:04 UTC (permalink / raw) To: Mark Lord, Eric Dumazet, Ming Lei, davem, netdev > From: Mark Lord > On 13-11-18 08:32 AM, David Laight wrote: > >> From: David Laight > >>> On 13-11-17 01:56 PM, Mark Lord wrote: > >>>> On 13-11-17 01:35 PM, Mark Lord wrote: > >>>>> The USB3 network adapter locks up consistently for me here in 3.12, > >>>>> but was working without issues in 3.11.x > >> > >> The xhci driver is well broken in 3.12. > > > > To correct myself... > > > > The xhci driver has never correctly support scatter-gather requests. > > In 3.12 code was added to usbnet to generate SG transmits, and to the > > ax88179_178a driver to use them. > > TCP segmentation offload was then enabled - with does generate > > SG transfers. > > > > SG transfers for 'disks' almost certainly work because the > > fragment boundaries are 'adequately aligned'. > > > > David > > > > Well, that's all very nice and whatnot, > except the ax88179_178a driver still does not work in linux-3.12, > whereas it works fine in all earlier kernels. > > That's a regression. > And a simple revert (earlier in this thread) fixes it. > > So.. let's revert it for now, until a proper xhci compatible patch is produced. Which changes did you revert? I think you must have gone right back to the version that doesn't so scatter-gather. There is a patch to xhci-ring.c that should fix the SG problem. http://www.spinics.net/lists/linux-usb/msg97176.html I think it should apply to the 3.12 sources. Note that with older kernels the asix card I have will drop/discard short bursts of tx/rx packets. I've not seen that with 3.12 and the xhci-ring.c patch. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 10:04 ` David Laight @ 2013-11-19 13:44 ` Mark Lord 2013-11-19 13:56 ` David Laight 2013-11-19 14:02 ` Mark Lord 2013-11-19 21:13 ` David Miller 2 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-11-19 13:44 UTC (permalink / raw) To: David Laight, Eric Dumazet, Ming Lei, davem, netdev [-- Attachment #1: Type: text/plain, Size: 1895 bytes --] On 13-11-19 05:04 AM, David Laight wrote: > > Which changes did you revert? Just the bits that changed how the headroom/tailroom sizes were checked and adjusted. See attachment for the revert patch I am using here. My mailer unfortunately likes to mangle inline patches. =========snip=========== Revert USB 3.0 network driver changes that break the adapter (lockups) in 3.12. This just puts back the original code from previous kernels. Signed-off-by: Mark Lord <mlord@pobox.com> --- linux/drivers/net/usb/ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:23:39.525734277 -0500 @@ -1177,18 +1177,31 @@ int frame_size = dev->maxpacket; int mss = skb_shinfo(skb)->gso_size; int headroom; + int tailroom; tx_hdr1 = skb->len; tx_hdr2 = mss; if (((skb->len + 8) % frame_size) == 0) tx_hdr2 |= 0x80008000; /* Enable padding */ - headroom = skb_headroom(skb) - 8; + headroom = skb_headroom(skb); + tailroom = skb_tailroom(skb); - if ((skb_header_cloned(skb) || headroom < 0) && - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { + if (!skb_header_cloned(skb) && + !skb_cloned(skb) && + (headroom + tailroom) >= 8) { + if (headroom < 8) { + skb->data = memmove(skb->head + 8, skb->data, skb->len); + skb_set_tail_pointer(skb, skb->len); + } + } else { + struct sk_buff *skb2; + + skb2 = skb_copy_expand(skb, 8, 0, flags); dev_kfree_skb_any(skb); - return NULL; + skb = skb2; + if (!skb) + return NULL; } skb_push(skb, 4); -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com [-- Attachment #2: 51_ax88179_178a_revert_3.12_lockups.patch --] [-- Type: text/x-patch, Size: 1250 bytes --] Revert USB 3.0 network driver changes that break the adapter (lockups) in 3.12. This just puts back the original code from previous kernels. Signed-off-by: Mark Lord <mlord@pobox.com> --- linux/drivers/net/usb/ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:23:39.525734277 -0500 @@ -1177,18 +1177,31 @@ int frame_size = dev->maxpacket; int mss = skb_shinfo(skb)->gso_size; int headroom; + int tailroom; tx_hdr1 = skb->len; tx_hdr2 = mss; if (((skb->len + 8) % frame_size) == 0) tx_hdr2 |= 0x80008000; /* Enable padding */ - headroom = skb_headroom(skb) - 8; + headroom = skb_headroom(skb); + tailroom = skb_tailroom(skb); - if ((skb_header_cloned(skb) || headroom < 0) && - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { + if (!skb_header_cloned(skb) && + !skb_cloned(skb) && + (headroom + tailroom) >= 8) { + if (headroom < 8) { + skb->data = memmove(skb->head + 8, skb->data, skb->len); + skb_set_tail_pointer(skb, skb->len); + } + } else { + struct sk_buff *skb2; + + skb2 = skb_copy_expand(skb, 8, 0, flags); dev_kfree_skb_any(skb); - return NULL; + skb = skb2; + if (!skb) + return NULL; } skb_push(skb, 4); ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 13:44 ` Mark Lord @ 2013-11-19 13:56 ` David Laight 0 siblings, 0 replies; 23+ messages in thread From: David Laight @ 2013-11-19 13:56 UTC (permalink / raw) To: Mark Lord, Eric Dumazet, Ming Lei, davem, netdev > From: Mark Lord [mailto:mlord@pobox.com] > On 13-11-19 05:04 AM, David Laight wrote: > > > > Which changes did you revert? > > Just the bits that changed how the headroom/tailroom sizes > were checked and adjusted. See attachment for the revert patch > I am using here. My mailer unfortunately likes to mangle inline patches. > > =========snip=========== > Revert USB 3.0 network driver changes that break the adapter (lockups) > in 3.12. This just puts back the original code from previous kernels. > > Signed-off-by: Mark Lord <mlord@pobox.com> > > --- linux/drivers/net/usb/ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 > +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:23:39.525734277 -0500 > @@ -1177,18 +1177,31 @@ > int frame_size = dev->maxpacket; > int mss = skb_shinfo(skb)->gso_size; > int headroom; > + int tailroom; > > tx_hdr1 = skb->len; > tx_hdr2 = mss; > if (((skb->len + 8) % frame_size) == 0) > tx_hdr2 |= 0x80008000; /* Enable padding */ > > - headroom = skb_headroom(skb) - 8; > + headroom = skb_headroom(skb); > + tailroom = skb_tailroom(skb); > > - if ((skb_header_cloned(skb) || headroom < 0) && > - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { > + if (!skb_header_cloned(skb) && > + !skb_cloned(skb) && > + (headroom + tailroom) >= 8) { > + if (headroom < 8) { > + skb->data = memmove(skb->head + 8, skb->data, skb->len); > + skb_set_tail_pointer(skb, skb->len); > + } > + } else { > + struct sk_buff *skb2; > + > + skb2 = skb_copy_expand(skb, 8, 0, flags); > dev_kfree_skb_any(skb); > - return NULL; > + skb = skb2; > + if (!skb) > + return NULL; > } > > skb_push(skb, 4); At a guess it will be a difference between pskb_expand_head() and skb_copy_expand(). The latter probably generates a linear skb. The extra check for skb_cloned() probably also applies - and forces a data copy. Have you tried the patch to xhci-ring.c? David ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 10:04 ` David Laight 2013-11-19 13:44 ` Mark Lord @ 2013-11-19 14:02 ` Mark Lord 2013-11-19 14:15 ` Eric Dumazet 2013-11-19 21:13 ` David Miller 2 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-11-19 14:02 UTC (permalink / raw) To: David Laight, Eric Dumazet, Ming Lei, davem, netdev, Linux Kernel, stable [-- Attachment #1: Type: text/plain, Size: 1035 bytes --] On 13-11-19 05:04 AM, David Laight wrote: >> From: Mark Lord .. >> except the ax88179_178a driver still does not work in linux-3.12, >> whereas it works fine in all earlier kernels. >> >> That's a regression. >> And a simple revert (earlier in this thread) fixes it. >> So.. let's revert it for now, until a proper xhci compatible patch is produced. ... > There is a patch to xhci-ring.c that should fix the SG problem. > http://www.spinics.net/lists/linux-usb/msg97176.html > > I think it should apply to the 3.12 sources. I am running with that patch here now (thanks), and it too appears to prevent the lockups. But is this patch upstream already? If yes, then it needs to get pushed out to -stable for 3.12 at least. If not upstream, then the revert is probably safest for -stable, rather than new code that has never been upstream before. Both patches are attached to this email. One or the other is required for the USB 3.0 network adapters to function in 3.12. Thanks -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com [-- Attachment #2: 51_ax88179_178a_revert_3.12_lockups.patch --] [-- Type: text/x-patch, Size: 1250 bytes --] Revert USB 3.0 network driver changes that break the adapter (lockups) in 3.12. This just puts back the original code from previous kernels. Signed-off-by: Mark Lord <mlord@pobox.com> --- linux/drivers/net/usb/ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:23:39.525734277 -0500 @@ -1177,18 +1177,31 @@ int frame_size = dev->maxpacket; int mss = skb_shinfo(skb)->gso_size; int headroom; + int tailroom; tx_hdr1 = skb->len; tx_hdr2 = mss; if (((skb->len + 8) % frame_size) == 0) tx_hdr2 |= 0x80008000; /* Enable padding */ - headroom = skb_headroom(skb) - 8; + headroom = skb_headroom(skb); + tailroom = skb_tailroom(skb); - if ((skb_header_cloned(skb) || headroom < 0) && - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { + if (!skb_header_cloned(skb) && + !skb_cloned(skb) && + (headroom + tailroom) >= 8) { + if (headroom < 8) { + skb->data = memmove(skb->head + 8, skb->data, skb->len); + skb_set_tail_pointer(skb, skb->len); + } + } else { + struct sk_buff *skb2; + + skb2 = skb_copy_expand(skb, 8, 0, flags); dev_kfree_skb_any(skb); - return NULL; + skb = skb2; + if (!skb) + return NULL; } skb_push(skb, 4); [-- Attachment #3: 55_usb_xhci_TRB_scatter_gather_fix.patch --] [-- Type: text/x-patch, Size: 3078 bytes --] Section 4.11.7.1 of rev 1.0 of the xhci specification states that a link TRB can only occur at a boundary between underlying USB frames (512 bytes for 480M). If this isn't done the USB frames aren't formatted correctly and, for example, the USB3 ethernet ax88179_178a card will stop sending (while still receiving) when running a netperf tcp transmit test with (say) and 8k buffer. This should be a candidate for stable, the ax88179_178a driver defaults to gso and tso enabled so it passes a lot of fragmented skb to the USB stack. Signed-off-by: David Laight <david.laight@xxxxxxxxxx> --- Changes for v2: 1) Only act on bulk endpoints. While isoc endpoints could suffer from the same problem it is much less likely and can't be fixed by adding NOP TRBs (they would stop data being sent in the poll interval). 2) When writing the NOP TRB use the count of TRBs instead of scanning for the link TRB. drivers/usb/host/xhci-ring.c | 53 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index 5480215..c1342dc 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c @@ -2929,8 +2929,57 @@ } while (1) { - if (room_on_ring(xhci, ep_ring, num_trbs)) - break; + if (room_on_ring(xhci, ep_ring, num_trbs)) { + union xhci_trb *trb = ep_ring->enqueue; + unsigned int usable = ep_ring->enq_seg->trbs + + TRBS_PER_SEGMENT - 1 - trb; + u32 nop_cmd; + + /* + * Section 4.11.7.1 TD Fragments states that a link + * TRB must only occur at the boundary between + * data bursts (eg 512 bytes for 480M). + * While it is possible to split a large fragment + * we don't know the size yet. + * Simplest solution is to fill the trb before the + * LINK with nop commands. + */ + if (num_trbs == 1 || num_trbs <= usable || usable == 0) + break; + + if (ep_ring->type != TYPE_BULK) + /* + * While isoc transfers might have a buffer that + * crosses a 64k boundary it is unlikely. + * Since we can't add NOPs without generating + * gaps in the traffic just hope it never + * happens at the end of the ring. + * This could be fixed by writing a LINK TRB + * instead of the first NOP - however the + * TRB_TYPE_LINK_LE32() calls would all need + * changing to check the ring length. */ + break; + + if (num_trbs >= TRBS_PER_SEGMENT) { + xhci_err(xhci, "Too many fragments %d, max %d\n", + num_trbs, TRBS_PER_SEGMENT - 1); + return -ENOMEM; + } + + nop_cmd = cpu_to_le32(TRB_TYPE(TRB_TR_NOOP) | + ep_ring->cycle_state); + ep_ring->num_trbs_free -= usable; + do { + trb->generic.field[0] = 0; + trb->generic.field[1] = 0; + trb->generic.field[2] = 0; + trb->generic.field[3] = nop_cmd; + trb++; + } while (--usable); + ep_ring->enqueue = trb; + if (room_on_ring(xhci, ep_ring, num_trbs)) + break; + } if (ep_ring == xhci->cmd_ring) { xhci_err(xhci, "Do not support expand command ring\n"); ^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 14:02 ` Mark Lord @ 2013-11-19 14:15 ` Eric Dumazet 2013-11-19 14:24 ` Mark Lord 2013-11-19 14:43 ` David Laight 0 siblings, 2 replies; 23+ messages in thread From: Eric Dumazet @ 2013-11-19 14:15 UTC (permalink / raw) To: Mark Lord; +Cc: David Laight, Ming Lei, davem, netdev, Linux Kernel, stable On Tue, 2013-11-19 at 09:02 -0500, Mark Lord wrote: > On 13-11-19 05:04 AM, David Laight wrote: > >> From: Mark Lord > .. > >> except the ax88179_178a driver still does not work in linux-3.12, > >> whereas it works fine in all earlier kernels. > >> > >> That's a regression. > >> And a simple revert (earlier in this thread) fixes it. > >> So.. let's revert it for now, until a proper xhci compatible patch is produced. > ... > > There is a patch to xhci-ring.c that should fix the SG problem. > > http://www.spinics.net/lists/linux-usb/msg97176.html > > > > I think it should apply to the 3.12 sources. > > I am running with that patch here now (thanks), > and it too appears to prevent the lockups. > > But is this patch upstream already? > If yes, then it needs to get pushed out to -stable for 3.12 at least. > > If not upstream, then the revert is probably safest for -stable, > rather than new code that has never been upstream before. > > Both patches are attached to this email. > One or the other is required for the USB 3.0 network adapters to function in 3.12. I do not see any error in commit f27070158d6754765f2 ("ax88179_178a: avoid copy of tx tcp packets") Quite the contrary in fact... I suspect a TSO bug, and would rather disable TSO for this nic. Have you tried to revert 3804fad45411b482 ("USBNET: ax88179_178a: enable tso if usb host supports sg dma") ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 14:15 ` Eric Dumazet @ 2013-11-19 14:24 ` Mark Lord 2013-11-19 14:43 ` David Laight 1 sibling, 0 replies; 23+ messages in thread From: Mark Lord @ 2013-11-19 14:24 UTC (permalink / raw) To: Eric Dumazet; +Cc: David Laight, Ming Lei, davem, netdev, Linux Kernel, stable On 13-11-19 09:15 AM, Eric Dumazet wrote: > On Tue, 2013-11-19 at 09:02 -0500, Mark Lord wrote: >> On 13-11-19 05:04 AM, David Laight wrote: >>>> From: Mark Lord >> .. >>>> except the ax88179_178a driver still does not work in linux-3.12, >>>> whereas it works fine in all earlier kernels. >>>> >>>> That's a regression. >>>> And a simple revert (earlier in this thread) fixes it. >>>> So.. let's revert it for now, until a proper xhci compatible patch is produced. >> ... >>> There is a patch to xhci-ring.c that should fix the SG problem. >>> http://www.spinics.net/lists/linux-usb/msg97176.html >>> >>> I think it should apply to the 3.12 sources. >> >> I am running with that patch here now (thanks), >> and it too appears to prevent the lockups. >> >> But is this patch upstream already? >> If yes, then it needs to get pushed out to -stable for 3.12 at least. >> >> If not upstream, then the revert is probably safest for -stable, >> rather than new code that has never been upstream before. >> > >> Both patches are attached to this email. >> One or the other is required for the USB 3.0 network adapters to function in 3.12. > > I do not see any error in commit f27070158d6754765f2 > ("ax88179_178a: avoid copy of tx tcp packets") > Quite the contrary in fact... > > I suspect a TSO bug, and would rather disable TSO for this nic. David's explanation for the XHCI issue seems to explain it nicely, and the patch he linked to does indeed address/fix the issue, without disabling TSO. So on the evidence, probably NOT a TSO bug. -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 14:15 ` Eric Dumazet 2013-11-19 14:24 ` Mark Lord @ 2013-11-19 14:43 ` David Laight 2013-11-19 16:10 ` Eric Dumazet 1 sibling, 1 reply; 23+ messages in thread From: David Laight @ 2013-11-19 14:43 UTC (permalink / raw) To: Eric Dumazet, Mark Lord; +Cc: Ming Lei, davem, netdev, Linux Kernel, stable > From: Eric Dumazet [mailto:eric.dumazet@gmail.com] > On Tue, 2013-11-19 at 09:02 -0500, Mark Lord wrote: > > On 13-11-19 05:04 AM, David Laight wrote: > > >> From: Mark Lord > > .. > > >> except the ax88179_178a driver still does not work in linux-3.12, > > >> whereas it works fine in all earlier kernels. I've seen lost packets in IIRC 3.2 > > >> That's a regression. > > >> And a simple revert (earlier in this thread) fixes it. > > >> So.. let's revert it for now, until a proper xhci compatible patch is produced. > > ... > > > There is a patch to xhci-ring.c that should fix the SG problem. > > > http://www.spinics.net/lists/linux-usb/msg97176.html > > > > > > I think it should apply to the 3.12 sources. > > > > I am running with that patch here now (thanks), > > and it too appears to prevent the lockups. > > > > But is this patch upstream already? > > If yes, then it needs to get pushed out to -stable for 3.12 at least. Having someone else confirm that there is a bug, and that the patch fixes it should help it get pushed to -stable. > > If not upstream, then the revert is probably safest for -stable, > > rather than new code that has never been upstream before. > > > > > Both patches are attached to this email. > > One or the other is required for the USB 3.0 network adapters to function in 3.12. > > I do not see any error in commit f27070158d6754765f2 > ("ax88179_178a: avoid copy of tx tcp packets") > > Quite the contrary in fact... > > I suspect a TSO bug, and would rather disable TSO for this nic. > > Have you tried to revert 3804fad45411b482 > ("USBNET: ax88179_178a: enable tso if usb host supports sg dma") It isn't directly a TSO problem. There has always been a bug in the xhci driver for fragmented buffers. TSO just means it is given a lot of fragmented buffers. As well as user-supplied fragmented buffers, the bug affects internal fragmentation that happens whenever a buffer crosses a 64k byte boundary (please hw engineers - stop doing this!) I'm not sure whether usbnet would ever pass buffers that cross 64k boundaries. I've not seen one - even with TSO. But the rx buffers are 20k (doesn't seem ideal!) and could also be problematical. USB mass storage has used SG for ages, the buffers must all be adequately aligned for the hardware - they won't meet the constraint for USB3 itself, but the documented restriction may be more severe than the actual one. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 14:43 ` David Laight @ 2013-11-19 16:10 ` Eric Dumazet 2013-11-19 16:26 ` David Laight 0 siblings, 1 reply; 23+ messages in thread From: Eric Dumazet @ 2013-11-19 16:10 UTC (permalink / raw) To: David Laight; +Cc: Mark Lord, Ming Lei, davem, netdev, Linux Kernel, stable On Tue, 2013-11-19 at 14:43 +0000, David Laight wrote: > It isn't directly a TSO problem. > There has always been a bug in the xhci driver for fragmented buffers. > TSO just means it is given a lot of fragmented buffers. > > As well as user-supplied fragmented buffers, the bug affects > internal fragmentation that happens whenever a buffer crosses a 64k > byte boundary (please hw engineers - stop doing this!) TCP stack uses order-3 allocations. This means 32KB for x86 (PAGE_SIZE=4096) What is PAGE_SIZE for your arches ? If there is a 6KB limit, we might adapt TCP to make sure we do not cross a 64KB boundary. Other strategy would be to detect this case in the driver and split a problematic segment into two parts. > > I'm not sure whether usbnet would ever pass buffers that cross 64k > boundaries. I've not seen one - even with TSO. But the rx buffers > are 20k (doesn't seem ideal!) and could also be problematical. > > USB mass storage has used SG for ages, the buffers must all be > adequately aligned for the hardware - they won't meet the constraint > for USB3 itself, but the documented restriction may be more severe > than the actual one. ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 16:10 ` Eric Dumazet @ 2013-11-19 16:26 ` David Laight 0 siblings, 0 replies; 23+ messages in thread From: David Laight @ 2013-11-19 16:26 UTC (permalink / raw) To: Eric Dumazet; +Cc: Mark Lord, Ming Lei, davem, netdev, Linux Kernel, stable > From: Eric Dumazet [mailto:eric.dumazet@gmail.com] > On Tue, 2013-11-19 at 14:43 +0000, David Laight wrote: > > > It isn't directly a TSO problem. > > There has always been a bug in the xhci driver for fragmented buffers. > > TSO just means it is given a lot of fragmented buffers. > > > > As well as user-supplied fragmented buffers, the bug affects > > internal fragmentation that happens whenever a buffer crosses a 64k > > byte boundary (please hw engineers - stop doing this!) > > TCP stack uses order-3 allocations. > > This means 32KB for x86 (PAGE_SIZE=4096) > > What is PAGE_SIZE for your arches ? > > If there is a 6KB limit, we might adapt TCP to make sure we do not cross > a 64KB boundary. > > Other strategy would be to detect this case in the driver and split a > problematic segment into two parts. The xhci code does all the checks for buffer fragments crossing 64k boundaries. I've posted a patch that uses a conservative upper limit for the number of fragments: 2 * number_of_sg_buffs + xfer_len/65536. This saves scanning the sg list twice. For those not reading linux-usb: The xhci 'bug' is that an SG list may only cross the end of a ring segment at an aligned length. For USB2 devices this will be 512 bytes. For USB3 the documented alignment could be 16k (depends on a burst size), but might only be 1k. (This is another place where the hw engineers haven't made life easy.) The only simple solution is to ensure that a SG list doesn't cross the end of a ring segment. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 10:04 ` David Laight 2013-11-19 13:44 ` Mark Lord 2013-11-19 14:02 ` Mark Lord @ 2013-11-19 21:13 ` David Miller 2013-11-20 9:54 ` David Laight 2 siblings, 1 reply; 23+ messages in thread From: David Miller @ 2013-11-19 21:13 UTC (permalink / raw) To: David.Laight; +Cc: mlord, eric.dumazet, ming.lei, netdev From: "David Laight" <David.Laight@ACULAB.COM> Date: Tue, 19 Nov 2013 10:04:11 -0000 > There is a patch to xhci-ring.c that should fix the SG problem. > http://www.spinics.net/lists/linux-usb/msg97176.html > > I think it should apply to the 3.12 sources. David, please get this into Linus's tree and queued up for -stable as soon as possible, thank you. ^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-19 21:13 ` David Miller @ 2013-11-20 9:54 ` David Laight 2013-11-20 16:54 ` Sarah Sharp 0 siblings, 1 reply; 23+ messages in thread From: David Laight @ 2013-11-20 9:54 UTC (permalink / raw) To: David Miller; +Cc: mlord, eric.dumazet, ming.lei, netdev, Sarah Sharp > From: Of David Miller > > From: "David Laight" <David.Laight@ACULAB.COM> > > Date: Tue, 19 Nov 2013 10:04:11 -0000 > > > There is a patch to xhci-ring.c that should fix the SG problem. > > http://www.spinics.net/lists/linux-usb/msg97176.html > > > > I think it should apply to the 3.12 sources. > > David, please get this into Linus's tree and queued up for -stable > as soon as possible, thank you. What do I have to do to expedite it? I thought that Sarah would have to push the patch through. It might be necessary to limit the number of SG fragments that the mass storage (etc) can generate to 63 (from unlimited). That should be a 1 line change somewhere. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-20 9:54 ` David Laight @ 2013-11-20 16:54 ` Sarah Sharp 2013-11-30 2:58 ` Mark Lord 0 siblings, 1 reply; 23+ messages in thread From: Sarah Sharp @ 2013-11-20 16:54 UTC (permalink / raw) To: David Laight Cc: David Miller, mlord, eric.dumazet, ming.lei, netdev, linux-usb On Wed, Nov 20, 2013 at 09:54:02AM -0000, David Laight wrote: > > From: Of David Miller > > > From: "David Laight" <David.Laight@ACULAB.COM> > > > Date: Tue, 19 Nov 2013 10:04:11 -0000 > > > > > There is a patch to xhci-ring.c that should fix the SG problem. > > > http://www.spinics.net/lists/linux-usb/msg97176.html > > > > > > I think it should apply to the 3.12 sources. > > > > David, please get this into Linus's tree and queued up for -stable > > as soon as possible, thank you. > > What do I have to do to expedite it? > I thought that Sarah would have to push the patch through. Yes, I think the patch should come through my tree. > It might be necessary to limit the number of SG fragments that > the mass storage (etc) can generate to 63 (from unlimited). > That should be a 1 line change somewhere. Greg's USB tree is frozen until after 3.13-rc1. The patch will have to wait until then, but it will be marked for stable. I have no objection to the methodology of the patch, but we do need to figure out how to limit the number of scatter-gather list entries in the mass storage driver. We're still figuring out the exact limitation we need to use, and then the patch can be queued in my for-usb-linus branch for 3.13-rc1. Note that the patch is a bandaid fix, and will only help bulk endpoints that are submitting scatter-gather transfers. Interrupt endpoints using scatter-gather will still run into these issues, but with David's patch, the URB submission will now fail, rather than allowing the transfer to be silently corrupted. The real fix for this will probably be too large for stable, and is likely to take at least a kernel revision to fix. Sarah Sharp ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-11-20 16:54 ` Sarah Sharp @ 2013-11-30 2:58 ` Mark Lord [not found] ` <5299546B.2020800-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-11-30 2:58 UTC (permalink / raw) To: Sarah Sharp, David Laight Cc: David Miller, eric.dumazet, ming.lei, netdev, linux-usb On 13-11-19 08:44 AM, Mark Lord wrote: > On 13-11-19 05:04 AM, David Laight wrote: >> >> Which changes did you revert? > > Just the bits that changed how the headroom/tailroom sizes > were checked and adjusted. See attachment for the revert patch > I am using here. My mailer unfortunately likes to mangle inline patches. > > =========snip=========== > Revert USB 3.0 network driver changes that break the adapter (lockups) > in 3.12. This just puts back the original code from previous kernels. > > Signed-off-by: Mark Lord <mlord@pobox.com> > > --- linux/drivers/net/usb/ax88179_178a.c.orig 2013-11-03 18:41:51.000000000 -0500 > +++ linux/drivers/net/usb/ax88179_178a.c 2013-11-17 13:23:39.525734277 -0500 > @@ -1177,18 +1177,31 @@ > int frame_size = dev->maxpacket; > int mss = skb_shinfo(skb)->gso_size; > int headroom; > + int tailroom; > > tx_hdr1 = skb->len; > tx_hdr2 = mss; > if (((skb->len + 8) % frame_size) == 0) > tx_hdr2 |= 0x80008000; /* Enable padding */ > > - headroom = skb_headroom(skb) - 8; > + headroom = skb_headroom(skb); > + tailroom = skb_tailroom(skb); > > - if ((skb_header_cloned(skb) || headroom < 0) && > - pskb_expand_head(skb, headroom < 0 ? 8 : 0, 0, GFP_ATOMIC)) { > + if (!skb_header_cloned(skb) && > + !skb_cloned(skb) && > + (headroom + tailroom) >= 8) { > + if (headroom < 8) { > + skb->data = memmove(skb->head + 8, skb->data, skb->len); > + skb_set_tail_pointer(skb, skb->len); > + } > + } else { > + struct sk_buff *skb2; > + > + skb2 = skb_copy_expand(skb, 8, 0, flags); > dev_kfree_skb_any(skb); > - return NULL; > + skb = skb2; > + if (!skb) > + return NULL; > } > > skb_push(skb, 4); > Two kernels later, and this regression has still not been fixed. A simple revert, folks. -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 23+ messages in thread
[parent not found: <5299546B.2020800-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>]
* RE: net/usb/ax88179_178a driver broken in linux-3.12 [not found] ` <5299546B.2020800-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org> @ 2013-12-02 9:30 ` David Laight 2013-12-02 15:05 ` Mark Lord 0 siblings, 1 reply; 23+ messages in thread From: David Laight @ 2013-12-02 9:30 UTC (permalink / raw) To: Mark Lord, Sarah Sharp Cc: David Miller, eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w, ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw, netdev-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA > From: Mark Lord > Sent: 30 November 2013 02:59 > To: Sarah Sharp; David Laight > Cc: David Miller; eric.dumazet@gmail.com; ming.lei@canonical.com; netdev@vger.kernel.org; linux- > usb@vger.kernel.org > Subject: Re: net/usb/ax88179_178a driver broken in linux-3.12 > > On 13-11-19 08:44 AM, Mark Lord wrote: > > On 13-11-19 05:04 AM, David Laight wrote: > >> > >> Which changes did you revert? > > > > Just the bits that changed how the headroom/tailroom sizes > > were checked and adjusted. See attachment for the revert patch > > I am using here. My mailer unfortunately likes to mangle inline patches. > > ... > > Two kernels later, and this regression has still not been fixed. > > A simple revert, folks. Reverting the ax88179_178a driver doesn't fix the problem. I'm seen tx/rx issues with it on much older kernels that don't appear with a current kernel and the fixed xhci code. Sarah needs to feed the xhci_ring.c fix through into stable. David ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-12-02 9:30 ` David Laight @ 2013-12-02 15:05 ` Mark Lord [not found] ` <529CA1D2.2070806-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org> 0 siblings, 1 reply; 23+ messages in thread From: Mark Lord @ 2013-12-02 15:05 UTC (permalink / raw) To: David Laight, Sarah Sharp Cc: David Miller, eric.dumazet, ming.lei, netdev, linux-usb On 13-12-02 04:30 AM, David Laight wrote: >> From: Mark Lord >> Sent: 30 November 2013 02:59 >> To: Sarah Sharp; David Laight >> Cc: David Miller; eric.dumazet@gmail.com; ming.lei@canonical.com; netdev@vger.kernel.org; linux- >> usb@vger.kernel.org >> Subject: Re: net/usb/ax88179_178a driver broken in linux-3.12 >> >> On 13-11-19 08:44 AM, Mark Lord wrote: >>> On 13-11-19 05:04 AM, David Laight wrote: >>>> >>>> Which changes did you revert? >>> >>> Just the bits that changed how the headroom/tailroom sizes >>> were checked and adjusted. See attachment for the revert patch >>> I am using here. My mailer unfortunately likes to mangle inline patches. >>> > ... >> >> Two kernels later, and this regression has still not been fixed. >> >> A simple revert, folks. > > Reverting the ax88179_178a driver doesn't fix the problem. > I'm seen tx/rx issues with it on much older kernels that don't > appear with a current kernel and the fixed xhci code. > > Sarah needs to feed the xhci_ring.c fix through into stable. Oh, I agree. But Linus makes a MASSIVE distinction between things that have always been broken, and REGRESSIONS from the immediately prior kernel that can be tracked to a single update. Let's see some action, here folks! -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 23+ messages in thread
[parent not found: <529CA1D2.2070806-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>]
* Re: net/usb/ax88179_178a driver broken in linux-3.12 [not found] ` <529CA1D2.2070806-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org> @ 2013-12-02 19:08 ` Sarah Sharp 2013-12-02 19:11 ` Mark Lord 2013-12-02 19:18 ` Greg KH 0 siblings, 2 replies; 23+ messages in thread From: Sarah Sharp @ 2013-12-02 19:08 UTC (permalink / raw) To: Mark Lord Cc: David Laight, David Miller, eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w, ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw, netdev-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA On Mon, Dec 02, 2013 at 10:05:54AM -0500, Mark Lord wrote: > On 13-12-02 04:30 AM, David Laight wrote: > >> From: Mark Lord > >> Sent: 30 November 2013 02:59 > >> To: Sarah Sharp; David Laight > >> Cc: David Miller; eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org; netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux- > >> usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > >> Subject: Re: net/usb/ax88179_178a driver broken in linux-3.12 > >> > >> On 13-11-19 08:44 AM, Mark Lord wrote: > >>> On 13-11-19 05:04 AM, David Laight wrote: > >>>> > >>>> Which changes did you revert? > >>> > >>> Just the bits that changed how the headroom/tailroom sizes > >>> were checked and adjusted. See attachment for the revert patch > >>> I am using here. My mailer unfortunately likes to mangle inline patches. > >>> > > ... > >> > >> Two kernels later, and this regression has still not been fixed. > >> > >> A simple revert, folks. > > > > Reverting the ax88179_178a driver doesn't fix the problem. > > I'm seen tx/rx issues with it on much older kernels that don't > > appear with a current kernel and the fixed xhci code. > > > > Sarah needs to feed the xhci_ring.c fix through into stable. > > Oh, I agree. But Linus makes a MASSIVE distinction between things > that have always been broken, and REGRESSIONS from the immediately > prior kernel that can be tracked to a single update. > > Let's see some action, here folks! I'm working on it. You will probably have to wait for -rc3, depending on when Greg sends his next pull request. I will Cc you on the pull request and patch, which should be sent out today. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-12-02 19:08 ` Sarah Sharp @ 2013-12-02 19:11 ` Mark Lord 2013-12-02 19:18 ` Greg KH 1 sibling, 0 replies; 23+ messages in thread From: Mark Lord @ 2013-12-02 19:11 UTC (permalink / raw) To: Sarah Sharp Cc: David Laight, David Miller, eric.dumazet, ming.lei, netdev, linux-usb On 13-12-02 02:08 PM, Sarah Sharp wrote: >> On 13-12-02 04:30 AM, David Laight wrote: .. >>> Sarah needs to feed the xhci_ring.c fix through into stable. .. > I'm working on it. You will probably have to wait for -rc3, depending > on when Greg sends his next pull request. I will Cc you on the pull > request and patch, which should be sent out today. Super, exactly what we need, thanks! -- Mark Lord Real-Time Remedies Inc. mlord@pobox.com ^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: net/usb/ax88179_178a driver broken in linux-3.12 2013-12-02 19:08 ` Sarah Sharp 2013-12-02 19:11 ` Mark Lord @ 2013-12-02 19:18 ` Greg KH 1 sibling, 0 replies; 23+ messages in thread From: Greg KH @ 2013-12-02 19:18 UTC (permalink / raw) To: Sarah Sharp Cc: Mark Lord, David Laight, David Miller, eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w, ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw, netdev-u79uwXL29TY76Z2rM5mHXA, linux-usb-u79uwXL29TY76Z2rM5mHXA On Mon, Dec 02, 2013 at 11:08:36AM -0800, Sarah Sharp wrote: > On Mon, Dec 02, 2013 at 10:05:54AM -0500, Mark Lord wrote: > > On 13-12-02 04:30 AM, David Laight wrote: > > >> From: Mark Lord > > >> Sent: 30 November 2013 02:59 > > >> To: Sarah Sharp; David Laight > > >> Cc: David Miller; eric.dumazet-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; ming.lei-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org; netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux- > > >> usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > >> Subject: Re: net/usb/ax88179_178a driver broken in linux-3.12 > > >> > > >> On 13-11-19 08:44 AM, Mark Lord wrote: > > >>> On 13-11-19 05:04 AM, David Laight wrote: > > >>>> > > >>>> Which changes did you revert? > > >>> > > >>> Just the bits that changed how the headroom/tailroom sizes > > >>> were checked and adjusted. See attachment for the revert patch > > >>> I am using here. My mailer unfortunately likes to mangle inline patches. > > >>> > > > ... > > >> > > >> Two kernels later, and this regression has still not been fixed. > > >> > > >> A simple revert, folks. > > > > > > Reverting the ax88179_178a driver doesn't fix the problem. > > > I'm seen tx/rx issues with it on much older kernels that don't > > > appear with a current kernel and the fixed xhci code. > > > > > > Sarah needs to feed the xhci_ring.c fix through into stable. > > > > Oh, I agree. But Linus makes a MASSIVE distinction between things > > that have always been broken, and REGRESSIONS from the immediately > > prior kernel that can be tracked to a single update. > > > > Let's see some action, here folks! > > I'm working on it. You will probably have to wait for -rc3, depending > on when Greg sends his next pull request. I will Cc you on the pull > request and patch, which should be sent out today. It's impossible to get into -rc2 given that it was released last week :) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2013-12-02 19:18 UTC | newest] Thread overview: 23+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <52890C7E.6000607@pobox.com> 2013-11-17 18:56 ` net/usb/ax88179_178a driver broken in linux-3.12 Mark Lord 2013-11-17 19:04 ` Mark Lord 2013-11-18 10:12 ` David Laight 2013-11-18 13:32 ` David Laight 2013-11-18 22:52 ` Mark Lord 2013-11-19 10:04 ` David Laight 2013-11-19 13:44 ` Mark Lord 2013-11-19 13:56 ` David Laight 2013-11-19 14:02 ` Mark Lord 2013-11-19 14:15 ` Eric Dumazet 2013-11-19 14:24 ` Mark Lord 2013-11-19 14:43 ` David Laight 2013-11-19 16:10 ` Eric Dumazet 2013-11-19 16:26 ` David Laight 2013-11-19 21:13 ` David Miller 2013-11-20 9:54 ` David Laight 2013-11-20 16:54 ` Sarah Sharp 2013-11-30 2:58 ` Mark Lord [not found] ` <5299546B.2020800-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org> 2013-12-02 9:30 ` David Laight 2013-12-02 15:05 ` Mark Lord [not found] ` <529CA1D2.2070806-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org> 2013-12-02 19:08 ` Sarah Sharp 2013-12-02 19:11 ` Mark Lord 2013-12-02 19:18 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).