From 3d88d1d7c77b739637caa757ae50b9287f9ef1bb Mon Sep 17 00:00:00 2001 From: Benjamin Herrenschmidt Date: Mon, 14 Nov 2016 13:06:21 +1100 Subject: chiptod: More hardening against -1 chip ID Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Stewart Smith --- hw/chiptod.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'hw') diff --git a/hw/chiptod.c b/hw/chiptod.c index 0a7ea2f..16dd0ae 100644 --- a/hw/chiptod.c +++ b/hw/chiptod.c @@ -454,6 +454,9 @@ static enum chiptod_chip_status _chiptod_get_chip_status(int32_t chip_id) uint64_t tod_status; enum chiptod_chip_status status = -1; + if (chip_id < 0) + return chiptod_backup_disabled; + if (xscom_read(chip_id, TOD_STATUS, &tod_status)) { prerror("XSCOM error reading TOD_STATUS reg\n"); return status; @@ -477,6 +480,9 @@ static void chiptod_update_topology(enum chiptod_topology topo) { int32_t chip_id = chiptod_topology_info[topo].id; + if (chip_id < 0) + return; + chiptod_topology_info[topo].role = chiptod_get_chip_role(topo, chip_id); chiptod_topology_info[topo].status = chiptod_get_chip_status(topo); -- cgit v1.1