David Brownell wrote:

kolja wrote:

i'm using kernel 2.6.2-rc2 and testing kernelmode Driver for ECI usb
adsl modem


Looks like that modem driver's urb completion callback is
making a call it's not allowed to make.


here is the code handling callback :
-------------------------------------------------------------------
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
static void eci_init_vendor_callback(struct urb *urb) {
#else
static void eci_init_vendor_callback(struct urb *urb, struct pt_regs *regs) {
#endif
struct eci_instance *instance;
int size;


instance = (struct eci_instance *) urb->context;
spin_lock_bh(&instance->lock);
/*
If urb status is set warn about it, else do what we gotta do
*/
if(urb->status)
ERR_OUT("Urb with status %d\n" , urb->status);
else {
/* Check For datarecived and wanted data length */
if( urb->actual_length != urb->transfer_buffer_length )
WRN_OUT( "expecting %d, got %d\n", urb->transfer_buffer_length,
urb->actual_length) ;
#ifdef DEBUG
/* if ((urb->setup_packet[0] & 0x80)) {
size = ((urb->setup_packets[instance->setup_packets_pos + 7]<<8) |
setup_packets[instance->setup_packets_pos + 6]);
}*/
#endif /* DEBUG */
if ( !((urb->setup_packet[0] & 0x40) == 0x40 && urb->setup_packet[1]== 0xdc
&&((urb->setup_packet[3] * 256 + urb->setup_packet[2])== 0x00) &&
((urb->setup_packet[5] * 25 + urb->setup_packet[4]) == 0x00))) {
/*
sould send next VENDOR URB
*/
_eci_send_init_urb(instance->vendor_urb);
}
}
spin_unlock_bh(&instance->lock);
}
-------------------------------------------------------------------
the only call are related to spin lock and unlock what's wrong on it ?
kolja


------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to