Re: [PATCH] Fix simplex adapters with libata

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Mark Lord <liml@xxxxxx>:

> Alan Cox wrote:
> >
> >> diff -uprdN linux/drivers/ata/libata-core.c
> linux/drivers/ata/libata-core.c
> >> --- linux/drivers/ata/libata-core.c	2007-03-07 22:13:24.000000000 -0800
> >> +++ linux/drivers/ata/libata-core.c	2007-03-08 00:15:37.000000000 -0800
> >> @@ -3455,7 +3455,8 @@ static void ata_dev_xfermask(struct ata_
> >>  			       "device is on DMA blacklist, disabling DMA\n");
> >>  	}
> >>  
> >> -	if ((host->flags & ATA_HOST_SIMPLEX) && host->simplex_claimed != ap) {
> >> +	if ((host->flags & ATA_HOST_SIMPLEX) &&
> >> +            host->simplex_claimed && host->simplex_claimed != ap) {
> 
> A different version of this fix just went upstream for 2.6.21 via Jeff.
> Which of the two is correct?
> 
> I believe the other one looks like this:
> 
> >> -	if ((host->flags & ATA_HOST_SIMPLEX) && host->simplex_claimed != ap) {
> >> +	if ((host->flags & ATA_HOST_SIMPLEX) && host->simplex_claimed == ap) {

This one does not look correct to me.  It will not disable DMA for anything, as
simplex_claimed will be NULL on first pass, and either NULL or first port on
second pass, so it will never match currently tested port, and so it will leave
DMA enabled for both channels, which is deadly for real simplex controllers.

Petr



-
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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux