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

Alex Hung alex.hung at canonical.com
Thu Aug 23 07:31:27 UTC 2012


On 08/14/2012 06:50 PM, 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;
>   		}
>
Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list