]> git.itanic.dy.fi Git - linux-stable/commit
RAS/CEC: Fix binary search function
authorBorislav Petkov <bp@suse.de>
Sat, 20 Apr 2019 11:27:51 +0000 (13:27 +0200)
committerBorislav Petkov <bp@suse.de>
Fri, 7 Jun 2019 21:18:26 +0000 (23:18 +0200)
commitf3c74b38a55aefe1004200d15a83f109b510068c
treef93b40aeee01dc8be879b50cb1a1000133c63681
parentf2c7c76c5d0a443053e94adb9f0918fa2fb85c3a
RAS/CEC: Fix binary search function

Switch to using Donald Knuth's binary search algorithm (The Art of
Computer Programming, vol. 3, section 6.2.1). This should've been done
from the very beginning but the author must've been smoking something
very potent at the time.

The problem with the current one was that it would return the wrong
element index in certain situations:

  https://lkml.kernel.org/r/CAM_iQpVd02zkVJ846cj-Fg1yUNuz6tY5q1Vpj4LrXmE06dPYYg@mail.gmail.com

and the noodling code after the loop was fishy at best.

So switch to using Knuth's binary search. The final result is much
cleaner and straightforward.

Fixes: 011d82611172 ("RAS: Add a Corrected Errors Collector")
Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: linux-edac <linux-edac@vger.kernel.org>
Cc: <stable@vger.kernel.org>
drivers/ras/cec.c