Magellan Linux

Annotation of /trunk/kernel26-alx/patches-2.6.23-r1/0100-2.6.23.1-all-fixes.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 658 - (hide annotations) (download)
Mon Jun 23 21:39:39 2008 UTC (15 years, 11 months ago) by niro
File size: 2971 byte(s)
2.6.23-alx-r1: new default as we fix the via epia clocksource=tsc quircks
-linux-2.6.23.17
-fbcondecor-0.9.4
-squashfs-3.3
-unionfs-2.3.3
-ipw3945-1.2.2
-mptbase-vmware fix

1 niro 658 diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
2     index cb7dec9..d9832e2 100644
3     --- a/drivers/ata/sata_mv.c
4     +++ b/drivers/ata/sata_mv.c
5     @@ -69,10 +69,11 @@
6     #include <linux/device.h>
7     #include <scsi/scsi_host.h>
8     #include <scsi/scsi_cmnd.h>
9     +#include <scsi/scsi_device.h>
10     #include <linux/libata.h>
11    
12     #define DRV_NAME "sata_mv"
13     -#define DRV_VERSION "1.0"
14     +#define DRV_VERSION "1.01"
15    
16     enum {
17     /* BAR's are enumerated in terms of pci_resource_start() terms */
18     @@ -420,6 +421,7 @@ static void mv_error_handler(struct ata_port *ap);
19     static void mv_post_int_cmd(struct ata_queued_cmd *qc);
20     static void mv_eh_freeze(struct ata_port *ap);
21     static void mv_eh_thaw(struct ata_port *ap);
22     +static int mv_slave_config(struct scsi_device *sdev);
23     static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
24    
25     static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
26     @@ -457,7 +459,7 @@ static struct scsi_host_template mv5_sht = {
27     .use_clustering = 1,
28     .proc_name = DRV_NAME,
29     .dma_boundary = MV_DMA_BOUNDARY,
30     - .slave_configure = ata_scsi_slave_config,
31     + .slave_configure = mv_slave_config,
32     .slave_destroy = ata_scsi_slave_destroy,
33     .bios_param = ata_std_bios_param,
34     };
35     @@ -475,7 +477,7 @@ static struct scsi_host_template mv6_sht = {
36     .use_clustering = 1,
37     .proc_name = DRV_NAME,
38     .dma_boundary = MV_DMA_BOUNDARY,
39     - .slave_configure = ata_scsi_slave_config,
40     + .slave_configure = mv_slave_config,
41     .slave_destroy = ata_scsi_slave_destroy,
42     .bios_param = ata_std_bios_param,
43     };
44     @@ -763,6 +765,17 @@ static void mv_irq_clear(struct ata_port *ap)
45     {
46     }
47    
48     +static int mv_slave_config(struct scsi_device *sdev)
49     +{
50     + int rc = ata_scsi_slave_config(sdev);
51     + if (rc)
52     + return rc;
53     +
54     + blk_queue_max_phys_segments(sdev->request_queue, MV_MAX_SG_CT / 2);
55     +
56     + return 0; /* scsi layer doesn't check return value, sigh */
57     +}
58     +
59     static void mv_set_edma_ptrs(void __iomem *port_mmio,
60     struct mv_host_priv *hpriv,
61     struct mv_port_priv *pp)
62     @@ -1130,10 +1143,9 @@ static void mv_port_stop(struct ata_port *ap)
63     * LOCKING:
64     * Inherited from caller.
65     */
66     -static unsigned int mv_fill_sg(struct ata_queued_cmd *qc)
67     +static void mv_fill_sg(struct ata_queued_cmd *qc)
68     {
69     struct mv_port_priv *pp = qc->ap->private_data;
70     - unsigned int n_sg = 0;
71     struct scatterlist *sg;
72     struct mv_sg *mv_sg;
73    
74     @@ -1151,7 +1163,7 @@ static unsigned int mv_fill_sg(struct ata_queued_cmd *qc)
75    
76     mv_sg->addr = cpu_to_le32(addr & 0xffffffff);
77     mv_sg->addr_hi = cpu_to_le32((addr >> 16) >> 16);
78     - mv_sg->flags_size = cpu_to_le32(len);
79     + mv_sg->flags_size = cpu_to_le32(len & 0xffff);
80    
81     sg_len -= len;
82     addr += len;
83     @@ -1160,12 +1172,9 @@ static unsigned int mv_fill_sg(struct ata_queued_cmd *qc)
84     mv_sg->flags_size |= cpu_to_le32(EPRD_FLAG_END_OF_TBL);
85    
86     mv_sg++;
87     - n_sg++;
88     }
89    
90     }
91     -
92     - return n_sg;
93     }
94    
95     static inline void mv_crqb_pack_cmd(__le16 *cmdw, u8 data, u8 addr, unsigned last)