lkml.org 
[lkml]   [2020]   [Mar]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 037/168] s390/cio: cio_ignore_proc_seq_next should increase position index
    Date
    From: Vasily Averin <vvs@virtuozzo.com>

    [ Upstream commit 8b101a5e14f2161869636ff9cb4907b7749dc0c2 ]

    if seq_file .next fuction does not change position index,
    read after some lseek can generate unexpected output.

    Link: https://bugzilla.kernel.org/show_bug.cgi?id=206283
    Link: https://lore.kernel.org/r/d44c53a7-9bc1-15c7-6d4a-0c10cb9dffce@virtuozzo.com
    Reviewed-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/s390/cio/blacklist.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/s390/cio/blacklist.c b/drivers/s390/cio/blacklist.c
    index 2a3f874a21d54..9cebff8e8d740 100644
    --- a/drivers/s390/cio/blacklist.c
    +++ b/drivers/s390/cio/blacklist.c
    @@ -303,8 +303,10 @@ static void *
    cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset)
    {
    struct ccwdev_iter *iter;
    + loff_t p = *offset;

    - if (*offset >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
    + (*offset)++;
    + if (p >= (__MAX_SUBCHANNEL + 1) * (__MAX_SSID + 1))
    return NULL;
    iter = it;
    if (iter->devno == __MAX_SUBCHANNEL) {
    @@ -314,7 +316,6 @@ cio_ignore_proc_seq_next(struct seq_file *s, void *it, loff_t *offset)
    return NULL;
    } else
    iter->devno++;
    - (*offset)++;
    return iter;
    }

    --
    2.20.1


    \
     
     \ /
      Last update: 2020-03-10 13:50    [W:4.241 / U:0.428 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site