OSDN Git Service

hw/core/or-irq: Fix incorrect assert forbidding num-lines == MAX_OR_LINES
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 30 Jan 2020 16:02:01 +0000 (16:02 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 30 Jan 2020 16:02:01 +0000 (16:02 +0000)
commitea4d7ab5d927baa96b940bcbbdf3b2971cf6b9ab
treed884fe428f4734c18a4e18ebe162b42c8e675601
parent204aa60b37c23a89e690d418f49787d274303ca7
hw/core/or-irq: Fix incorrect assert forbidding num-lines == MAX_OR_LINES

The num-lines property of the TYPE_OR_GATE device sets the number
of input lines it has. An assert() in or_irq_realize() restricts
this to the maximum supported by the implementation. However we
got the condition in the assert wrong: it should be using <=,
because num-lines == MAX_OR_LINES is permitted, and means that
all entries from 0 to MAX_OR_LINES-1 in the s->levels[] array
are used.

We didn't notice this previously because no user has so far
needed that many input lines.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Message-id: 20200120142235.10432-1-peter.maydell@linaro.org
hw/core/or-irq.c