mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
pinctrl: renesas: checker: Fix off-by-one bug in drive register check
The GENMASK(h, l) macro creates a contiguous bitmask starting at bit
position @l and ending at position @h, inclusive.
This did not trigger any error checks, as the individual register fields
cover at most 3 of the 4 available bits.
Fixes: 08df16e07a ("pinctrl: sh-pfc: checker: Add drive strength register checks")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/8f82d6147fbe3367d4c83962480e97f58d9c96a2.1633615652.git.geert+renesas@glider.be
This commit is contained in:
@@ -892,7 +892,7 @@ static void __init sh_pfc_check_drive_reg(const struct sh_pfc_soc_info *info,
|
|||||||
if (!field->pin && !field->offset && !field->size)
|
if (!field->pin && !field->offset && !field->size)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
mask = GENMASK(field->offset + field->size, field->offset);
|
mask = GENMASK(field->offset + field->size - 1, field->offset);
|
||||||
if (mask & seen)
|
if (mask & seen)
|
||||||
sh_pfc_err("drive_reg 0x%x: field %u overlap\n",
|
sh_pfc_err("drive_reg 0x%x: field %u overlap\n",
|
||||||
drive->reg, i);
|
drive->reg, i);
|
||||||
|
|||||||
Reference in New Issue
Block a user