diff options
Diffstat (limited to 'drivers/scsi/ses.c')
| -rw-r--r-- | drivers/scsi/ses.c | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/drivers/scsi/ses.c b/drivers/scsi/ses.c index 2c61624cb4b0..4c348645b04e 100644 --- a/drivers/scsi/ses.c +++ b/drivers/scsi/ses.c @@ -42,9 +42,8 @@ static bool ses_page2_supported(struct enclosure_device *edev) return (ses_dev->page2 != NULL); } -static int ses_probe(struct device *dev) +static int ses_probe(struct scsi_device *sdev) { - struct scsi_device *sdev = to_scsi_device(dev); int err = -ENODEV; if (sdev->type != TYPE_ENCLOSURE) @@ -216,7 +215,7 @@ static unsigned char *ses_get_page2_descriptor(struct enclosure_device *edev, unsigned char *type_ptr = ses_dev->page1_types; unsigned char *desc_ptr = ses_dev->page2 + 8; - if (ses_recv_diag(sdev, 2, ses_dev->page2, ses_dev->page2_len) < 0) + if (ses_recv_diag(sdev, 2, ses_dev->page2, ses_dev->page2_len)) return NULL; for (i = 0; i < ses_dev->page1_num_types; i++, type_ptr += 4) { @@ -529,9 +528,8 @@ struct efd { }; static int ses_enclosure_find_by_addr(struct enclosure_device *edev, - void *data) + struct efd *efd) { - struct efd *efd = data; int i; struct ses_component *scomp; @@ -684,7 +682,7 @@ static void ses_match_to_enclosure(struct enclosure_device *edev, if (efd.addr) { efd.dev = &sdev->sdev_gendev; - enclosure_for_each_device(ses_enclosure_find_by_addr, &efd); + ses_enclosure_find_by_addr(edev, &efd); } } @@ -716,7 +714,7 @@ static int ses_intf_add(struct device *cdev) if (sdev->type != TYPE_ENCLOSURE) sdev_printk(KERN_NOTICE, sdev, "Embedded Enclosure Device\n"); - ses_dev = kzalloc(sizeof(*ses_dev), GFP_KERNEL); + ses_dev = kzalloc_obj(*ses_dev); hdr_buf = kzalloc(INIT_ALLOC_SIZE, GFP_KERNEL); if (!hdr_buf || !ses_dev) goto err_init_free; @@ -800,7 +798,7 @@ static int ses_intf_add(struct device *cdev) } page2_not_supported: if (components > 0) { - scomp = kcalloc(components, sizeof(struct ses_component), GFP_KERNEL); + scomp = kzalloc_objs(struct ses_component, components); if (!scomp) goto err_free; } @@ -847,11 +845,6 @@ page2_not_supported: return err; } -static int ses_remove(struct device *dev) -{ - return 0; -} - static void ses_intf_remove_component(struct scsi_device *sdev) { struct enclosure_device *edev, *prev = NULL; @@ -906,10 +899,9 @@ static struct class_interface ses_interface = { }; static struct scsi_driver ses_template = { + .probe = ses_probe, .gendrv = { .name = "ses", - .probe = ses_probe, - .remove = ses_remove, }, }; @@ -921,7 +913,7 @@ static int __init ses_init(void) if (err) return err; - err = scsi_register_driver(&ses_template.gendrv); + err = scsi_register_driver(&ses_template); if (err) goto out_unreg; @@ -934,7 +926,7 @@ static int __init ses_init(void) static void __exit ses_exit(void) { - scsi_unregister_driver(&ses_template.gendrv); + scsi_unregister_driver(&ses_template); scsi_unregister_interface(&ses_interface); } |
