Red Hat Bugzilla – Bug 125086
[PATCH] rc.sysinit should force clean USB initialization
Last modified: 2014-03-16 22:45:49 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux ppc; en-US; rv:1.6)
Description of problem:
Rc.sysinit should try to remove controller first in case initrd
inserted it without all the USB drivers available (cause hotplut to
re-run with all drivers available).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Find a system with a USB mouse. Create an initrd that loads
ohci-hcd (or similar) module but does not contain the mousedev kernel
module or hotplug because these are not needed to boot.
2. Boot the system.
3. Notice that the initrd installs the ohci-hcd module but hotplug
and the mousedev module do not exist. At this point the USB mouse
does not work.
4. Notice that once the root disk is set up and rc.sysinit is
executed by init, the ohci-hcd module is already loaded. Hotplug and
the mousedev module are now available. However, rc.sysinit does not
generate hotplug events by inserting the ohci-hcd module as it has
already been installed by the initrd.
Actual Results: The mousedev module is not automatically installed.
It must be loaded by hand.
Expected Results: The mousedev module (and all other required USB
modules) should be loaded by the hotplug system. The actions of the
initrd should have no affect on this.
Created attachment 100797 [details]
Causes rc.sysinit to rmmod USB controller module before loading it
This patch implements one possible solution to this problem. By attempting to
remove the USB controller module before (re-)inserting it, rc.sysinit ensures
that the module will be inserted with the hotplug system and all USB modules
present. As a result, the appropriate hotplug events will occur.
This shouldn't be needed, as mousedev and keybdev are built in.
In future releases, the udev startup should handle this.