logo       

could usbserial generic override ipaq function calls ?: msg#00027

handhelds.ipaq.synce.devel

Subject: could usbserial generic override ipaq function calls ?

I've noticed something strange in dmesg output :
drivers/usb/serial/usb-serial.c: Had to override the open usb serial operation
with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the write usb serial operation
with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the close usb serial operation
with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the write_room usb serial
operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the chars_in_buffer usb serial
operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the read_bulk_callback usb
serial operation with the generic one.
drivers/usb/serial/usb-serial.c: Had to override the write_bulk_callback usb
serial operation with the generic one.
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic
usbcore: registered new driver usbserial_generic
.....
the ipaq.c module is initialized after generic behaviour is initiated.

These functions are provided by the ipaq module ipaq and thus should not be
overriden by generic ones.

In the usbserial changelog there is mention of an old ( 2001) bug :

* (01/10/2001) gkh
* Fixed bug where the generic serial adaptor grabbed _any_ device that was
* offered to it.


In the code itself i found this section ( line 1397)
##########################################################"
#define set_to_generic_if_null(type, function) \
do { \
if (!type->function) { \
type->function = usb_serial_generic_##function; \
dbg("Had to override the " #function \
" usb serial operation with the generic
one.");\
} \
} while (0)

static void fixup_generic(struct usb_serial_device_type *device)
{
set_to_generic_if_null(device, open);
set_to_generic_if_null(device, write);
set_to_generic_if_null(device, close);
set_to_generic_if_null(device, write_room);
set_to_generic_if_null(device, chars_in_buffer);
set_to_generic_if_null(device, read_bulk_callback);
set_to_generic_if_null(device, write_bulk_callback);
set_to_generic_if_null(device, shutdown);
}
##########################################################"

The fixup_generic function is called when registering the driver

As the ipaq module provides these functions, !type->function should return
false
if i understand the way it should work ( which is unlikely as i've no coding
experience)










-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise