Re: USB regression: devices not initially recognized

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

 



Hi Oliver,

(Adding cc: Arjan)

On Wed, Oct 14, 2009 at 10:54 PM, eschvoca <eschvoca@xxxxxxxxx> wrote:
> Hi Oliver,
>
> It ends up that the problem happens sporadically -- some reboots the
> keyboard and bluetooth adapter don't work while other reboots it does.
>  I tried variations of reboot vs suspend vs shutdown vs unplug power
> and couldn't find a repeatable pattern.  Perhaps the problem is
> related to Ubuntu trying to speed up the boot process which doesn't
> wait long enough for the USB devices to respond.  My mouse always
> works while my USB bluetooth dongle and keyboard (through a GASIA
> PS2toUSB Adapter) do not.
>
> I've been looking for a guide on how to do a "git bisect" on vanilla
> kernels on ubuntu but haven't found anything that works well.  I
> compiled a vanilla kernel but when I went to install the debs I was
> warned that there already was a 2.6.28 kernel there and I would
> overwrite it.  I would like to do a "git bisect" on the vanilla kernel
> and be able to install them without conflicts.  Currently the problem
> is showing up in about 25% of reboots.
>
> Please direct.
>
> Thanks.

After 16 bisects I tracked down the problem with my USB keyboard
adapter and USB bluetooth dongle not initializing on boot-up to this
commit:

"""
commit b79e83bdd961ec9b862191c0df51aaeb3cb85664
Author: Arjan van de Ven <arjan@xxxxxxxxxxxxx>
Date:   Sat Apr 11 16:50:15 2009 -0700

    Input: remove unnecessary synchronize_rcu() call

    There is no need to issue serialize_rcu() after adding a new handle
    to the list of handles associated with the device because new events
    will "see" the new handle in the list immediately. Remove it so we
    can boot a little bit faster.

    Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx>

diff --git a/drivers/input/input.c b/drivers/input/input.c
index 913392f..a79c833 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -1551,7 +1551,6 @@ int input_register_handle(struct input_handle *handle)
                return error;
        list_add_tail_rcu(&handle->d_node, &dev->h_list);
        mutex_unlock(&dev->mutex);
-       synchronize_rcu();

        /*
         * Since we are supposed to be called from ->connect()
"""

Does this make sense to you?  If not I can double check things on my
end (I had to cherry-pick some commits to get things to compile and
the issue is sporadic so I may have got unlucky).  Tell me how I
should proceed if you want me to test anything out.

Thanks.
--
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