On 5/27/20 9:27 PM, Andy Shevchenko wrote: > On Wed, May 27, 2020 at 09:09:17PM +0900, Tsuchiya Yuto wrote: >> I tried a kernel built with the prerequisite patch to this series + all >> of patches in this series on top of v5.7-rc7 (with Arch Linux config >> + olddefconfig). >> >> Current situations on 5.7-rc7 with Arch Linux config + olddefconfig >> (without applying this series): >> - I can reproduce the touch input crashing (surface3-spi) I mentioned >> in bugzilla [1] only after s2idle. >> - all the other situations are the same as described in that bugzilla; >> I see NULL pointer dereference [2] after touch input crashing then try >> to unload only spi_pxa2xx_platform module. >> >> So, the steps to test that I did with this series applied are: >> 1. go into s2idle then resume from s2idle >> 2. make a touch input then surface3-spi reports that "SPI transfer >> timed out" repeatedly and no longer responds to any touch input >> 3. try to unload only spi_pxa2xx_platform module and see if the NULL >> pointer dereference no longer occurs >> >> and I can confirm that I no longer see the NULL pointer dereference. >> Thanks! > > Thank you very much for testing! > >> On 5/26/20 5:22 PM, Andy Shevchenko wrote: >>> On Tue, May 26, 2020 at 09:39:13AM +0200, Lukas Wunner wrote: >>>> On Mon, May 25, 2020 at 04:21:43PM +0300, Andy Shevchenko wrote: >>>>> Tsuchiya Yuto, I'm going to apply this series as preparatory to my >>>>> WIP patch in topic/spi/reload branch in my kernel tree on GitHub, >>>>> so, it would be possible to see if this + my patch fixes crashes >>>>> on removal. Though, please test this separately from my stuff to >>>>> clarify if it fixes or not issue you have seen. >>>> You also need to cherry-pick commit 84855678add8 ("spi: Fix controller >>>> unregister order") from spi/for-next onto your topic/spi/reload branch >>>> for reloading to work correctly. >>>> >>>> Alternatively, rebase your topic/spi/reload branch and redo the merge >>>> from spi/for-next. (You've merged spi/for-next into your branch on >>>> May 14, but the commit was applied by Mark on May 20.) >>> Ah, right. Will do it soon. >> >> I also built a kernel against your branch topic/spi/reload >> (permalink: https://github.com/andy-shev/linux/tree/55cb78d5a752). The >> result is the same as only applying this series; so, to fix the NULL pointer >> dereference that I mentioned in bugzilla [2], only this series is required. >> >> Also, I want to make sure that what you tried in that branch is fixing >> the NULL pointer dereference on spi_pxa2xx_platform module removal when >> touch input crashed, not fixing the touch input crashing itself? > > Yes, my aim was to fix the SPI module reload issue. While the applied patch > from Lukas does a huge improvement, there are still issues with ordering (you > probably will never see them, though it's still possible based on the code). > > So, as far as I understood, the touch still able to come into position where > it's not anymore responsive. Is it correct? Yes, the touch still able to come into non-working state after every s2idle, but always can be resurrected by reloading spi_pxa2xx_platform. What this series fixed is the following thing: - without this series: reloading spi_pxa2xx_platform resurrects touch input with causing NULL pointer dereference (system still operational after this anyway) - with this series: reloading spi_pxa2xx_platform resurrects touch input *without* causing NULL pointer dereference Let me know if any further info is required. > >> [1] https://bugzilla.kernel.org/show_bug.cgi?id=206403 >> [2] https://bugzilla.kernel.org/show_bug.cgi?id=206403#c1 >