Description of problem: When xenkbd_probe() fails, it calls xenkbd_remove() to clean up. If it fails before the input device successfully registered, info->dev is still null, and xenkbd_remove() must not call input_unregister_device() for it. If it fails before info->irq gets its real value, xenkbd_resume() calls unbind_from_irqhandler() for irq 0 when it should do nothing How reproducible: Haven't tried.
The most likely trigger is when there's not enough memory for the new device. Not too likely, especially because the device is compiled in and thus probes fairly early. When the bug bites, the driver dereferences a null pointer during cleanup from a failed probe.
See bug 434802 for a proposed fix.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
in kernel-2.6.18-98.el5 You can download this test kernel from http://people.redhat.com/dzickus/el5
*** Bug 451807 has been marked as a duplicate of this bug. ***
*** Bug 434806 has been marked as a duplicate of this bug. ***
*** Bug 434802 has been marked as a duplicate of this bug. ***
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2009-0225.html