Hello

I am porting a usb test driver from kernel version 3.0.8 to 
kernel version 3.7.1. 
The release function was working on V3.0.0. On V3.7.1, the 
private data stored in serial->port.device->p->driver_data 
seems already to be deallocated (or never correctly be 
allocated): usb_get_serial_port_data returns a null pointer.

Is there any function as part of the usb kernel framework 
that releases the private data before calling the release 
function ?


static void  usbrsa_test_release(struct usb_serial *serial)
{
        int                                             i;
        struct usbrsa_port_private*     priv;


        dev_dbg(&serial->dev->dev,"%s():entered\n",__func__);
        printk("%s():entered\n",__func__);

        for (i = 0; i < serial->num_ports; i++)
        {
                pr_debug("%s():portnum=%d\n",__func__,i);
                printk("%s():portnum=%d\n",__func__,i);
                priv = usb_get_serial_port_data(serial->port[i]);
                if (priv == NULL)
                {
                 printk("%s: ERROR: priv == NULL\n",__func__);
                }
                else
                {
                        release_status_urb(priv);
                        release_write_urb(priv);
                        release_read_urb(priv);
                        kfree(priv);
                }
        }
}

Thanks

Tilman

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to