diff options
Diffstat (limited to 'drivers/message/i2o')
-rw-r--r-- | drivers/message/i2o/bus-osm.c | 3 | ||||
-rw-r--r-- | drivers/message/i2o/device.c | 27 | ||||
-rw-r--r-- | drivers/message/i2o/driver.c | 20 | ||||
-rw-r--r-- | drivers/message/i2o/exec-osm.c | 10 | ||||
-rw-r--r-- | drivers/message/i2o/i2o_block.c | 15 | ||||
-rw-r--r-- | drivers/message/i2o/i2o_block.h | 2 | ||||
-rw-r--r-- | drivers/message/i2o/i2o_config.c | 8 | ||||
-rw-r--r-- | drivers/message/i2o/i2o_proc.c | 2 | ||||
-rw-r--r-- | drivers/message/i2o/i2o_scsi.c | 23 | ||||
-rw-r--r-- | drivers/message/i2o/pci.c | 5 |
10 files changed, 69 insertions, 46 deletions
diff --git a/drivers/message/i2o/bus-osm.c b/drivers/message/i2o/bus-osm.c index d96c687aee93..c463dc2efc09 100644 --- a/drivers/message/i2o/bus-osm.c +++ b/drivers/message/i2o/bus-osm.c | |||
@@ -56,6 +56,9 @@ static int i2o_bus_scan(struct i2o_device *dev) | |||
56 | /** | 56 | /** |
57 | * i2o_bus_store_scan - Scan the I2O Bus Adapter | 57 | * i2o_bus_store_scan - Scan the I2O Bus Adapter |
58 | * @d: device which should be scanned | 58 | * @d: device which should be scanned |
59 | * @attr: device_attribute | ||
60 | * @buf: output buffer | ||
61 | * @count: buffer size | ||
59 | * | 62 | * |
60 | * Returns count. | 63 | * Returns count. |
61 | */ | 64 | */ |
diff --git a/drivers/message/i2o/device.c b/drivers/message/i2o/device.c index ee183053fa23..b9df143e4ff1 100644 --- a/drivers/message/i2o/device.c +++ b/drivers/message/i2o/device.c | |||
@@ -54,8 +54,8 @@ static inline int i2o_device_issue_claim(struct i2o_device *dev, u32 cmd, | |||
54 | * @dev: I2O device to claim | 54 | * @dev: I2O device to claim |
55 | * @drv: I2O driver which wants to claim the device | 55 | * @drv: I2O driver which wants to claim the device |
56 | * | 56 | * |
57 | * Do the leg work to assign a device to a given OSM. If the claim succeed | 57 | * Do the leg work to assign a device to a given OSM. If the claim succeeds, |
58 | * the owner of the rimary. If the attempt fails a negative errno code | 58 | * the owner is the primary. If the attempt fails a negative errno code |
59 | * is returned. On success zero is returned. | 59 | * is returned. On success zero is returned. |
60 | */ | 60 | */ |
61 | int i2o_device_claim(struct i2o_device *dev) | 61 | int i2o_device_claim(struct i2o_device *dev) |
@@ -208,24 +208,23 @@ static struct i2o_device *i2o_device_alloc(void) | |||
208 | 208 | ||
209 | /** | 209 | /** |
210 | * i2o_device_add - allocate a new I2O device and add it to the IOP | 210 | * i2o_device_add - allocate a new I2O device and add it to the IOP |
211 | * @iop: I2O controller where the device is on | 211 | * @c: I2O controller that the device is on |
212 | * @entry: LCT entry of the I2O device | 212 | * @entry: LCT entry of the I2O device |
213 | * | 213 | * |
214 | * Allocate a new I2O device and initialize it with the LCT entry. The | 214 | * Allocate a new I2O device and initialize it with the LCT entry. The |
215 | * device is appended to the device list of the controller. | 215 | * device is appended to the device list of the controller. |
216 | * | 216 | * |
217 | * Returns a pointer to the I2O device on success or negative error code | 217 | * Returns zero on success, or a -ve errno. |
218 | * on failure. | ||
219 | */ | 218 | */ |
220 | static struct i2o_device *i2o_device_add(struct i2o_controller *c, | 219 | static int i2o_device_add(struct i2o_controller *c, i2o_lct_entry *entry) |
221 | i2o_lct_entry * entry) | ||
222 | { | 220 | { |
223 | struct i2o_device *i2o_dev, *tmp; | 221 | struct i2o_device *i2o_dev, *tmp; |
222 | int rc; | ||
224 | 223 | ||
225 | i2o_dev = i2o_device_alloc(); | 224 | i2o_dev = i2o_device_alloc(); |
226 | if (IS_ERR(i2o_dev)) { | 225 | if (IS_ERR(i2o_dev)) { |
227 | printk(KERN_ERR "i2o: unable to allocate i2o device\n"); | 226 | printk(KERN_ERR "i2o: unable to allocate i2o device\n"); |
228 | return i2o_dev; | 227 | return PTR_ERR(i2o_dev); |
229 | } | 228 | } |
230 | 229 | ||
231 | i2o_dev->lct_data = *entry; | 230 | i2o_dev->lct_data = *entry; |
@@ -236,7 +235,9 @@ static struct i2o_device *i2o_device_add(struct i2o_controller *c, | |||
236 | i2o_dev->iop = c; | 235 | i2o_dev->iop = c; |
237 | i2o_dev->device.parent = &c->device; | 236 | i2o_dev->device.parent = &c->device; |
238 | 237 | ||
239 | device_register(&i2o_dev->device); | 238 | rc = device_register(&i2o_dev->device); |
239 | if (rc) | ||
240 | goto err; | ||
240 | 241 | ||
241 | list_add_tail(&i2o_dev->list, &c->devices); | 242 | list_add_tail(&i2o_dev->list, &c->devices); |
242 | 243 | ||
@@ -270,12 +271,16 @@ static struct i2o_device *i2o_device_add(struct i2o_controller *c, | |||
270 | 271 | ||
271 | pr_debug("i2o: device %s added\n", i2o_dev->device.bus_id); | 272 | pr_debug("i2o: device %s added\n", i2o_dev->device.bus_id); |
272 | 273 | ||
273 | return i2o_dev; | 274 | return 0; |
275 | |||
276 | err: | ||
277 | kfree(i2o_dev); | ||
278 | return rc; | ||
274 | } | 279 | } |
275 | 280 | ||
276 | /** | 281 | /** |
277 | * i2o_device_remove - remove an I2O device from the I2O core | 282 | * i2o_device_remove - remove an I2O device from the I2O core |
278 | * @dev: I2O device which should be released | 283 | * @i2o_dev: I2O device which should be released |
279 | * | 284 | * |
280 | * Is used on I2O controller removal or LCT modification, when the device | 285 | * Is used on I2O controller removal or LCT modification, when the device |
281 | * is removed from the system. Note that the device could still hang | 286 | * is removed from the system. Note that the device could still hang |
diff --git a/drivers/message/i2o/driver.c b/drivers/message/i2o/driver.c index 7fc7399bd2ec..9104b65ff70f 100644 --- a/drivers/message/i2o/driver.c +++ b/drivers/message/i2o/driver.c | |||
@@ -34,9 +34,7 @@ static spinlock_t i2o_drivers_lock; | |||
34 | static struct i2o_driver **i2o_drivers; | 34 | static struct i2o_driver **i2o_drivers; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | * i2o_bus_match - Tell if a I2O device class id match the class ids of | 37 | * i2o_bus_match - Tell if I2O device class id matches the class ids of the I2O driver (OSM) |
38 | * the I2O driver (OSM) | ||
39 | * | ||
40 | * @dev: device which should be verified | 38 | * @dev: device which should be verified |
41 | * @drv: the driver to match against | 39 | * @drv: the driver to match against |
42 | * | 40 | * |
@@ -248,7 +246,7 @@ int i2o_driver_dispatch(struct i2o_controller *c, u32 m) | |||
248 | 246 | ||
249 | /** | 247 | /** |
250 | * i2o_driver_notify_controller_add_all - Send notify of added controller | 248 | * i2o_driver_notify_controller_add_all - Send notify of added controller |
251 | * to all I2O drivers | 249 | * @c: newly added controller |
252 | * | 250 | * |
253 | * Send notifications to all registered drivers that a new controller was | 251 | * Send notifications to all registered drivers that a new controller was |
254 | * added. | 252 | * added. |
@@ -267,8 +265,8 @@ void i2o_driver_notify_controller_add_all(struct i2o_controller *c) | |||
267 | } | 265 | } |
268 | 266 | ||
269 | /** | 267 | /** |
270 | * i2o_driver_notify_controller_remove_all - Send notify of removed | 268 | * i2o_driver_notify_controller_remove_all - Send notify of removed controller |
271 | * controller to all I2O drivers | 269 | * @c: controller that is being removed |
272 | * | 270 | * |
273 | * Send notifications to all registered drivers that a controller was | 271 | * Send notifications to all registered drivers that a controller was |
274 | * removed. | 272 | * removed. |
@@ -287,8 +285,8 @@ void i2o_driver_notify_controller_remove_all(struct i2o_controller *c) | |||
287 | } | 285 | } |
288 | 286 | ||
289 | /** | 287 | /** |
290 | * i2o_driver_notify_device_add_all - Send notify of added device to all | 288 | * i2o_driver_notify_device_add_all - Send notify of added device |
291 | * I2O drivers | 289 | * @i2o_dev: newly added I2O device |
292 | * | 290 | * |
293 | * Send notifications to all registered drivers that a device was added. | 291 | * Send notifications to all registered drivers that a device was added. |
294 | */ | 292 | */ |
@@ -306,8 +304,8 @@ void i2o_driver_notify_device_add_all(struct i2o_device *i2o_dev) | |||
306 | } | 304 | } |
307 | 305 | ||
308 | /** | 306 | /** |
309 | * i2o_driver_notify_device_remove_all - Send notify of removed device to | 307 | * i2o_driver_notify_device_remove_all - Send notify of removed device |
310 | * all I2O drivers | 308 | * @i2o_dev: device that is being removed |
311 | * | 309 | * |
312 | * Send notifications to all registered drivers that a device was removed. | 310 | * Send notifications to all registered drivers that a device was removed. |
313 | */ | 311 | */ |
@@ -362,7 +360,7 @@ int __init i2o_driver_init(void) | |||
362 | /** | 360 | /** |
363 | * i2o_driver_exit - clean up I2O drivers (OSMs) | 361 | * i2o_driver_exit - clean up I2O drivers (OSMs) |
364 | * | 362 | * |
365 | * Unregisters the I2O bus and free driver array. | 363 | * Unregisters the I2O bus and frees driver array. |
366 | */ | 364 | */ |
367 | void __exit i2o_driver_exit(void) | 365 | void __exit i2o_driver_exit(void) |
368 | { | 366 | { |
diff --git a/drivers/message/i2o/exec-osm.c b/drivers/message/i2o/exec-osm.c index 9e529d8dd5cb..902753b2c661 100644 --- a/drivers/message/i2o/exec-osm.c +++ b/drivers/message/i2o/exec-osm.c | |||
@@ -94,8 +94,8 @@ static struct i2o_exec_wait *i2o_exec_wait_alloc(void) | |||
94 | }; | 94 | }; |
95 | 95 | ||
96 | /** | 96 | /** |
97 | * i2o_exec_wait_free - Free a i2o_exec_wait struct | 97 | * i2o_exec_wait_free - Free an i2o_exec_wait struct |
98 | * @i2o_exec_wait: I2O wait data which should be cleaned up | 98 | * @wait: I2O wait data which should be cleaned up |
99 | */ | 99 | */ |
100 | static void i2o_exec_wait_free(struct i2o_exec_wait *wait) | 100 | static void i2o_exec_wait_free(struct i2o_exec_wait *wait) |
101 | { | 101 | { |
@@ -105,7 +105,7 @@ static void i2o_exec_wait_free(struct i2o_exec_wait *wait) | |||
105 | /** | 105 | /** |
106 | * i2o_msg_post_wait_mem - Post and wait a message with DMA buffers | 106 | * i2o_msg_post_wait_mem - Post and wait a message with DMA buffers |
107 | * @c: controller | 107 | * @c: controller |
108 | * @m: message to post | 108 | * @msg: message to post |
109 | * @timeout: time in seconds to wait | 109 | * @timeout: time in seconds to wait |
110 | * @dma: i2o_dma struct of the DMA buffer to free on failure | 110 | * @dma: i2o_dma struct of the DMA buffer to free on failure |
111 | * | 111 | * |
@@ -269,6 +269,7 @@ static int i2o_msg_post_wait_complete(struct i2o_controller *c, u32 m, | |||
269 | /** | 269 | /** |
270 | * i2o_exec_show_vendor_id - Displays Vendor ID of controller | 270 | * i2o_exec_show_vendor_id - Displays Vendor ID of controller |
271 | * @d: device of which the Vendor ID should be displayed | 271 | * @d: device of which the Vendor ID should be displayed |
272 | * @attr: device_attribute to display | ||
272 | * @buf: buffer into which the Vendor ID should be printed | 273 | * @buf: buffer into which the Vendor ID should be printed |
273 | * | 274 | * |
274 | * Returns number of bytes printed into buffer. | 275 | * Returns number of bytes printed into buffer. |
@@ -290,6 +291,7 @@ static ssize_t i2o_exec_show_vendor_id(struct device *d, | |||
290 | /** | 291 | /** |
291 | * i2o_exec_show_product_id - Displays Product ID of controller | 292 | * i2o_exec_show_product_id - Displays Product ID of controller |
292 | * @d: device of which the Product ID should be displayed | 293 | * @d: device of which the Product ID should be displayed |
294 | * @attr: device_attribute to display | ||
293 | * @buf: buffer into which the Product ID should be printed | 295 | * @buf: buffer into which the Product ID should be printed |
294 | * | 296 | * |
295 | * Returns number of bytes printed into buffer. | 297 | * Returns number of bytes printed into buffer. |
@@ -365,7 +367,7 @@ static int i2o_exec_remove(struct device *dev) | |||
365 | 367 | ||
366 | /** | 368 | /** |
367 | * i2o_exec_lct_modified - Called on LCT NOTIFY reply | 369 | * i2o_exec_lct_modified - Called on LCT NOTIFY reply |
368 | * @c: I2O controller on which the LCT has modified | 370 | * @work: work struct for a specific controller |
369 | * | 371 | * |
370 | * This function handles asynchronus LCT NOTIFY replies. It parses the | 372 | * This function handles asynchronus LCT NOTIFY replies. It parses the |
371 | * new LCT and if the buffer for the LCT was to small sends a LCT NOTIFY | 373 | * new LCT and if the buffer for the LCT was to small sends a LCT NOTIFY |
diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c index 70ae00253321..da9859f2caf2 100644 --- a/drivers/message/i2o/i2o_block.c +++ b/drivers/message/i2o/i2o_block.c | |||
@@ -259,7 +259,7 @@ static int i2o_block_device_unlock(struct i2o_device *dev, u32 media_id) | |||
259 | /** | 259 | /** |
260 | * i2o_block_device_power - Power management for device dev | 260 | * i2o_block_device_power - Power management for device dev |
261 | * @dev: I2O device which should receive the power management request | 261 | * @dev: I2O device which should receive the power management request |
262 | * @operation: Operation which should be send | 262 | * @op: Operation to send |
263 | * | 263 | * |
264 | * Send a power management request to the device dev. | 264 | * Send a power management request to the device dev. |
265 | * | 265 | * |
@@ -315,7 +315,7 @@ static inline struct i2o_block_request *i2o_block_request_alloc(void) | |||
315 | * i2o_block_request_free - Frees a I2O block request | 315 | * i2o_block_request_free - Frees a I2O block request |
316 | * @ireq: I2O block request which should be freed | 316 | * @ireq: I2O block request which should be freed |
317 | * | 317 | * |
318 | * Fres the allocated memory (give it back to the request mempool). | 318 | * Frees the allocated memory (give it back to the request mempool). |
319 | */ | 319 | */ |
320 | static inline void i2o_block_request_free(struct i2o_block_request *ireq) | 320 | static inline void i2o_block_request_free(struct i2o_block_request *ireq) |
321 | { | 321 | { |
@@ -326,6 +326,7 @@ static inline void i2o_block_request_free(struct i2o_block_request *ireq) | |||
326 | * i2o_block_sglist_alloc - Allocate the SG list and map it | 326 | * i2o_block_sglist_alloc - Allocate the SG list and map it |
327 | * @c: I2O controller to which the request belongs | 327 | * @c: I2O controller to which the request belongs |
328 | * @ireq: I2O block request | 328 | * @ireq: I2O block request |
329 | * @mptr: message body pointer | ||
329 | * | 330 | * |
330 | * Builds the SG list and map it to be accessable by the controller. | 331 | * Builds the SG list and map it to be accessable by the controller. |
331 | * | 332 | * |
@@ -490,7 +491,7 @@ static void i2o_block_end_request(struct request *req, int uptodate, | |||
490 | * i2o_block_reply - Block OSM reply handler. | 491 | * i2o_block_reply - Block OSM reply handler. |
491 | * @c: I2O controller from which the message arrives | 492 | * @c: I2O controller from which the message arrives |
492 | * @m: message id of reply | 493 | * @m: message id of reply |
493 | * qmsg: the actuall I2O message reply | 494 | * @msg: the actual I2O message reply |
494 | * | 495 | * |
495 | * This function gets all the message replies. | 496 | * This function gets all the message replies. |
496 | * | 497 | * |
@@ -602,6 +603,8 @@ static void i2o_block_biosparam(unsigned long capacity, unsigned short *cyls, | |||
602 | 603 | ||
603 | /** | 604 | /** |
604 | * i2o_block_open - Open the block device | 605 | * i2o_block_open - Open the block device |
606 | * @inode: inode for block device being opened | ||
607 | * @file: file to open | ||
605 | * | 608 | * |
606 | * Power up the device, mount and lock the media. This function is called, | 609 | * Power up the device, mount and lock the media. This function is called, |
607 | * if the block device is opened for access. | 610 | * if the block device is opened for access. |
@@ -629,6 +632,8 @@ static int i2o_block_open(struct inode *inode, struct file *file) | |||
629 | 632 | ||
630 | /** | 633 | /** |
631 | * i2o_block_release - Release the I2O block device | 634 | * i2o_block_release - Release the I2O block device |
635 | * @inode: inode for block device being released | ||
636 | * @file: file to close | ||
632 | * | 637 | * |
633 | * Unlock and unmount the media, and power down the device. Gets called if | 638 | * Unlock and unmount the media, and power down the device. Gets called if |
634 | * the block device is closed. | 639 | * the block device is closed. |
@@ -675,6 +680,8 @@ static int i2o_block_getgeo(struct block_device *bdev, struct hd_geometry *geo) | |||
675 | 680 | ||
676 | /** | 681 | /** |
677 | * i2o_block_ioctl - Issue device specific ioctl calls. | 682 | * i2o_block_ioctl - Issue device specific ioctl calls. |
683 | * @inode: inode for block device ioctl | ||
684 | * @file: file for ioctl | ||
678 | * @cmd: ioctl command | 685 | * @cmd: ioctl command |
679 | * @arg: arg | 686 | * @arg: arg |
680 | * | 687 | * |
@@ -902,7 +909,7 @@ static int i2o_block_transfer(struct request *req) | |||
902 | 909 | ||
903 | /** | 910 | /** |
904 | * i2o_block_request_fn - request queue handling function | 911 | * i2o_block_request_fn - request queue handling function |
905 | * q: request queue from which the request could be fetched | 912 | * @q: request queue from which the request could be fetched |
906 | * | 913 | * |
907 | * Takes the next request from the queue, transfers it and if no error | 914 | * Takes the next request from the queue, transfers it and if no error |
908 | * occurs dequeue it from the queue. On arrival of the reply the message | 915 | * occurs dequeue it from the queue. On arrival of the reply the message |
diff --git a/drivers/message/i2o/i2o_block.h b/drivers/message/i2o/i2o_block.h index d9fdc95b440d..67f921b4419b 100644 --- a/drivers/message/i2o/i2o_block.h +++ b/drivers/message/i2o/i2o_block.h | |||
@@ -64,7 +64,7 @@ | |||
64 | 64 | ||
65 | /* I2O Block OSM mempool struct */ | 65 | /* I2O Block OSM mempool struct */ |
66 | struct i2o_block_mempool { | 66 | struct i2o_block_mempool { |
67 | kmem_cache_t *slab; | 67 | struct kmem_cache *slab; |
68 | mempool_t *pool; | 68 | mempool_t *pool; |
69 | }; | 69 | }; |
70 | 70 | ||
diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c index 7d23e082bf26..1de30d711671 100644 --- a/drivers/message/i2o/i2o_config.c +++ b/drivers/message/i2o/i2o_config.c | |||
@@ -265,7 +265,11 @@ static int i2o_cfg_swdl(unsigned long arg) | |||
265 | return -ENOMEM; | 265 | return -ENOMEM; |
266 | } | 266 | } |
267 | 267 | ||
268 | __copy_from_user(buffer.virt, kxfer.buf, fragsize); | 268 | if (__copy_from_user(buffer.virt, kxfer.buf, fragsize)) { |
269 | i2o_msg_nop(c, msg); | ||
270 | i2o_dma_free(&c->pdev->dev, &buffer); | ||
271 | return -EFAULT; | ||
272 | } | ||
269 | 273 | ||
270 | msg->u.head[0] = cpu_to_le32(NINE_WORD_MSG_SIZE | SGL_OFFSET_7); | 274 | msg->u.head[0] = cpu_to_le32(NINE_WORD_MSG_SIZE | SGL_OFFSET_7); |
271 | msg->u.head[1] = | 275 | msg->u.head[1] = |
@@ -516,7 +520,6 @@ static int i2o_cfg_evt_get(unsigned long arg, struct file *fp) | |||
516 | return 0; | 520 | return 0; |
517 | } | 521 | } |
518 | 522 | ||
519 | #ifdef CONFIG_I2O_EXT_ADAPTEC | ||
520 | #ifdef CONFIG_COMPAT | 523 | #ifdef CONFIG_COMPAT |
521 | static int i2o_cfg_passthru32(struct file *file, unsigned cmnd, | 524 | static int i2o_cfg_passthru32(struct file *file, unsigned cmnd, |
522 | unsigned long arg) | 525 | unsigned long arg) |
@@ -759,6 +762,7 @@ static long i2o_cfg_compat_ioctl(struct file *file, unsigned cmd, | |||
759 | 762 | ||
760 | #endif | 763 | #endif |
761 | 764 | ||
765 | #ifdef CONFIG_I2O_EXT_ADAPTEC | ||
762 | static int i2o_cfg_passthru(unsigned long arg) | 766 | static int i2o_cfg_passthru(unsigned long arg) |
763 | { | 767 | { |
764 | struct i2o_cmd_passthru __user *cmd = | 768 | struct i2o_cmd_passthru __user *cmd = |
diff --git a/drivers/message/i2o/i2o_proc.c b/drivers/message/i2o/i2o_proc.c index 3d2e76eea93e..a61cb17c5c12 100644 --- a/drivers/message/i2o/i2o_proc.c +++ b/drivers/message/i2o/i2o_proc.c | |||
@@ -163,7 +163,7 @@ static int print_serial_number(struct seq_file *seq, u8 * serialno, int max_len) | |||
163 | * i2o_get_class_name - do i2o class name lookup | 163 | * i2o_get_class_name - do i2o class name lookup |
164 | * @class: class number | 164 | * @class: class number |
165 | * | 165 | * |
166 | * Return a descriptive string for an i2o class | 166 | * Return a descriptive string for an i2o class. |
167 | */ | 167 | */ |
168 | static const char *i2o_get_class_name(int class) | 168 | static const char *i2o_get_class_name(int class) |
169 | { | 169 | { |
diff --git a/drivers/message/i2o/i2o_scsi.c b/drivers/message/i2o/i2o_scsi.c index 6ebf38213f9f..1045c8a518bb 100644 --- a/drivers/message/i2o/i2o_scsi.c +++ b/drivers/message/i2o/i2o_scsi.c | |||
@@ -220,7 +220,7 @@ static int i2o_scsi_probe(struct device *dev) | |||
220 | u32 id = -1; | 220 | u32 id = -1; |
221 | u64 lun = -1; | 221 | u64 lun = -1; |
222 | int channel = -1; | 222 | int channel = -1; |
223 | int i; | 223 | int i, rc; |
224 | 224 | ||
225 | i2o_shost = i2o_scsi_get_host(c); | 225 | i2o_shost = i2o_scsi_get_host(c); |
226 | if (!i2o_shost) | 226 | if (!i2o_shost) |
@@ -304,14 +304,20 @@ static int i2o_scsi_probe(struct device *dev) | |||
304 | return PTR_ERR(scsi_dev); | 304 | return PTR_ERR(scsi_dev); |
305 | } | 305 | } |
306 | 306 | ||
307 | sysfs_create_link(&i2o_dev->device.kobj, &scsi_dev->sdev_gendev.kobj, | 307 | rc = sysfs_create_link(&i2o_dev->device.kobj, |
308 | "scsi"); | 308 | &scsi_dev->sdev_gendev.kobj, "scsi"); |
309 | if (rc) | ||
310 | goto err; | ||
309 | 311 | ||
310 | osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %ld\n", | 312 | osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %ld\n", |
311 | i2o_dev->lct_data.tid, channel, le32_to_cpu(id), | 313 | i2o_dev->lct_data.tid, channel, le32_to_cpu(id), |
312 | (long unsigned int)le64_to_cpu(lun)); | 314 | (long unsigned int)le64_to_cpu(lun)); |
313 | 315 | ||
314 | return 0; | 316 | return 0; |
317 | |||
318 | err: | ||
319 | scsi_remove_device(scsi_dev); | ||
320 | return rc; | ||
315 | }; | 321 | }; |
316 | 322 | ||
317 | static const char *i2o_scsi_info(struct Scsi_Host *SChost) | 323 | static const char *i2o_scsi_info(struct Scsi_Host *SChost) |
@@ -405,8 +411,7 @@ static void i2o_scsi_notify_device_add(struct i2o_device *i2o_dev) | |||
405 | }; | 411 | }; |
406 | 412 | ||
407 | /** | 413 | /** |
408 | * i2o_scsi_notify_device_remove - Retrieve notifications of removed | 414 | * i2o_scsi_notify_device_remove - Retrieve notifications of removed devices |
409 | * devices | ||
410 | * @i2o_dev: the I2O device which was removed | 415 | * @i2o_dev: the I2O device which was removed |
411 | * | 416 | * |
412 | * If a I2O device is removed, we catch the notification to remove the | 417 | * If a I2O device is removed, we catch the notification to remove the |
@@ -426,8 +431,7 @@ static void i2o_scsi_notify_device_remove(struct i2o_device *i2o_dev) | |||
426 | }; | 431 | }; |
427 | 432 | ||
428 | /** | 433 | /** |
429 | * i2o_scsi_notify_controller_add - Retrieve notifications of added | 434 | * i2o_scsi_notify_controller_add - Retrieve notifications of added controllers |
430 | * controllers | ||
431 | * @c: the controller which was added | 435 | * @c: the controller which was added |
432 | * | 436 | * |
433 | * If a I2O controller is added, we catch the notification to add a | 437 | * If a I2O controller is added, we catch the notification to add a |
@@ -457,8 +461,7 @@ static void i2o_scsi_notify_controller_add(struct i2o_controller *c) | |||
457 | }; | 461 | }; |
458 | 462 | ||
459 | /** | 463 | /** |
460 | * i2o_scsi_notify_controller_remove - Retrieve notifications of removed | 464 | * i2o_scsi_notify_controller_remove - Retrieve notifications of removed controllers |
461 | * controllers | ||
462 | * @c: the controller which was removed | 465 | * @c: the controller which was removed |
463 | * | 466 | * |
464 | * If a I2O controller is removed, we catch the notification to remove the | 467 | * If a I2O controller is removed, we catch the notification to remove the |
@@ -745,7 +748,7 @@ static int i2o_scsi_abort(struct scsi_cmnd *SCpnt) | |||
745 | * @capacity: size in sectors | 748 | * @capacity: size in sectors |
746 | * @ip: geometry array | 749 | * @ip: geometry array |
747 | * | 750 | * |
748 | * This is anyones guess quite frankly. We use the same rules everyone | 751 | * This is anyone's guess quite frankly. We use the same rules everyone |
749 | * else appears to and hope. It seems to work. | 752 | * else appears to and hope. It seems to work. |
750 | */ | 753 | */ |
751 | 754 | ||
diff --git a/drivers/message/i2o/pci.c b/drivers/message/i2o/pci.c index 8287f95c8c42..3661e6e065d2 100644 --- a/drivers/message/i2o/pci.c +++ b/drivers/message/i2o/pci.c | |||
@@ -259,6 +259,7 @@ static irqreturn_t i2o_pci_interrupt(int irq, void *dev_id) | |||
259 | 259 | ||
260 | /** | 260 | /** |
261 | * i2o_pci_irq_enable - Allocate interrupt for I2O controller | 261 | * i2o_pci_irq_enable - Allocate interrupt for I2O controller |
262 | * @c: i2o_controller that the request is for | ||
262 | * | 263 | * |
263 | * Allocate an interrupt for the I2O controller, and activate interrupts | 264 | * Allocate an interrupt for the I2O controller, and activate interrupts |
264 | * on the I2O controller. | 265 | * on the I2O controller. |
@@ -305,7 +306,7 @@ static void i2o_pci_irq_disable(struct i2o_controller *c) | |||
305 | 306 | ||
306 | /** | 307 | /** |
307 | * i2o_pci_probe - Probe the PCI device for an I2O controller | 308 | * i2o_pci_probe - Probe the PCI device for an I2O controller |
308 | * @dev: PCI device to test | 309 | * @pdev: PCI device to test |
309 | * @id: id which matched with the PCI device id table | 310 | * @id: id which matched with the PCI device id table |
310 | * | 311 | * |
311 | * Probe the PCI device for any device which is a memory of the | 312 | * Probe the PCI device for any device which is a memory of the |
@@ -447,7 +448,7 @@ static int __devinit i2o_pci_probe(struct pci_dev *pdev, | |||
447 | 448 | ||
448 | /** | 449 | /** |
449 | * i2o_pci_remove - Removes a I2O controller from the system | 450 | * i2o_pci_remove - Removes a I2O controller from the system |
450 | * pdev: I2O controller which should be removed | 451 | * @pdev: I2O controller which should be removed |
451 | * | 452 | * |
452 | * Reset the I2O controller, disable interrupts and remove all allocated | 453 | * Reset the I2O controller, disable interrupts and remove all allocated |
453 | * resources. | 454 | * resources. |