summaryrefslogtreecommitdiff
path: root/drivers/scsi/ses.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/ses.c')
-rw-r--r--drivers/scsi/ses.c26
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);
}