Project

General

Profile

Actions

Bug #14366

closed

list_is_vga_only() can't handle empty memlists

Added by Robert Mustacchi almost 2 years ago. Updated almost 2 years ago.

Status:
Closed
Priority:
Normal
Category:
driver - device drivers
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:
External Bug:

Description

The PCI boot logic tries to check if a memlist only has vga related memory; however, it doesn't consider the fact that this memlist can actually be empty and therefore blows up. We opt to treat a memlist which has nothing inside of it as NOT being vga only and require that there be at least one valid memlist for this to happen.

Actions #1

Updated by Electric Monk almost 2 years ago

  • Gerrit CR set to 1916
Actions #2

Updated by Robert Mustacchi almost 2 years ago

I tested this in two ways:

  1. By using a platform that was causing this style of memlist to come up and verifying that we now correctly get through the initalization logic and all the way up through PCIe device enum.
  2. By using existing platforms (e.g. generic x86 systems) and booting them under these boots. To verify that nothing had changed in two ways:
    1. Looking at differences in a prtconf -vP between the two systems. The only thing that had changed were some minors being attached and detached. Critically all the hardware properties such as what memory addresses were assigned to BARs were the same.
    2. Using pcieadm to dump configuration space for all devices before and after this change and comparing its contents. Configuration space had not changed except in one or two cases where a page allocation order was switched around (e.g. one device got an MSI address of 0xfee1d000 instead of 0xfee1b000 and vice-versa.
Actions #3

Updated by Electric Monk almost 2 years ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit 39c0b5e4200a84f97338ca1d3c81e5f81af49f70

commit  39c0b5e4200a84f97338ca1d3c81e5f81af49f70
Author: Robert Mustacchi <rm@fingolfin.org>
Date:   2022-01-15T18:40:54.000Z

    14366 list_is_vga_only() can't handle empty memlists
    Reviewed by: Yuri Pankov <ypankov@tintri.com>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF