Magellan Linux

Annotation of /trunk/kernel26-alx/patches-2.6.29-r1/0310-2.6.29-fix-scsi-issues.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 878 - (hide annotations) (download)
Wed Aug 5 14:11:29 2009 UTC (14 years, 9 months 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 */