Contents of /trunk/kernel26-alx/patches-2.6.29-r1/0310-2.6.29-fix-scsi-issues.patch
Parent Directory | Revision Log
Revision 877 -
(show annotations)
(download)
Wed Aug 5 14:10:30 2009 UTC (15 years, 1 month ago) by niro
File size: 3346 byte(s)
Wed Aug 5 14:10:30 2009 UTC (15 years, 1 month ago) by niro
File size: 3346 byte(s)
-fixed patch to work with 2.6.29.6
1 | diff -Naur linux-2.6.29/drivers/scsi/scsi_lib.c linux-2.6.29-alx/drivers/scsi/scsi_lib.c |
2 | --- linux-2.6.29/drivers/scsi/scsi_lib.c 2009-03-24 00:12:14.000000000 +0100 |
3 | +++ linux-2.6.29-alx/drivers/scsi/scsi_lib.c 2009-08-05 16:03:06.000000000 +0200 |
4 | @@ -1411,6 +1411,7 @@ |
5 | ret = scsi_setup_blk_pc_cmnd(sdev, req); |
6 | return scsi_prep_return(q, req, ret); |
7 | } |
8 | +EXPORT_SYMBOL(scsi_prep_fn); |
9 | |
10 | /* |
11 | * scsi_dev_queue_ready: if we can send requests to sdev, return 1 else |
12 | diff -Naur linux-2.6.29/drivers/scsi/scsi_priv.h linux-2.6.29-alx/drivers/scsi/scsi_priv.h |
13 | --- linux-2.6.29/drivers/scsi/scsi_priv.h 2009-03-24 00:12:14.000000000 +0100 |
14 | +++ linux-2.6.29-alx/drivers/scsi/scsi_priv.h 2009-08-05 16:03:58.000000000 +0200 |
15 | @@ -74,7 +74,6 @@ |
16 | extern void scsi_exit_queue(void); |
17 | struct request_queue; |
18 | struct request; |
19 | -extern int scsi_prep_fn(struct request_queue *, struct request *); |
20 | extern struct kmem_cache *scsi_sdb_cache; |
21 | |
22 | /* scsi_proc.c */ |
23 | diff -Naur linux-2.6.29/drivers/scsi/scsi_sysfs.c linux-2.6.29-alx/drivers/scsi/scsi_sysfs.c |
24 | --- linux-2.6.29/drivers/scsi/scsi_sysfs.c 2009-03-24 00:12:14.000000000 +0100 |
25 | +++ linux-2.6.29-alx/drivers/scsi/scsi_sysfs.c 2009-08-05 16:04:41.000000000 +0200 |
26 | @@ -420,29 +420,12 @@ |
27 | return err; |
28 | } |
29 | |
30 | -static int scsi_bus_remove(struct device *dev) |
31 | -{ |
32 | - struct device_driver *drv = dev->driver; |
33 | - struct scsi_device *sdev = to_scsi_device(dev); |
34 | - int err = 0; |
35 | - |
36 | - /* reset the prep_fn back to the default since the |
37 | - * driver may have altered it and it's being removed */ |
38 | - blk_queue_prep_rq(sdev->request_queue, scsi_prep_fn); |
39 | - |
40 | - if (drv && drv->remove) |
41 | - err = drv->remove(dev); |
42 | - |
43 | - return 0; |
44 | -} |
45 | - |
46 | struct bus_type scsi_bus_type = { |
47 | .name = "scsi", |
48 | .match = scsi_bus_match, |
49 | .uevent = scsi_bus_uevent, |
50 | .suspend = scsi_bus_suspend, |
51 | .resume = scsi_bus_resume, |
52 | - .remove = scsi_bus_remove, |
53 | }; |
54 | EXPORT_SYMBOL_GPL(scsi_bus_type); |
55 | |
56 | diff -Naur linux-2.6.29/drivers/scsi/sd.c linux-2.6.29-alx/drivers/scsi/sd.c |
57 | --- linux-2.6.29/drivers/scsi/sd.c 2009-03-24 00:12:14.000000000 +0100 |
58 | +++ linux-2.6.29-alx/drivers/scsi/sd.c 2009-08-05 16:05:26.000000000 +0200 |
59 | @@ -1961,6 +1961,8 @@ |
60 | { |
61 | struct scsi_disk *sdkp = dev_get_drvdata(dev); |
62 | |
63 | + blk_queue_prep_rq(sdkp->device->request_queue, scsi_prep_fn); |
64 | + |
65 | device_del(&sdkp->dev); |
66 | del_gendisk(sdkp->disk); |
67 | sd_shutdown(dev); |
68 | diff -Naur linux-2.6.29/drivers/scsi/sr.c linux-2.6.29-alx/drivers/scsi/sr.c |
69 | --- linux-2.6.29/drivers/scsi/sr.c 2009-03-24 00:12:14.000000000 +0100 |
70 | +++ linux-2.6.29-alx/drivers/scsi/sr.c 2009-08-05 16:06:09.000000000 +0200 |
71 | @@ -889,6 +889,7 @@ |
72 | { |
73 | struct scsi_cd *cd = dev_get_drvdata(dev); |
74 | |
75 | + blk_queue_prep_rq(cd->device->request_queue, scsi_prep_fn); |
76 | del_gendisk(cd->disk); |
77 | |
78 | mutex_lock(&sr_ref_mutex); |
79 | diff -Naur linux-2.6.29/include/scsi/scsi_driver.h linux-2.6.29-alx/include/scsi/scsi_driver.h |
80 | --- linux-2.6.29/include/scsi/scsi_driver.h 2009-03-24 00:12:14.000000000 +0100 |
81 | +++ linux-2.6.29-alx/include/scsi/scsi_driver.h 2009-08-05 16:06:52.000000000 +0200 |
82 | @@ -32,5 +32,6 @@ |
83 | int scsi_setup_fs_cmnd(struct scsi_device *sdev, struct request *req); |
84 | int scsi_prep_state_check(struct scsi_device *sdev, struct request *req); |
85 | int scsi_prep_return(struct request_queue *q, struct request *req, int ret); |
86 | +int scsi_prep_fn(struct request_queue *, struct request *); |
87 | |
88 | #endif /* _SCSI_SCSI_DRIVER_H */ |