]> code.ossystems Code Review - openembedded-core.git/commit
linux-yocto/4.12: ide:ide-cd: fix kernel panic resulting from missing scsi_req_init
authorBruce Ashfield <bruce.ashfield@windriver.com>
Fri, 3 Nov 2017 02:45:33 +0000 (22:45 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 3 Nov 2017 16:54:43 +0000 (16:54 +0000)
commit089dc30e11a5bbd10bf6bebea6aa0ac2173bc9a3
tree5fd59662d0f1ea5f6befe9aad0e8263be35d6e26
parent5135d7c88bd1c50b7462d3f219d778e4a33b2995
linux-yocto/4.12: ide:ide-cd: fix kernel panic resulting from missing scsi_req_init

Integrating a backport of upstream commit:

    ide:ide-cd: fix kernel panic resulting from missing scsi_req_init

    commit 79d73346ac05bc31 upstream

    Since we split the scsi_request out of struct request, while the
    standard prep_rq_fn builds 10 byte cmds, it missed to invoke
    scsi_req_init() to initialize certain fields of a scsi_request
    structure (.__cmd[], .cmd, .cmd_len and .sense_len but no other
    members of struct scsi_request).

    An example panic on virtual machines (qemu/virtualbox) to boot
    from IDE cdrom:
    ...
    [    8.754381] Call Trace:
    [    8.755419]  blk_peek_request+0x182/0x2e0
    [    8.755863]  blk_fetch_request+0x1c/0x40
    [    8.756148]  ? ktime_get+0x40/0xa0
    [    8.756385]  do_ide_request+0x37d/0x660
    [    8.756704]  ? cfq_group_service_tree_add+0x98/0xc0
    [    8.757011]  ? cfq_service_tree_add+0x1e5/0x2c0
    [    8.757313]  ? ktime_get+0x40/0xa0
    [    8.757544]  __blk_run_queue+0x3d/0x60
    [    8.757837]  queue_unplugged+0x2f/0xc0
    [    8.758088]  blk_flush_plug_list+0x1f4/0x240
    [    8.758362]  blk_finish_plug+0x2c/0x40
    ...
    [    8.770906] RIP: ide_cdrom_prep_fn+0x63/0x180 RSP: ffff92aec018bae8
    [    8.772329] ---[ end trace 6408481e551a85c9 ]---
    ...

Fixes: 82ed4db499b8 ("block: split scsi_request out of struct request")
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
    [bva: modified for 4.12 context]
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-kernel/linux/linux-yocto-rt_4.12.bb
meta/recipes-kernel/linux/linux-yocto-tiny_4.12.bb
meta/recipes-kernel/linux/linux-yocto_4.12.bb