diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2017-11-02 22:45:33 -0400 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-11-05 13:40:33 +0000 |
commit | 3a417fb86867a04b2263764a79af98eec51b4a7a (patch) | |
tree | 3ab434027a1d87868c06d563245b30938a41e37b /meta | |
parent | c7b36ffdc507fb77e511e71b07b9b5166f4ae806 (diff) | |
download | poky-3a417fb86867a04b2263764a79af98eec51b4a7a.tar.gz |
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>
(From OE-Core rev: 089dc30e11a5bbd10bf6bebea6aa0ac2173bc9a3)
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-kernel/linux/linux-yocto-rt_4.12.bb | 2 | ||||
-rw-r--r-- | meta/recipes-kernel/linux/linux-yocto-tiny_4.12.bb | 2 | ||||
-rw-r--r-- | meta/recipes-kernel/linux/linux-yocto_4.12.bb | 16 |
3 files changed, 10 insertions, 10 deletions
diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_4.12.bb b/meta/recipes-kernel/linux/linux-yocto-rt_4.12.bb index 0a60fc53aa..983c1cc758 100644 --- a/meta/recipes-kernel/linux/linux-yocto-rt_4.12.bb +++ b/meta/recipes-kernel/linux/linux-yocto-rt_4.12.bb | |||
@@ -11,7 +11,7 @@ python () { | |||
11 | raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") | 11 | raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") |
12 | } | 12 | } |
13 | 13 | ||
14 | SRCREV_machine ?= "f792c32d8f19a31874ec40c033f36ef250e596ae" | 14 | SRCREV_machine ?= "2143b758ad622a73c7c0b3fc8890b81000187635" |
15 | SRCREV_meta ?= "cebe198870d781829bd997a188cc34d9f7a61023" | 15 | SRCREV_meta ?= "cebe198870d781829bd997a188cc34d9f7a61023" |
16 | 16 | ||
17 | SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;branch=${KBRANCH};name=machine \ | 17 | SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;branch=${KBRANCH};name=machine \ |
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_4.12.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_4.12.bb index c7f1b8dc81..658ecc0d6d 100644 --- a/meta/recipes-kernel/linux/linux-yocto-tiny_4.12.bb +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_4.12.bb | |||
@@ -9,7 +9,7 @@ LINUX_VERSION ?= "4.12.14" | |||
9 | KMETA = "kernel-meta" | 9 | KMETA = "kernel-meta" |
10 | KCONF_BSP_AUDIT_LEVEL = "2" | 10 | KCONF_BSP_AUDIT_LEVEL = "2" |
11 | 11 | ||
12 | SRCREV_machine ?= "26c1863a744836d9171dff262b864cb67f4d537c" | 12 | SRCREV_machine ?= "9cc6b0ae1aad7312e85ac4134398f81c0140de33" |
13 | SRCREV_meta ?= "cebe198870d781829bd997a188cc34d9f7a61023" | 13 | SRCREV_meta ?= "cebe198870d781829bd997a188cc34d9f7a61023" |
14 | 14 | ||
15 | PV = "${LINUX_VERSION}+git${SRCPV}" | 15 | PV = "${LINUX_VERSION}+git${SRCPV}" |
diff --git a/meta/recipes-kernel/linux/linux-yocto_4.12.bb b/meta/recipes-kernel/linux/linux-yocto_4.12.bb index 1bdb0db3c8..a7dd763513 100644 --- a/meta/recipes-kernel/linux/linux-yocto_4.12.bb +++ b/meta/recipes-kernel/linux/linux-yocto_4.12.bb | |||
@@ -11,14 +11,14 @@ KBRANCH_qemux86 ?= "standard/base" | |||
11 | KBRANCH_qemux86-64 ?= "standard/base" | 11 | KBRANCH_qemux86-64 ?= "standard/base" |
12 | KBRANCH_qemumips64 ?= "standard/mti-malta64" | 12 | KBRANCH_qemumips64 ?= "standard/mti-malta64" |
13 | 13 | ||
14 | SRCREV_machine_qemuarm ?= "afd1340d4b7c2180ee0e5dbf79499fedf1a023a6" | 14 | SRCREV_machine_qemuarm ?= "03489013c6844bf3f911e51c5b8cd3bd5c1dc6e9" |
15 | SRCREV_machine_qemuarm64 ?= "26c1863a744836d9171dff262b864cb67f4d537c" | 15 | SRCREV_machine_qemuarm64 ?= "9cc6b0ae1aad7312e85ac4134398f81c0140de33" |
16 | SRCREV_machine_qemumips ?= "6d0052275c433f5a66282ad9f53525a7b6d36dfd" | 16 | SRCREV_machine_qemumips ?= "c22264e2e3340eb8affa9a9fc0b86decb2be26c6" |
17 | SRCREV_machine_qemuppc ?= "26c1863a744836d9171dff262b864cb67f4d537c" | 17 | SRCREV_machine_qemuppc ?= "9cc6b0ae1aad7312e85ac4134398f81c0140de33" |
18 | SRCREV_machine_qemux86 ?= "26c1863a744836d9171dff262b864cb67f4d537c" | 18 | SRCREV_machine_qemux86 ?= "9cc6b0ae1aad7312e85ac4134398f81c0140de33" |
19 | SRCREV_machine_qemux86-64 ?= "26c1863a744836d9171dff262b864cb67f4d537c" | 19 | SRCREV_machine_qemux86-64 ?= "9cc6b0ae1aad7312e85ac4134398f81c0140de33" |
20 | SRCREV_machine_qemumips64 ?= "c8adcd782e648cb70780443ee90e2f56e2209c5a" | 20 | SRCREV_machine_qemumips64 ?= "ead3f1c16e85d1b1074acdd13084b5cdf1104e23" |
21 | SRCREV_machine ?= "26c1863a744836d9171dff262b864cb67f4d537c" | 21 | SRCREV_machine ?= "9cc6b0ae1aad7312e85ac4134398f81c0140de33" |
22 | SRCREV_meta ?= "cebe198870d781829bd997a188cc34d9f7a61023" | 22 | SRCREV_meta ?= "cebe198870d781829bd997a188cc34d9f7a61023" |
23 | 23 | ||
24 | SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \ | 24 | SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \ |