Drivers: hv: Make remove callback of hyperv driver void returned
Since commit fc7a6209d5
("bus: Make remove callback return
void") forces bus_type::remove be void-returned, it doesn't
make much sense for any bus based driver implementing remove
callbalk to return non-void to its caller.
As such, change the remove function for Hyper-V VMBus based
drivers to return void.
Signed-off-by: Dawei Li <set_pte_at@outlook.com>
Link: https://lore.kernel.org/r/TYCP286MB2323A93C55526E4DF239D3ACCAFA9@TYCP286MB2323.JPNP286.PROD.OUTLOOK.COM
Signed-off-by: Wei Liu <wei.liu@kernel.org>
This commit is contained in:
parent
8536290f00
commit
96ec293962
|
@ -165,7 +165,7 @@ err_hv_set_drv_data:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hyperv_vmbus_remove(struct hv_device *hdev)
|
static void hyperv_vmbus_remove(struct hv_device *hdev)
|
||||||
{
|
{
|
||||||
struct drm_device *dev = hv_get_drvdata(hdev);
|
struct drm_device *dev = hv_get_drvdata(hdev);
|
||||||
struct hyperv_drm_device *hv = to_hv(dev);
|
struct hyperv_drm_device *hv = to_hv(dev);
|
||||||
|
@ -176,8 +176,6 @@ static int hyperv_vmbus_remove(struct hv_device *hdev)
|
||||||
hv_set_drvdata(hdev, NULL);
|
hv_set_drvdata(hdev, NULL);
|
||||||
|
|
||||||
vmbus_free_mmio(hv->mem->start, hv->fb_size);
|
vmbus_free_mmio(hv->mem->start, hv->fb_size);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hyperv_vmbus_suspend(struct hv_device *hdev)
|
static int hyperv_vmbus_suspend(struct hv_device *hdev)
|
||||||
|
|
|
@ -524,7 +524,7 @@ probe_err0:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int mousevsc_remove(struct hv_device *dev)
|
static void mousevsc_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct mousevsc_dev *input_dev = hv_get_drvdata(dev);
|
struct mousevsc_dev *input_dev = hv_get_drvdata(dev);
|
||||||
|
|
||||||
|
@ -533,8 +533,6 @@ static int mousevsc_remove(struct hv_device *dev)
|
||||||
hid_hw_stop(input_dev->hid_device);
|
hid_hw_stop(input_dev->hid_device);
|
||||||
hid_destroy_device(input_dev->hid_device);
|
hid_destroy_device(input_dev->hid_device);
|
||||||
mousevsc_free_device(input_dev);
|
mousevsc_free_device(input_dev);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mousevsc_suspend(struct hv_device *dev)
|
static int mousevsc_suspend(struct hv_device *dev)
|
||||||
|
|
|
@ -2042,7 +2042,7 @@ connect_error:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int balloon_remove(struct hv_device *dev)
|
static void balloon_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct hv_dynmem_device *dm = hv_get_drvdata(dev);
|
struct hv_dynmem_device *dm = hv_get_drvdata(dev);
|
||||||
struct hv_hotadd_state *has, *tmp;
|
struct hv_hotadd_state *has, *tmp;
|
||||||
|
@ -2083,8 +2083,6 @@ static int balloon_remove(struct hv_device *dev)
|
||||||
kfree(has);
|
kfree(has);
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(&dm_device.ha_lock, flags);
|
spin_unlock_irqrestore(&dm_device.ha_lock, flags);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int balloon_suspend(struct hv_device *hv_dev)
|
static int balloon_suspend(struct hv_device *hv_dev)
|
||||||
|
|
|
@ -602,7 +602,7 @@ error1:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int util_remove(struct hv_device *dev)
|
static void util_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct hv_util_service *srv = hv_get_drvdata(dev);
|
struct hv_util_service *srv = hv_get_drvdata(dev);
|
||||||
|
|
||||||
|
@ -610,8 +610,6 @@ static int util_remove(struct hv_device *dev)
|
||||||
srv->util_deinit();
|
srv->util_deinit();
|
||||||
vmbus_close(dev->channel);
|
vmbus_close(dev->channel);
|
||||||
kfree(srv->recv_buffer);
|
kfree(srv->recv_buffer);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -369,7 +369,7 @@ err_free_mem:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hv_kbd_remove(struct hv_device *hv_dev)
|
static void hv_kbd_remove(struct hv_device *hv_dev)
|
||||||
{
|
{
|
||||||
struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev);
|
struct hv_kbd_dev *kbd_dev = hv_get_drvdata(hv_dev);
|
||||||
|
|
||||||
|
@ -378,8 +378,6 @@ static int hv_kbd_remove(struct hv_device *hv_dev)
|
||||||
kfree(kbd_dev);
|
kfree(kbd_dev);
|
||||||
|
|
||||||
hv_set_drvdata(hv_dev, NULL);
|
hv_set_drvdata(hv_dev, NULL);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hv_kbd_suspend(struct hv_device *hv_dev)
|
static int hv_kbd_suspend(struct hv_device *hv_dev)
|
||||||
|
|
|
@ -2594,7 +2594,7 @@ no_net:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int netvsc_remove(struct hv_device *dev)
|
static void netvsc_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct net_device_context *ndev_ctx;
|
struct net_device_context *ndev_ctx;
|
||||||
struct net_device *vf_netdev, *net;
|
struct net_device *vf_netdev, *net;
|
||||||
|
@ -2603,7 +2603,7 @@ static int netvsc_remove(struct hv_device *dev)
|
||||||
net = hv_get_drvdata(dev);
|
net = hv_get_drvdata(dev);
|
||||||
if (net == NULL) {
|
if (net == NULL) {
|
||||||
dev_err(&dev->device, "No net device to remove\n");
|
dev_err(&dev->device, "No net device to remove\n");
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ndev_ctx = netdev_priv(net);
|
ndev_ctx = netdev_priv(net);
|
||||||
|
@ -2637,7 +2637,6 @@ static int netvsc_remove(struct hv_device *dev)
|
||||||
|
|
||||||
free_percpu(ndev_ctx->vf_stats);
|
free_percpu(ndev_ctx->vf_stats);
|
||||||
free_netdev(net);
|
free_netdev(net);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int netvsc_suspend(struct hv_device *dev)
|
static int netvsc_suspend(struct hv_device *dev)
|
||||||
|
|
|
@ -3800,13 +3800,10 @@ static int hv_pci_bus_exit(struct hv_device *hdev, bool keep_devs)
|
||||||
/**
|
/**
|
||||||
* hv_pci_remove() - Remove routine for this VMBus channel
|
* hv_pci_remove() - Remove routine for this VMBus channel
|
||||||
* @hdev: VMBus's tracking struct for this root PCI bus
|
* @hdev: VMBus's tracking struct for this root PCI bus
|
||||||
*
|
|
||||||
* Return: 0 on success, -errno on failure
|
|
||||||
*/
|
*/
|
||||||
static int hv_pci_remove(struct hv_device *hdev)
|
static void hv_pci_remove(struct hv_device *hdev)
|
||||||
{
|
{
|
||||||
struct hv_pcibus_device *hbus;
|
struct hv_pcibus_device *hbus;
|
||||||
int ret;
|
|
||||||
|
|
||||||
hbus = hv_get_drvdata(hdev);
|
hbus = hv_get_drvdata(hdev);
|
||||||
if (hbus->state == hv_pcibus_installed) {
|
if (hbus->state == hv_pcibus_installed) {
|
||||||
|
@ -3829,7 +3826,7 @@ static int hv_pci_remove(struct hv_device *hdev)
|
||||||
pci_unlock_rescan_remove();
|
pci_unlock_rescan_remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = hv_pci_bus_exit(hdev, false);
|
hv_pci_bus_exit(hdev, false);
|
||||||
|
|
||||||
vmbus_close(hdev->channel);
|
vmbus_close(hdev->channel);
|
||||||
|
|
||||||
|
@ -3842,7 +3839,6 @@ static int hv_pci_remove(struct hv_device *hdev)
|
||||||
hv_put_dom_num(hbus->bridge->domain_nr);
|
hv_put_dom_num(hbus->bridge->domain_nr);
|
||||||
|
|
||||||
kfree(hbus);
|
kfree(hbus);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hv_pci_suspend(struct hv_device *hdev)
|
static int hv_pci_suspend(struct hv_device *hdev)
|
||||||
|
|
|
@ -2092,7 +2092,7 @@ static int storvsc_change_queue_depth(struct scsi_device *sdev, int queue_depth)
|
||||||
return scsi_change_queue_depth(sdev, queue_depth);
|
return scsi_change_queue_depth(sdev, queue_depth);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int storvsc_remove(struct hv_device *dev)
|
static void storvsc_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct storvsc_device *stor_device = hv_get_drvdata(dev);
|
struct storvsc_device *stor_device = hv_get_drvdata(dev);
|
||||||
struct Scsi_Host *host = stor_device->host;
|
struct Scsi_Host *host = stor_device->host;
|
||||||
|
@ -2108,8 +2108,6 @@ static int storvsc_remove(struct hv_device *dev)
|
||||||
scsi_remove_host(host);
|
scsi_remove_host(host);
|
||||||
storvsc_dev_remove(dev);
|
storvsc_dev_remove(dev);
|
||||||
scsi_host_put(host);
|
scsi_host_put(host);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int storvsc_suspend(struct hv_device *hv_dev)
|
static int storvsc_suspend(struct hv_device *hv_dev)
|
||||||
|
|
|
@ -355,20 +355,19 @@ fail_free_ring:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static void
|
||||||
hv_uio_remove(struct hv_device *dev)
|
hv_uio_remove(struct hv_device *dev)
|
||||||
{
|
{
|
||||||
struct hv_uio_private_data *pdata = hv_get_drvdata(dev);
|
struct hv_uio_private_data *pdata = hv_get_drvdata(dev);
|
||||||
|
|
||||||
if (!pdata)
|
if (!pdata)
|
||||||
return 0;
|
return;
|
||||||
|
|
||||||
sysfs_remove_bin_file(&dev->channel->kobj, &ring_buffer_bin_attr);
|
sysfs_remove_bin_file(&dev->channel->kobj, &ring_buffer_bin_attr);
|
||||||
uio_unregister_device(&pdata->info);
|
uio_unregister_device(&pdata->info);
|
||||||
hv_uio_cleanup(dev, pdata);
|
hv_uio_cleanup(dev, pdata);
|
||||||
|
|
||||||
vmbus_free_ring(dev->channel);
|
vmbus_free_ring(dev->channel);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct hv_driver hv_uio_drv = {
|
static struct hv_driver hv_uio_drv = {
|
||||||
|
|
|
@ -1239,8 +1239,7 @@ error1:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void hvfb_remove(struct hv_device *hdev)
|
||||||
static int hvfb_remove(struct hv_device *hdev)
|
|
||||||
{
|
{
|
||||||
struct fb_info *info = hv_get_drvdata(hdev);
|
struct fb_info *info = hv_get_drvdata(hdev);
|
||||||
struct hvfb_par *par = info->par;
|
struct hvfb_par *par = info->par;
|
||||||
|
@ -1261,8 +1260,6 @@ static int hvfb_remove(struct hv_device *hdev)
|
||||||
|
|
||||||
hvfb_putmem(hdev, info);
|
hvfb_putmem(hdev, info);
|
||||||
framebuffer_release(info);
|
framebuffer_release(info);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hvfb_suspend(struct hv_device *hdev)
|
static int hvfb_suspend(struct hv_device *hdev)
|
||||||
|
|
|
@ -1273,7 +1273,7 @@ struct hv_driver {
|
||||||
} dynids;
|
} dynids;
|
||||||
|
|
||||||
int (*probe)(struct hv_device *, const struct hv_vmbus_device_id *);
|
int (*probe)(struct hv_device *, const struct hv_vmbus_device_id *);
|
||||||
int (*remove)(struct hv_device *);
|
void (*remove)(struct hv_device *dev);
|
||||||
void (*shutdown)(struct hv_device *);
|
void (*shutdown)(struct hv_device *);
|
||||||
|
|
||||||
int (*suspend)(struct hv_device *);
|
int (*suspend)(struct hv_device *);
|
||||||
|
|
|
@ -879,13 +879,11 @@ static int hvs_probe(struct hv_device *hdev,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hvs_remove(struct hv_device *hdev)
|
static void hvs_remove(struct hv_device *hdev)
|
||||||
{
|
{
|
||||||
struct vmbus_channel *chan = hdev->channel;
|
struct vmbus_channel *chan = hdev->channel;
|
||||||
|
|
||||||
vmbus_close(chan);
|
vmbus_close(chan);
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hv_sock connections can not persist across hibernation, and all the hv_sock
|
/* hv_sock connections can not persist across hibernation, and all the hv_sock
|
||||||
|
|
Loading…
Reference in New Issue