> in static void ctrl_callback(struct urb *urb) you are using
> clean_bit on an usigned int. On some architectures this will
> bomb. You need to define flags as unsigned long.

flags field is not used for signed arithmetic (only the least 
significant bits are used anyway).  How this could possibly
bomb any architecture?

> in static int write_mii_word(rtl8150_t *dev, u8 phy, __u8 indx, u16 reg)
> you are using HZ which is architecture dependend.

HZ value is used in usb_start_wait_urb() and is passed to
timeout_schedule().  Which IMHO is the right thing to do.
In this case HZ == 1sec regardles of the actual value it has for the
different architectures.

> In static void read_bulk_callback(struct urb *urb) a failure in submitting
> the urb seems to kill the driver. IMHO this means you can deadlock
> if you use nfs. Comments ? Solutions ?

Since we're now using preallocated sk_buff in order to avoid memcpy if
the allocation fails then skb->data is wild pointer.  For now i preffer
to kill the driver, but not the machine.  I might use static buffer or
0 for transfer size.
Running out of memory in the kernel is serious enough to leave the
system unaffected in any case.

> In static void rtl8150_tx_timeout(struct net_device *netdev)
> you set the ASYNC_UNLINK flag. If a disconnect happens
> in the window between this and the unlink finishing you
> leave disconnect() with a live and freed urb.

I was thinking usb_unlink_urb() takes care to kill it so it is harmless
to free it afterwards.  Isn't this true?



                Petko


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to