Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[S390] sclp: handle empty event buffers

Handle a malformed hardware response which some versions of the
Support Element (SE) may present during SE restart and which otherwise
would result in an endless loop in function sclp_dispatch_evbufs.

Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

authored by

Peter Oberparleiter and committed by
Martin Schwidefsky
e2e5a0f2 ba95fd47

+4 -1
+4 -1
drivers/s390/char/sclp.c
··· 280 280 rc = 0; 281 281 for (offset = sizeof(struct sccb_header); offset < sccb->length; 282 282 offset += evbuf->length) { 283 - /* Search for event handler */ 284 283 evbuf = (struct evbuf_header *) ((addr_t) sccb + offset); 284 + /* Check for malformed hardware response */ 285 + if (evbuf->length == 0) 286 + break; 287 + /* Search for event handler */ 285 288 reg = NULL; 286 289 list_for_each(l, &sclp_reg_list) { 287 290 reg = list_entry(l, struct sclp_register, list);