s390: disconnected 3270 console.
PATCH 10/10 s390: disconnected 3270 console.
[patch 10/10] s390: disconnected 3270 console.
From: Martin Schwidefsky <[email protected]>
Fix reboot with a disconnected 3270 console.
Signed-off-by Martin Schwidefsky <[email protected]>
diffstat:
drivers/s390/char/raw3270.c | 16 +++++++++++----- 1 files changed, 11 insertions(+), 5 deletions(-)
drivers/s390/char/raw3270.c +11 -5
@@ -632,12 +632,9 @@ __raw3270_size_device(struct raw3270 *rp raw3270_init_request.ccw.cda = (__u32 )__pa (raw3270_init_data); rc =raw3270_start_init (rp, &raw3270_init_view, &raw3270_init_request); -if (rc) { +if (rc)/* Check error cases: -ERESTARTSYS, -EIO and -EOPNOTSUPP */ -if (rc == -EOPNOTSUPP &&MACHINE_IS_VM ) -return __raw3270_size_device_vm (rp);return rc; - }/* Wait for attention interrupt. */ #ifdef CONFIG_TN3270_CONSOLE
@@ -695,7 +692,10 @@ raw3270_size_device(struct raw3270 *rp)down (&raw3270_init_sem); rp->view = &raw3270_init_view; raw3270_init_view.dev = rp; - rc =__raw3270_size_device (rp); +if (MACHINE_IS_VM ) + rc =__raw3270_size_device_vm (rp); +else + rc =__raw3270_size_device (rp); raw3270_init_view.dev =0 ; rp->view =0 ;up (&raw3270_init_sem);
@@ -710,6 +710,12 @@ raw3270_size_device(struct raw3270 *rp) rp->model =4 ;if (rp->rows ==27 && rp->cols ==132 ) rp->model =5 ; + }else { +/* Couldn't detect size. Use default model 2. */ + rp->model =2 ; + rp->rows =24 ; + rp->cols =80 ; +return 0 ; }return rc; }