On 11/21/22 4:40 PM, Eric Farman wrote: > Currently, vfio-ccw copies the ORB from the io_region to the > channel_program struct being built. It then adjusts various > pieces of that ORB to the values needed to be used by the > SSCH issued by vfio-ccw in the host. > > This includes setting the subchannel key to the default, > presumably because Linux doesn't do anything with non-zero > storage keys itself. But it seems wrong to convert every I/O > to the default key if the guest itself requested a non-zero > subchannel (access) key. > > Any channel program that sets a non-zero key would expect the > same key returned in the SCSW of the IRB, not zero, so best to > allow that to occur unimpeded. > > Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxx> Reviewed-by: Matthew Rosato <mjrosato@xxxxxxxxxxxxx> > --- > drivers/s390/cio/vfio_ccw_cp.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/s390/cio/vfio_ccw_cp.c b/drivers/s390/cio/vfio_ccw_cp.c > index a0060ef1119e..268a90252521 100644 > --- a/drivers/s390/cio/vfio_ccw_cp.c > +++ b/drivers/s390/cio/vfio_ccw_cp.c > @@ -836,7 +836,6 @@ union orb *cp_get_orb(struct channel_program *cp, struct subchannel *sch) > > orb->cmd.intparm = (u32)virt_to_phys(sch); > orb->cmd.fmt = 1; > - orb->cmd.key = PAGE_DEFAULT_KEY >> 4; > > if (orb->cmd.lpm == 0) > orb->cmd.lpm = sch->lpm;