[BUG] cdc-acm driver module - Kernel

This is a discussion on [BUG] cdc-acm driver module - Kernel ; Hi All, This is vijay and new to this group. Normally I use to go through the Linux kernel source and try to understand how things work. Last week I was going through the cdc-acm driver source(linux-2.6.25). I think there ...

+ Reply to Thread
Results 1 to 5 of 5

Thread: [BUG] cdc-acm driver module

  1. [BUG] cdc-acm driver module

    Hi All,

    This is vijay and new to this group. Normally I use to go through the
    Linux kernel source and try to understand how things work.

    Last week I was going through the cdc-acm driver source(linux-2.6.25).
    I think there is a bug with that driver and I am not sure about it. So
    I decided to post you guys and get your views on that.

    The interface is claimed in 'acm_probe' using 'usb_driver_claim_interface' and
    it has been released in 'acm_disconnect' using 'usb_driver_release_interface'.
    This works fine as long as the control reaches 'acm_disconnect'.

    What happens when the control never reaches the 'acm_disconnect'. Like simply
    loading the driver and unloading the driver when the device is still in use.
    In this case I hope the 'usb_driver_release_interface' never gets called.
    Is it a bug? Do we have to do a 'usb_driver_release_interface' in 'acm_exit'.

    Please clarify.

    Thanks,
    VJ
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [BUG] cdc-acm driver module

    Am Mittwoch 21 Mai 2008 15:01:21 schrieb vijay anand:
    > What happens when the control never reaches the 'acm_disconnect'. Like simply
    > loading the driver and unloading the driver when the device is still in use.


    Even in this case disconnect() will be called.
    The only time it will not be called is if probe() was never called. But
    in that case no interface has been claimed. All is well.

    Regards
    Oliver
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  3. Re: [BUG] cdc-acm driver module

    Hi Oliver,

    Thank you very much for replying.

    Given below is the snip from '\linux-2.6.25\drivers\usb\core\driver.c'
    for 'usb_driver_release_interface'

    ****SNIP*****
    * This can be used by drivers to release an interface without waiting
    * for their disconnect() methods to be called. In typical cases this
    * also causes the driver disconnect() method to be called.
    ****END*****

    What happens when the function 'usb_deregister' in 'acm_exit' gets
    called before the control reaches the 'acm_disconnect'? Is there any
    possibility for this? If yes what happens during this scenario?

    Thanks,
    VJ



    On Wed, May 21, 2008 at 6:55 PM, Oliver Neukum wrote:
    > Am Mittwoch 21 Mai 2008 15:01:21 schrieb vijay anand:
    >> What happens when the control never reaches the 'acm_disconnect'. Like simply
    >> loading the driver and unloading the driver when the device is still in use.

    >
    > Even in this case disconnect() will be called.
    > The only time it will not be called is if probe() was never called. But
    > in that case no interface has been claimed. All is well.
    >
    > Regards
    > Oliver
    >

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  4. Re: [BUG] cdc-acm driver module

    Am Donnerstag 22 Mai 2008 06:59:50 schrieb vijay anand:
    > What happens when the function 'usb_deregister' in 'acm_exit' *gets
    > called before the control reaches the 'acm_disconnect'? Is there any
    > possibility for this? If yes what happens during this scenario?


    This cannot happen. The driver core will disconnect all devices bound
    to a driver to be unloaded.

    Regards
    Oliver

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  5. Re: [BUG] cdc-acm driver module

    Thank you very much !!

    On Thu, May 22, 2008 at 4:51 PM, Oliver Neukum wrote:
    > Am Donnerstag 22 Mai 2008 06:59:50 schrieb vijay anand:
    >> What happens when the function 'usb_deregister' in 'acm_exit' gets
    >> called before the control reaches the 'acm_disconnect'? Is there any
    >> possibility for this? If yes what happens during this scenario?

    >
    > This cannot happen. The driver core will disconnect all devices bound
    > to a driver to be unloaded.
    >
    > Regards
    > Oliver
    >
    >

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread