From ff8f5d2da154d447da48b14e99bad4ecf3694f78 Mon Sep 17 00:00:00 2001 From: Vasant Hegde Date: Fri, 20 Mar 2015 17:36:33 +0530 Subject: FSP/LED: Validate before creating LED nodes If FSP messes up SLCA data then attention location code points to some other location code and its possible that we may endup in duplicate LED location code :-( Better to continue with partial LED list than crashing OPAL because of duplicate node in device tree. Signed-off-by: Vasant Hegde [stewart@linux.vnet.ibm.com: prlog(PR_WARNING) on duplicate found] Signed-off-by: Stewart Smith --- hw/fsp/fsp-leds.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hw/fsp/fsp-leds.c b/hw/fsp/fsp-leds.c index dd6cacf2..c9dc70a8 100644 --- a/hw/fsp/fsp-leds.c +++ b/hw/fsp/fsp-leds.c @@ -1319,6 +1319,13 @@ void create_led_device_nodes(void) /* LED child nodes */ list_for_each_safe(&cec_ledq, led, next, link) { + /* Duplicate LED location code */ + if (dt_find_by_path(pled, led->loc_code)) { + prlog(PR_WARNING, PREFIX "duplicate location code %s", + led->loc_code); + continue; + } + cled = dt_new(pled, led->loc_code); if (!cled) { prlog(PR_WARNING, PREFIX -- cgit v1.2.1