Commit 5e1a99cf authored by Sven Schnelle's avatar Sven Schnelle Committed by Alexander Gordeev

s390/3270: Fix buffer assignment

Since commit 1b2ac5a6 ("s390/3270: use new address translation
helpers") rq->buffer is passed unconditionally to virt_to_dma32().
The 3270 driver allocates requests without buffer, so the value passed
to virt_to_dma32 might be NULL. Check for NULL before assigning.

Fixes: 1b2ac5a6 ("s390/3270: use new address translation helpers")
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent 412050af
...@@ -162,7 +162,8 @@ struct raw3270_request *raw3270_request_alloc(size_t size) ...@@ -162,7 +162,8 @@ struct raw3270_request *raw3270_request_alloc(size_t size)
/* /*
* Setup ccw. * Setup ccw.
*/ */
rq->ccw.cda = virt_to_dma32(rq->buffer); if (rq->buffer)
rq->ccw.cda = virt_to_dma32(rq->buffer);
rq->ccw.flags = CCW_FLAG_SLI; rq->ccw.flags = CCW_FLAG_SLI;
return rq; return rq;
...@@ -188,7 +189,8 @@ int raw3270_request_reset(struct raw3270_request *rq) ...@@ -188,7 +189,8 @@ int raw3270_request_reset(struct raw3270_request *rq)
return -EBUSY; return -EBUSY;
rq->ccw.cmd_code = 0; rq->ccw.cmd_code = 0;
rq->ccw.count = 0; rq->ccw.count = 0;
rq->ccw.cda = virt_to_dma32(rq->buffer); if (rq->buffer)
rq->ccw.cda = virt_to_dma32(rq->buffer);
rq->ccw.flags = CCW_FLAG_SLI; rq->ccw.flags = CCW_FLAG_SLI;
rq->rescnt = 0; rq->rescnt = 0;
rq->rc = 0; rq->rc = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment