[PATCH] mtrr: fix mtrr checking without devices that are under bridges

Colin Ian King colin.king at canonical.com
Fri Aug 17 12:37:27 UTC 2012


On 14/08/12 11:50, Ivan Hu wrote:
> The issue seems that only check the bridges, doesn't check the devices under
> the bridges. This causes the test fail. Fix the parser PCI Bus char and
> prfetchable char.
>
> Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
> ---
>   src/bios/mtrr/mtrr.c |    8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/src/bios/mtrr/mtrr.c b/src/bios/mtrr/mtrr.c
> index 4818c64..5bb27b8 100644
> --- a/src/bios/mtrr/mtrr.c
> +++ b/src/bios/mtrr/mtrr.c
> @@ -356,11 +356,11 @@ static int is_prefetchable(fwts_framework *fw, char *device, uint64_t address)
>   	fwts_list_foreach(item, lspci_output) {
>   		char *str = strstr(fwts_text_list_text(item), "Memory at ");
>   		if (str && strtoull(str+10, NULL, 16) == address) {
> -			if (strstr(str, "Non-Prefetchable"))
> +			if (strstr(str, "non-prefetchable"))
>   				pref = 0;
> -			else if (strstr(str, "(Prefetchable"))
> +			else if (strstr(str, "(prefetchable"))
>   				pref = 1;
> -			else if (strstr(str, ", Prefetchable"))
> +			else if (strstr(str, ", prefetchable"))
>   				pref = 1;
>   		}
>   	}
> @@ -419,7 +419,7 @@ static int validate_iomem(fwts_framework *fw)
>   		 * For pci bridges, we note the increased depth and
>   		 * otherwise skip the entry
>    		 */
> -		if (strstr(buffer, ": PCI Bus #")) {
> +		if (strstr(buffer, ": PCI Bus ")) {
>   			pcidepth++;
>   			continue;
>   		}
>
I wonder if this is a regression because of changes in the output of 
lspci?  Does this break on earlier releases?





More information about the fwts-devel mailing list