staging: unisys: prevent faults processing messages
authorTim Sell <Timothy.Sell@unisys.com>
Thu, 9 Jul 2015 17:27:42 +0000 (13:27 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Jul 2015 01:34:58 +0000 (18:34 -0700)
commitd15a65be5542ab0c4792a54cf90419fbaf741791
treef00d387c4a687a7f15a55468ce72f470023b4682
parentaddce19f58c52a03314e2d8a1e30708dabf9bf30
staging: unisys: prevent faults processing messages

Prevent faults processing messages for devices that no driver has yet
registered to handle.

Previously, code of the form:

    drv = to_visor_driver(dev->device.driver);
    if (!drv)
        goto away;

was not having the desired intent, because to_visor_driver() was
essentially returning garbage if its argument was NULL.  The only existing
case of this is in initiate_chipset_device_pause_resume(), which is called
during IOVM service partition recovery.  We were thus faulting when IOVM
service partition recovery was initiated on a bus that had at least one
device for which no function driver had registered
(visorbus_register_visor_driver).

Signed-off-by: Tim Sell <Timothy.Sell@unisys.com>
Signed-off-by: Benjamin Romer <benjamin.romer@unisys.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/unisys/include/visorbus.h