Pegasus driver as of Linux v3.8;
Pegasus driver used single callback for sync and async control URBs. Special
flags were employed to distinguish between both, but due to flawed logic (as
Sarah Sharp spotted) it didn't always work.  As a result of this change
[get|set]_registers() are now much simpler.  Async write is also leaner and does
not use single, statically allocated memory for usb_ctrlrequest, which is
another potential race when asynchronously submitting URBs.

The socket buffer pool for the receive path is now gone.  It's existence didn't
make much difference (performance-wise) and the code is better off without the
spinlocks protecting it.

Largely duplicated code in routines reading and writing MII registers is now
packed in __mii_op().