Jeff, Could we get this merged ASAP (it was first posted on 26th February)? This patch fixes data corruption for libata PATA ServerWorks and HPT drivers. [ IDE users are already leaving happy life since they are not affected (modes masking has always worked correctly in the original drivers)... Can we make life happy also for libata PATA users? :) ] On Wednesday 05 March 2008, akpm@xxxxxxxxxxxxxxxxxxxx wrote: > From: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> > > When masking mask out the modes that are unsupported not the ones that are > supported. This makes life happier. > > [akpm@xxxxxxxxxxxxxxxxxxxx: coding-style fixes] > Signed-off-by: Alan Cox <alan@xxxxxxxxxx> > Cc: Jeff Garzik <jeff@xxxxxxxxxx> > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > --- > > drivers/ata/pata_hpt366.c | 6 +++--- > drivers/ata/pata_hpt37x.c | 6 +++--- > drivers/ata/pata_serverworks.c | 2 +- > 3 files changed, 7 insertions(+), 7 deletions(-) > > diff -puN drivers/ata/pata_hpt366.c~pata-i-do-not-think-it-means-what-you-think-it-means drivers/ata/pata_hpt366.c > --- a/drivers/ata/pata_hpt366.c~pata-i-do-not-think-it-means-what-you-think-it-means > +++ a/drivers/ata/pata_hpt366.c > @@ -27,7 +27,7 @@ > #include <linux/libata.h> > > #define DRV_NAME "pata_hpt366" > -#define DRV_VERSION "0.6.1" > +#define DRV_VERSION "0.6.2" > > struct hpt_clock { > u8 xfer_speed; > @@ -180,9 +180,9 @@ static unsigned long hpt366_filter(struc > if (hpt_dma_blacklisted(adev, "UDMA", bad_ata33)) > mask &= ~ATA_MASK_UDMA; > if (hpt_dma_blacklisted(adev, "UDMA3", bad_ata66_3)) > - mask &= ~(0x07 << ATA_SHIFT_UDMA); > + mask &= ~(0xF8 << ATA_SHIFT_UDMA); > if (hpt_dma_blacklisted(adev, "UDMA4", bad_ata66_4)) > - mask &= ~(0x0F << ATA_SHIFT_UDMA); > + mask &= ~(0xF0 << ATA_SHIFT_UDMA); > } > return ata_pci_default_filter(adev, mask); > } > diff -puN drivers/ata/pata_hpt37x.c~pata-i-do-not-think-it-means-what-you-think-it-means drivers/ata/pata_hpt37x.c > --- a/drivers/ata/pata_hpt37x.c~pata-i-do-not-think-it-means-what-you-think-it-means > +++ a/drivers/ata/pata_hpt37x.c > @@ -24,7 +24,7 @@ > #include <linux/libata.h> > > #define DRV_NAME "pata_hpt37x" > -#define DRV_VERSION "0.6.9" > +#define DRV_VERSION "0.6.11" > > struct hpt_clock { > u8 xfer_speed; > @@ -281,7 +281,7 @@ static unsigned long hpt370_filter(struc > if (hpt_dma_blacklisted(adev, "UDMA", bad_ata33)) > mask &= ~ATA_MASK_UDMA; > if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5)) > - mask &= ~(0x1F << ATA_SHIFT_UDMA); > + mask &= ~(0xE0 << ATA_SHIFT_UDMA); > } > return ata_pci_default_filter(adev, mask); > } > @@ -297,7 +297,7 @@ static unsigned long hpt370a_filter(stru > { > if (adev->class == ATA_DEV_ATA) { > if (hpt_dma_blacklisted(adev, "UDMA100", bad_ata100_5)) > - mask &= ~ (0x1F << ATA_SHIFT_UDMA); > + mask &= ~(0xE0 << ATA_SHIFT_UDMA); > } > return ata_pci_default_filter(adev, mask); > } > diff -puN drivers/ata/pata_serverworks.c~pata-i-do-not-think-it-means-what-you-think-it-means drivers/ata/pata_serverworks.c > --- a/drivers/ata/pata_serverworks.c~pata-i-do-not-think-it-means-what-you-think-it-means > +++ a/drivers/ata/pata_serverworks.c > @@ -226,7 +226,7 @@ static unsigned long serverworks_csb_fil > > for (i = 0; (p = csb_bad_ata100[i]) != NULL; i++) { > if (!strcmp(p, model_num)) > - mask &= ~(0x1F << ATA_SHIFT_UDMA); > + mask &= ~(0xE0 << ATA_SHIFT_UDMA); > } > return ata_pci_default_filter(adev, mask); > } -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html