On Mon, Jan 4, 2021 at 6:48 PM Phil Oester kernel@linuxace.com wrote:
On Sun, Jan 03, 2021 at 05:26:29PM +0100, Arnd Bergmann wrote:
Thank you for the report and bisecting the issue, and sorry this broke your system!
Fortunately, the patch is fairly small, so there are only a limited number of things that could go wrong. I haven't tried to analyze that message, but I have two ideas:
a) The added ioc->sense_off check gets triggered and the code relies on the data being written outside of the structure
b) the address actually needs to always be written as a 64-bit value regardless of the instance->consistent_mask_64bit flag, as the driver did before. This looked like it was done in error.
Can you try the patch below instead of the revert and see if that resolves the regression, and if it triggers the warning message I add?
Thanks Arnd, I tried your patch and it resolves the regression. It does not trigger the warning message you added.
Ok, thanks for testing! That would mean the range check is correct, but the sense pointer must indeed be treated as a 64-bit entity regardless of instance->consistent_mask_64bit, or at least the upper 32 bit must be zero when the flag is unset, rather than the recycled previous value.
I'll send a proper fix shortly, it would be nice if you could give it another spin, but the behavior should be the same as this patch.
Arnd