Re: [RFC v2] lis3lv02d: avoid divide by zero due to unchecked registerread

From: Éric Piel
Date: Wed May 18 2011 - 11:56:24 EST


Op 18-05-11 17:47, Christian Lamparter schreef:
On Tuesday 17 May 2011 23:46:00 Éric Piel wrote:
Op 16-05-11 23:36, Christian Lamparter schreef:
On Monday 16 May 2011 13:16:46 Éric Piel wrote:
:
Do you know how "volatile" this data rate is? If it never changes
[at least it doesn't here?] then why not read it once in init_device
and store it in the device context?
It is not normally changing, normally it is set just at init/unsuspend
(where the bios can also interfere sometimes) and when the user changes
it.
Uh, "bios can also interfere"... this sounds very bad. At least for
my x41t the bios doesn't care about hdaps once the OS is running.

So definitely within the same function it's not going to suddenly
change.
a SMM can happen at any time and if a faulty BIOS [likely, since I got
a new laptop] is what caused the crash, I wouldn't bet on "const within
a function context".
Yes, at least on the HP laptop I have the bios enjoys re-initialising the hardware at some default value whenever suspend/resume happens.


We could avoid calculating/checking it twice in
lis3lv02d_selftest(). Care to do a third version with this little clean up?
I have my doubts, but ok if you say so... Just one thing: need to do some Q&A
on the code above, I haven't tested it extensively yet.
I didn't know about the SMM... well, then let's keep the code as is.

I'll try to test it on my laptop in the coming days. On which hardware have you tested it?

Éric
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/