usb serial driver: private data already deallocated when release function is called

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux