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