From: K. Y. Srinivasan Date: Sat, 28 Feb 2015 19:18:16 +0000 (-0800) Subject: Drivers: hv: vmbus: Properly handle child device remove X-Git-Tag: v4.14-rc1~5524^2~110 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d15a0301c4157884d1a48a5d76b9ac3e36d71242;p=platform%2Fkernel%2Flinux-rpi.git Drivers: hv: vmbus: Properly handle child device remove Handle the case when the device may be removed when the device has no driver attached to it. Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 6d99aa5..a12666d 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -508,14 +508,17 @@ static int vmbus_probe(struct device *child_device) */ static int vmbus_remove(struct device *child_device) { - struct hv_driver *drv = drv_to_hv_drv(child_device->driver); + struct hv_driver *drv; struct hv_device *dev = device_to_hv_device(child_device); - if (drv->remove) - drv->remove(dev); - else - pr_err("remove not set for driver %s\n", - dev_name(child_device)); + if (child_device->driver) { + drv = drv_to_hv_drv(child_device->driver); + if (drv->remove) + drv->remove(dev); + else + pr_err("remove not set for driver %s\n", + dev_name(child_device)); + } return 0; }