• H
    s390x/css: fix ilen in IO instruction handlers · 7e01376d
    Halil Pasic 提交于
    When initiating a program check interruption by calling program_interrupt
    the instruction length (ilen) of the current instruction is supplied as
    the third parameter.
    
    On s390x all the IO instructions are of instruction format S and their
    ilen is 4.  The calls to program_interrupt (introduced by commits
    7b18aad5 ("s390: Add channel I/O instructions.", 2013-01-24) and
    61bf0dcb ("s390x/ioinst: Add missing alignment checks for IO
    instructions", 2013-06-21)) however use ilen == 2.
    
    This is probably due to a confusion between ilen which specifies the
    instruction length in bytes and ILC which does the same but in halfwords.
    If kvm_enabled() this does not actually matter, because the ilen
    parameter of program_interrupt is effectively unused.
    
    Let's provide the correct ilen to program_interrupt.
    Signed-off-by: NHalil Pasic <pasic@linux.vnet.ibm.com>
    Fixes:  7b18aad5 ("s390: Add channel I/O instructions.")
    Fixes: 61bf0dcb ("s390x/ioinst: Add missing alignment checks for IO instructions")
    Reviewed-by: NDavid Hildenbrand <david@redhat.com>
    Message-Id: <20170724143452.55534-1-pasic@linux.vnet.ibm.com>
    Reviewed-by: NDong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
    Signed-off-by: NCornelia Huck <cohuck@redhat.com>
    7e01376d
ioinst.c 21.0 KB