Magellan Linux

Contents 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 877 - (show annotations) (download)
Wed Aug 5 14:10:30 2009 UTC (14 years, 9 months 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 */