Re: [PATCH v2 2/9] i2c: i801: make p2sb_spinlock a mutex

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 11, 2021 at 10:27:26PM +0200, Heiner Kallweit wrote:
> On 11.08.2021 17:43, Andy Shevchenko wrote:
> > On Fri, Aug 06, 2021 at 11:13:29PM +0200, Heiner Kallweit wrote:
> >> p2sb_spinlock is used in i801_add_tco_spt() only, and in process context
> >> only. Therefore a mutex is sufficient, and we can make the definition
> >> local to i801_add_tco_spt().
> > 
> > The problem with either AFAICT is that it should actually hold PCI rescan lock.
> > See the discussion with Message-ID
> > 20210308122020.57071-1-andriy.shevchenko@xxxxxxxxxxxxxxx for the details.
> > 
> Thanks for the link. I see that you use pci_lock_rescan_remove() but at a first
> glance didn't see this being discussed. Maybe because it's obvious ..
> 
> i801 was discussed here:
> https://lore.kernel.org/linux-i2c/20210310155145.513a7165@endymion/
> However discussion seems to have ended w/o result. What's the status of your
> p2sb series? Backgroud of the question is: Does it make sense to wait for
> your series to be applied, to make use of your new ps2b library functions?
> Or change the mutex to the rescan mutex for the time being?

The problem with P2SB PCI device is that it's used as a holder for the firmware
programmed value of the BAR which mustn't be relocated. If PCI runs rescan
concurrently with this piece of code (still a probability higher than 0) then
we will be in bad situation.

So, yes, rescan lock is a minimum what has to be done.

In regard to the series the idea is to unhide the P2SB in early PCI quirk and
mark its resources unrelocatable. But I haven't time to research that. It's
postponed currently due to lack of time on my side because higher priority
tasks ongoing.

-- 
With Best Regards,
Andy Shevchenko





[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux