Netdev List
 help / color / mirror / Atom feed
From: Petko Manolov <petkan@mip-labs.com>
To: netdev@vger.kernel.org
Cc: davem@davemloft.net, a1291762@gmail.com,
	johannes@sipsolutions.net, Petko Manolov <petkan@mip-labs.com>
Subject: [PATCH v3 0/2] pegasus: correct buffer & packet sizes
Date: Wed, 27 Apr 2016 14:24:48 +0300	[thread overview]
Message-ID: <1461756290-27421-1-git-send-email-petkan@mip-labs.com> (raw)

As noticed by Lincoln Ramsay <a1291762@gmail.com> some old (usb 1.1) Pegasus
based devices may actually return more bytes than the specified in the datasheet
amount.  That would not be a problem if the allocated space for the SKB was
equal to the parameter passed to usb_fill_bulk_urb().  Some poor bugger (i
really hope it was not me, but 'git blame' is useless in this case, so anyway)
decided to add '+ 8' to the buffer length parameter.  Sometimes the usb transfer
overflows and corrupts the socket structure, leading to kernel panic.

The above doesn't seem to happen for newer (Pegasus2 based) devices which did
help this bug to hide for so long.

The new default is to not include the CRC at the end of each received package.  
So far CRC has been ignored which makes no sense to do it in a first place.

The patch is against v4.6-rc5 and was tested on ADM8515 device by transferring
multiple gigabytes of data over a couple of days without any complaints from the
kernel.  Please apply it to whatever net tree you deem fit.

Changes since v1:

 - split the patch in two parts;
 - corrected the subject lines;

Changes since v2:

 - do not append CRC by default (based on a discussion with Johannes Berg);

Petko Manolov (2):
  pegasus: fixes URB buffer allocation size;
  pegasus: fixes reported packet length

 drivers/net/usb/pegasus.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

-- 
2.8.0.rc3

             reply	other threads:[~2016-04-27 11:24 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-27 11:24 Petko Manolov [this message]
2016-04-27 11:24 ` [PATCH v3 1/2] pegasus: fixes URB buffer allocation size; Petko Manolov
2016-04-27 11:24 ` [PATCH v3 2/2] pegasus: fixes reported packet length Petko Manolov
2016-04-28 21:09 ` [PATCH v3 0/2] pegasus: correct buffer & packet sizes David Miller

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=1461756290-27421-1-git-send-email-petkan@mip-labs.com \
    --to=petkan@mip-labs.com \
    --cc=a1291762@gmail.com \
    --cc=davem@davemloft.net \
    --cc=johannes@sipsolutions.net \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

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

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