Re: [PATCH v2 1/3] pci: Rework config space blocking services

From: Jesse Barnes
Date: Mon Dec 05 2011 - 14:03:50 EST


On Fri, 4 Nov 2011 09:45:59 +0100
Jan Kiszka <jan.kiszka@xxxxxxxxxxx> wrote:

> pci_block_user_cfg_access was designed for the use case that a single
> context, the IPR driver, temporarily delays user space accesses to the
> config space via sysfs. This assumption became invalid by the time
> pci_dev_reset was added as locking instance. Today, if you run two loops
> in parallel that reset the same device via sysfs, you end up with a
> kernel BUG as pci_block_user_cfg_access detect the broken assumption.
>
> This reworks the pci_block_user_cfg_access to a sleeping service
> pci_cfg_access_lock and an atomic-compatible variant called
> pci_cfg_access_trylock. The former not only blocks user space access as
> before but also waits if access was already locked. The latter service
> just returns false in this case, allowing the caller to resolve the
> conflict instead of raising a BUG.
>
> Adaptions of the ipr driver were originally written by Brian King.

Applied this series to linux-next, thanks.

--
Jesse Barnes, Intel Open Source Technology Center

Attachment: signature.asc
Description: PGP signature