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