]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC 240692,241228:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 27 Feb 2013 21:03:09 +0000 (21:03 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 27 Feb 2013 21:03:09 +0000 (21:03 +0000)
commitf6a82cc5cf972865e604905844f18d1db6dd83e6
tree09fe51b2347ae6d0d5585b95290ae7535d13c98f
parent7645aae20bab04d8c44cde2c208e8f7aed492ac5
MFC 240692,241228:
Adjust the ioctl workaround from r234501:
- Ensure the native ioctl path always allocates a 4kb buffer if a request
  uses a buffer size of 0.
- Rounding all small requests up to 32k swamped the controller causing
  firmware hangs.  Instead, round requests smaller than 64k up to the next
  power of 2 as a general rule.  To handle the one known special case of a
  command that accepts a 12k buffer returning a 24k-ish reply, round
  requests between 8k and 16k up to 32k rather than 16k.  The result is
  that commands less than 8k should now be rounded up to a smaller size
  (either 4k or 8k) rather than 32k.

git-svn-id: svn://svn.freebsd.org/base/stable/9@247420 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/dev/amr/amr.c