• Jens Axboe's avatar
    ublk: read any SQE values upfront · 8c68ae3b
    Jens Axboe authored
    Since SQE memory is shared with userspace, we should only be reading it
    once. We cannot read it multiple times, particularly when it's read once
    for validation and then read again for the actual use.
    
    ublk_ch_uring_cmd() is safe when called as a retry operation, as the
    memory backing is stable at that point. But for normal issue, we want
    to ensure that we only read ublksrv_io_cmd once. Wrap the function in
    a helper that reads the value into an on-stack copy of the struct.
    
    Cc: stable@vger.kernel.org # 6.0+
    Reviewed-by: default avatarMing Lei <ming.lei@redhat.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    8c68ae3b
ublk_drv.c 58.3 KB