aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/cio.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/cio.c')
-rw-r--r--drivers/s390/cio/cio.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 33bff8fec7d1..326f4cc7f92c 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -174,6 +174,7 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
174 CIO_TRACE_EVENT(4, sch->dev.bus_id); 174 CIO_TRACE_EVENT(4, sch->dev.bus_id);
175 175
176 orb = &to_io_private(sch)->orb; 176 orb = &to_io_private(sch)->orb;
177 memset(orb, 0, sizeof(union orb));
177 /* sch is always under 2G. */ 178 /* sch is always under 2G. */
178 orb->cmd.intparm = (u32)(addr_t)sch; 179 orb->cmd.intparm = (u32)(addr_t)sch;
179 orb->cmd.fmt = 1; 180 orb->cmd.fmt = 1;
@@ -208,8 +209,10 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
208 case 1: /* status pending */ 209 case 1: /* status pending */
209 case 2: /* busy */ 210 case 2: /* busy */
210 return -EBUSY; 211 return -EBUSY;
211 default: /* device/path not operational */ 212 case 3: /* device/path not operational */
212 return cio_start_handle_notoper(sch, lpm); 213 return cio_start_handle_notoper(sch, lpm);
214 default:
215 return ccode;
213 } 216 }
214} 217}
215 218