Re: [PATCH][RFC] PCI: Add "pci=blacklist_dev=" parameter to blacklist specific devices

From: Chen Yu
Date: Mon Jan 27 2020 - 21:09:25 EST


Hi Matthew,
Thanks for repy.
On Sat, Jan 25, 2020 at 5:01 AM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
> On Fri, Jan 24, 2020 at 10:42:48PM +0800, Chen Yu wrote:
> > It was found that on some platforms the bogus pci device might bring
> > troubles to the system. For example, on a MacBookPro the system could
> > not be power off or suspended due to internal pci resource confliction
> > between bogus pci device and [io 0x1804]. Another case is that, once
> > resumed from hibernation on a VM, the pci config space of a pci device
> > is corrupt.
> >
> > To narrow down and benefit future debugging for such kind of issues,
> > introduce the command line blacklist_dev=<vendor:device_id>> to blacklist
> > such pci devices thus they will not be scanned thus not visible after
> > bootup. For example,
> >
> > pci.blacklist_dev=8086:293e
> >
> > forbid the audio device to be exposed to the OS.
>
> This feels really unsafe to me. Just because Linux ignores the device
> doesn't mean the device will ignore I/O requests. I think we should
> call this pci.disable_dev and clear the device's I/O Space Enable,
> Memory Space Enable and Bus Master Enable bits (in the Command register,
> config space offset 4).
Oh right, the BIOS might already has enabled Memory/IO space
in the config during boot up and thus has already claimed the resource range
for this pci device.
I'll summarize the problem I found currently in Bjorn's reply and let's
discuss it there.

Thanks,
chenyu