nubus: Fix pointer validation
authorFinn Thain <fthain@telegraphics.com.au>
Sun, 23 Apr 2017 01:24:16 +0000 (21:24 -0400)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Sun, 14 May 2017 20:50:23 +0000 (22:50 +0200)
commit85cc313aeb9e2334d9d861d30024a16268b88747
tree1654383dbca531a3db084e461a96a200a3379538
parent475e6e152a229b6b006d8547476b9f032332870f
nubus: Fix pointer validation

Fix bounds checking on slot-space pointer movement.
Remove redundant test for zero byte-lanes value.
Fix broken byte-lanes vs. address validation.

This patch changes the circumstances under which an error is printed to
the console and fixes the address validation.

The validation code should work correctly now: the broken test for a
valid bytelanes value is replaced with a working test (which eliminates
false negatives) and the 24-bit directory offset bounds check is fixed
(which eliminates false positives).

Please see "Designing Cards and Drivers for the Macintosh Family"
ch. 8, "NuBus Card Firmware" for an explanation of the bytelanes check
and directory offset value.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Reviewed-by: Michael Schmitz <schmitzmic@gmail.com>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
drivers/nubus/nubus.c