Re: [PATCH 1/3] PCI: treat mem BAR type "11" (reserved) as 32-bit, not 64-bit, BAR

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

 



On Tue, 14 Jun 2011 13:04:29 -0600
Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:

> This fixes a minor regression where broken PCI devices that use the
> reserved "11" memory BAR type worked before e354597cce but not after.
> 
> The low four bits of a memory BAR are "PTT0" where P=1 for prefetchable
> BARs, and TT is as follows:
> 
>   00  32-bit BAR, anywhere in lower 4GB
>   01  anywhere below 1MB (reserved as of PCI 2.2)
>   10  64-bit BAR
>   11  reserved
> 
> Prior to e354597cce, we treated "0100" as a 64-bit BAR and all others,
> including prefetchable 64-bit BARs ("1100") as 32-bit BARs.  The e354597cce
> fix, which appeared in 2.6.28, treats "x1x0" as 64-bit BARs, so the
> reserved "x110" types are treated as 64-bit instead of 32-bit.
> 
> This patch returns to treating the reserved "11" type as a 32-bit BAR and
> adds a warning if we see it.
> 
> It also logs a note if we see a 1M BAR.  This is not a warning, because
> such hardware conforms to pre-PCI 2.2 spec, but I think it's worth noting
> because Linux ignores the 1M restriction if it ever has to assign the BAR.
> 
> CC: Peter Chubb <peterc@xxxxxxxxxxxxxxxxxx>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=35952
> Reported-by: Jan Zwiegers <jan@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> ---

Applied these guys, thanks Bjorn (and sorry for the delay!  I should
have had you handling patches while I was traveling).

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux