Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 249359
b: refs/heads/master
c: 415b023
h: refs/heads/master
i:
  249357: 7121e97
  249355: 888a82d
  249351: 9c23883
  249343: bd5b9c4
v: v3
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed May 3, 2011
1 parent 4f64668 commit dcde1aa
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 33 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 63e69e01d7de3ce49d4312e8d78e43a5efe2f737
refs/heads/master: 415b023ab8d6dfb88f106163a7f202a8665fb20a
11 changes: 5 additions & 6 deletions trunk/drivers/staging/hv/blkvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -537,19 +537,18 @@ static int blkvsc_cancel_pending_reqs(struct block_device_context *blkdev)
/*
* blkvsc_remove() - Callback when our device is removed
*/
static int blkvsc_remove(struct device *device)
static int blkvsc_remove(struct hv_device *dev)
{
struct storvsc_driver_object *storvsc_drv_obj =
drv_to_stordrv(device->driver);
struct hv_device *device_obj = device_to_hv_device(device);
struct block_device_context *blkdev = dev_get_drvdata(device);
drv_to_stordrv(dev->device.driver);
struct block_device_context *blkdev = dev_get_drvdata(&dev->device);
unsigned long flags;

/*
* Call to the vsc driver to let it know that the device is being
* removed
*/
storvsc_drv_obj->base.dev_rm(device_obj);
storvsc_drv_obj->base.dev_rm(dev);

/* Get to a known state */
spin_lock_irqsave(&blkdev->lock, flags);
Expand Down Expand Up @@ -883,7 +882,7 @@ static int blkvsc_drv_init(void)
drv->driver.name = storvsc_drv_obj->base.name;

drv->probe = blkvsc_probe;
drv->driver.remove = blkvsc_remove;
drv->remove = blkvsc_remove;
drv->driver.shutdown = blkvsc_shutdown;

/* The driver belongs to vmbus */
Expand Down
11 changes: 5 additions & 6 deletions trunk/drivers/staging/hv/hv_mouse.c
Original file line number Diff line number Diff line change
Expand Up @@ -858,20 +858,19 @@ static int mousevsc_probe(struct hv_device *dev)
return 0;
}

static int mousevsc_remove(struct device *device)
static int mousevsc_remove(struct hv_device *dev)
{
int ret = 0;

struct mousevsc_drv_obj *mousevsc_drv_obj =
drv_to_mousedrv(device->driver);
drv_to_mousedrv(dev->device.driver);

struct hv_device *device_obj = device_to_hv_device(device);
struct input_device_context *input_dev_ctx;

input_dev_ctx = kmalloc(sizeof(struct input_device_context),
GFP_KERNEL);

dev_set_drvdata(device, input_dev_ctx);
dev_set_drvdata(&dev->device, input_dev_ctx);

if (input_dev_ctx->connected) {
hidinput_disconnect(input_dev_ctx->hid_device);
Expand All @@ -885,7 +884,7 @@ static int mousevsc_remove(struct device *device)
* Call to the vsc driver to let it know that the device
* is being removed
*/
ret = mousevsc_drv_obj->base.dev_rm(device_obj);
ret = mousevsc_drv_obj->base.dev_rm(dev);

if (ret != 0) {
DPRINT_ERR(INPUTVSC_DRV,
Expand Down Expand Up @@ -1023,7 +1022,7 @@ static int __init mousevsc_init(void)
drv->driver.name = input_drv_obj->base.name;

drv->probe = mousevsc_probe;
drv->driver.remove = mousevsc_remove;
drv->remove = mousevsc_remove;

/* The driver belongs to vmbus */
vmbus_child_driver_register(&drv->driver);
Expand Down
13 changes: 6 additions & 7 deletions trunk/drivers/staging/hv/netvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -408,16 +408,15 @@ static int netvsc_probe(struct hv_device *dev)
return ret;
}

static int netvsc_remove(struct device *device)
static int netvsc_remove(struct hv_device *dev)
{
struct netvsc_driver *net_drv_obj =
drv_to_netvscdrv(device->driver);
struct hv_device *device_obj = device_to_hv_device(device);
struct net_device *net = dev_get_drvdata(&device_obj->device);
drv_to_netvscdrv(dev->device.driver);
struct net_device *net = dev_get_drvdata(&dev->device);
int ret;

if (net == NULL) {
dev_err(device, "No net device to remove\n");
dev_err(&dev->device, "No net device to remove\n");
return 0;
}

Expand All @@ -434,7 +433,7 @@ static int netvsc_remove(struct device *device)
* Call to the vsc driver to let it know that the device is being
* removed
*/
ret = net_drv_obj->base.dev_rm(device_obj);
ret = net_drv_obj->base.dev_rm(dev);
if (ret != 0) {
/* TODO: */
netdev_err(net, "unable to remove vsc device (ret %d)\n", ret);
Expand Down Expand Up @@ -501,7 +500,7 @@ static int netvsc_drv_init(int (*drv_init)(struct hv_driver *drv))
drv->driver.name = net_drv_obj->base.name;

drv->probe = netvsc_probe;
drv->driver.remove = netvsc_remove;
drv->remove = netvsc_remove;

/* The driver belongs to vmbus */
ret = vmbus_child_driver_register(&drv->driver);
Expand Down
13 changes: 6 additions & 7 deletions trunk/drivers/staging/hv/storvsc_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ static int storvsc_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd
static int storvsc_device_alloc(struct scsi_device *);
static int storvsc_device_configure(struct scsi_device *);
static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd);
static int storvsc_remove(struct device *dev);
static int storvsc_remove(struct hv_device *dev);

static struct scatterlist *create_bounce_buffer(struct scatterlist *sgl,
unsigned int sg_count,
Expand Down Expand Up @@ -214,7 +214,7 @@ static int storvsc_drv_init(void)
drv->driver.name = storvsc_drv_obj->base.name;

drv->probe = storvsc_probe;
drv->driver.remove = storvsc_remove;
drv->remove = storvsc_remove;

/* The driver belongs to vmbus */
ret = vmbus_child_driver_register(&drv->driver);
Expand Down Expand Up @@ -398,20 +398,19 @@ static int storvsc_probe(struct hv_device *device)
/*
* storvsc_remove - Callback when our device is removed
*/
static int storvsc_remove(struct device *device)
static int storvsc_remove(struct hv_device *dev)
{
struct storvsc_driver_object *storvsc_drv_obj =
drv_to_stordrv(device->driver);
struct hv_device *device_obj = device_to_hv_device(device);
struct Scsi_Host *host = dev_get_drvdata(device);
drv_to_stordrv(dev->device.driver);
struct Scsi_Host *host = dev_get_drvdata(&dev->device);
struct host_device_context *host_device_ctx =
(struct host_device_context *)host->hostdata;

/*
* Call to the vsc driver to let it know that the device is being
* removed
*/
storvsc_drv_obj->base.dev_rm(device_obj);
storvsc_drv_obj->base.dev_rm(dev);

if (host_device_ctx->request_pool) {
kmem_cache_destroy(host_device_ctx->request_pool);
Expand Down
9 changes: 3 additions & 6 deletions trunk/drivers/staging/hv/vmbus_drv.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,16 +343,13 @@ static int vmbus_remove(struct device *child_device)
int ret;
struct hv_driver *drv;

struct hv_device *dev = device_to_hv_device(child_device);

if (child_device->driver) {
drv = drv_to_hv_drv(child_device->driver);

/*
* Let the specific open-source driver handles the removal if
* it can
*/
if (drv->driver.remove) {
ret = drv->driver.remove(child_device);
if (drv->remove) {
ret = drv->remove(dev);
} else {
pr_err("remove not set for driver %s\n",
dev_name(child_device));
Expand Down

0 comments on commit dcde1aa

Please sign in to comment.