On Tue, Sep 27, 2016 at 07:27:53AM +0200, Krzysztof Hałasa wrote: > Andrey Utkin <andrey_utkin@xxxxxxxxxxxx> writes: > > >> Does (only) adding the > >> > >> pci_read_config_word(solo_dev->pdev, PCI_STATUS, &val); > >> > >> in solo_reg_write() help? > > > > Yes. > > I have posted a patch with this change few days ago, I thought you have > > noticed it. > > Well, I think you haven't sent me a copy. Anyway, it would be great to > determine where exactly writes need a flush. Adding it everywhere is a > bit suboptimal, one would think. Oh, I'm terribly sorry, I really meant to send you a copy. Actual posting is: lkml.kernel.org/r/20160922000331.4193-1-andrey.utkin@xxxxxxxxxxxxxxxxxxx > Can you share some details about the machine you are experiencing the > problems on? CPU, chipset? I'd try to see if I can recreate the problem. See solo.txt.gz attached. > Alternatively, you could investigate yourself - at first you could put > pci_read_config_word() at the end of subroutines (including return > statements) using solo_reg_write(). And in that solo_p2m_dma_desc(), > before wait_for_completion_timeout(). Then eliminate them using some > sort of binary search to see which ones are required. Sorry, but I've got no time for this long-lasting debug session right now, and except for this issue, users enjoy their mainline kernel driver. So I'd just fix that in mainline kernels as quickly as possible. Now I'm even considering submitting that to longterm 4.4 branch.
Attachment:
solo.txt.gz
Description: Binary data