From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Alex Levin <levinale@chromium.org>,
Mark Brown <broonie@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH AUTOSEL 5.1 39/51] ASoC: Intel: sst: fix kmalloc call with wrong flags
Date: Tue, 25 Jun 2019 23:40:55 -0400 [thread overview]
Message-ID: <20190626034117.23247-39-sashal@kernel.org> (raw)
In-Reply-To: <20190626034117.23247-1-sashal@kernel.org>
From: Alex Levin <levinale@chromium.org>
[ Upstream commit 3da428ff2aa5a5191ba2f1630eea75f03242f3f2 ]
When calling kmalloc with GFP_KERNEL in case CONFIG_SLOB is unset,
kmem_cache_alloc_trace is called.
In case CONFIG_TRACING is set, kmem_cache_alloc_trace will ball
slab_alloc, which will call slab_pre_alloc_hook which might_sleep_if.
The context in which it is called in this case, the
intel_sst_interrupt_mrfld, calling a sleeping kmalloc generates a BUG():
Fixes: 972b0d456e64 ("ASoC: Intel: remove GFP_ATOMIC, use GFP_KERNEL")
[ 20.250671] BUG: sleeping function called from invalid context at mm/slab.h:422
[ 20.250683] in_atomic(): 1, irqs_disabled(): 1, pid: 1791, name: Chrome_IOThread
[ 20.250690] CPU: 0 PID: 1791 Comm: Chrome_IOThread Tainted: G W 4.19.43 #61
[ 20.250693] Hardware name: GOOGLE Kefka, BIOS Google_Kefka.7287.337.0 03/02/2017
[ 20.250697] Call Trace:
[ 20.250704] <IRQ>
[ 20.250716] dump_stack+0x7e/0xc3
[ 20.250725] ___might_sleep+0x12a/0x140
[ 20.250731] kmem_cache_alloc_trace+0x53/0x1c5
[ 20.250736] ? update_cfs_rq_load_avg+0x17e/0x1aa
[ 20.250740] ? cpu_load_update+0x6c/0xc2
[ 20.250746] sst_create_ipc_msg+0x2d/0x88
[ 20.250752] intel_sst_interrupt_mrfld+0x12a/0x22c
[ 20.250758] __handle_irq_event_percpu+0x133/0x228
[ 20.250764] handle_irq_event_percpu+0x35/0x7a
[ 20.250768] handle_irq_event+0x36/0x55
[ 20.250773] handle_fasteoi_irq+0xab/0x16c
[ 20.250779] handle_irq+0xd9/0x11e
[ 20.250785] do_IRQ+0x54/0xe0
[ 20.250791] common_interrupt+0xf/0xf
[ 20.250795] </IRQ>
[ 20.250800] RIP: 0010:__lru_cache_add+0x4e/0xad
[ 20.250806] Code: 00 01 48 c7 c7 b8 df 01 00 65 48 03 3c 25 28 f1 00 00 48 8b 48 08 48 89 ca 48 ff ca f6 c1 01 48 0f 44 d0 f0 ff 42 34 0f b6 0f <89> ca fe c2 88 17 48 89 44 cf 08 80 fa 0f 74 0e 48 8b 08 66 85 c9
[ 20.250809] RSP: 0000:ffffa568810bfd98 EFLAGS: 00000202 ORIG_RAX: ffffffffffffffd6
[ 20.250814] RAX: ffffd3b904eb1940 RBX: ffffd3b904eb1940 RCX: 0000000000000004
[ 20.250817] RDX: ffffd3b904eb1940 RSI: ffffa10ee5c47450 RDI: ffffa10efba1dfb8
[ 20.250821] RBP: ffffa568810bfda8 R08: ffffa10ef9c741c1 R09: dead000000000100
[ 20.250824] R10: 0000000000000000 R11: 0000000000000000 R12: ffffa10ee8d52a40
[ 20.250827] R13: ffffa10ee8d52000 R14: ffffa10ee5c47450 R15: 800000013ac65067
[ 20.250835] lru_cache_add_active_or_unevictable+0x4e/0xb8
[ 20.250841] handle_mm_fault+0xd98/0x10c4
[ 20.250848] __do_page_fault+0x235/0x42d
[ 20.250853] ? page_fault+0x8/0x30
[ 20.250858] do_page_fault+0x3d/0x17a
[ 20.250862] ? page_fault+0x8/0x30
[ 20.250866] page_fault+0x1e/0x30
[ 20.250872] RIP: 0033:0x7962fdea9304
[ 20.250875] Code: 0f 11 4c 17 f0 c3 48 3b 15 f1 26 31 00 0f 83 e2 00 00 00 48 39 f7 72 0f 74 12 4c 8d 0c 16 4c 39 cf 0f 82 63 01 00 00 48 89 d1 <f3> a4 c3 80 fa 08 73 12 80 fa 04 73 1e 80 fa 01 77 26 72 05 0f b6
[ 20.250879] RSP: 002b:00007962f4db5468 EFLAGS: 00010206
[ 20.250883] RAX: 00003c8cc9d47008 RBX: 0000000000000000 RCX: 0000000000001b48
[ 20.250886] RDX: 0000000000002b40 RSI: 00003c8cc9551000 RDI: 00003c8cc9d48000
[ 20.250890] RBP: 00007962f4db5820 R08: 0000000000000000 R09: 00003c8cc9552b48
[ 20.250893] R10: 0000562dd1064d30 R11: 00003c8cc825b908 R12: 00003c8cc966d3c0
[ 20.250896] R13: 00003c8cc9e280c0 R14: 0000000000000000 R15: 0000000000000000
Signed-off-by: Alex Levin <levinale@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
sound/soc/intel/atom/sst/sst_pvt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/intel/atom/sst/sst_pvt.c b/sound/soc/intel/atom/sst/sst_pvt.c
index 00a37a09dc9b..dba0ca07ebf9 100644
--- a/sound/soc/intel/atom/sst/sst_pvt.c
+++ b/sound/soc/intel/atom/sst/sst_pvt.c
@@ -166,11 +166,11 @@ int sst_create_ipc_msg(struct ipc_post **arg, bool large)
{
struct ipc_post *msg;
- msg = kzalloc(sizeof(*msg), GFP_KERNEL);
+ msg = kzalloc(sizeof(*msg), GFP_ATOMIC);
if (!msg)
return -ENOMEM;
if (large) {
- msg->mailbox_data = kzalloc(SST_MAILBOX_SIZE, GFP_KERNEL);
+ msg->mailbox_data = kzalloc(SST_MAILBOX_SIZE, GFP_ATOMIC);
if (!msg->mailbox_data) {
kfree(msg);
return -ENOMEM;
--
2.20.1
next prev parent reply other threads:[~2019-06-26 3:43 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-26 3:40 [PATCH AUTOSEL 5.1 01/51] HID: i2c-hid: add iBall Aer3 to descriptor override Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 02/51] ASoC : cs4265 : readable register too low Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 03/51] ASoC: ak4458: add return value for ak4458_probe Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 04/51] ASoC: soc-pcm: BE dai needs prepare when pause release after resume Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 05/51] ASoC: ak4458: rstn_control - return a non-zero on error only Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 06/51] spi: bitbang: Fix NULL pointer dereference in spi_unregister_master Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 07/51] ASoC: soc-dpm: fixup DAI active unbalance Sasha Levin
2019-06-26 10:03 ` Mark Brown
2019-06-27 0:20 ` Sasha Levin
2019-07-01 16:18 ` Mark Brown
2019-07-03 14:16 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 08/51] ASoC: core: lock client_mutex while removing link components Sasha Levin
2019-06-26 10:37 ` Mark Brown
2019-06-27 0:24 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 09/51] iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock Sasha Levin
2019-06-26 3:40 ` Sasha Levin
2019-06-26 6:56 ` Joerg Roedel
2019-06-26 6:56 ` Joerg Roedel
2019-06-27 0:27 ` Sasha Levin
2019-06-27 0:27 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 10/51] iommu/vt-d: Set the right field for Page Walk Snoop Sasha Levin
2019-06-26 3:40 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 11/51] ASoC: sun4i-codec: fix first delay on Speaker Sasha Levin
2019-06-26 10:37 ` Mark Brown
2019-07-03 14:20 ` Sasha Levin
2019-07-03 17:07 ` Mark Brown
2019-07-03 18:10 ` Sasha Levin
2019-07-03 20:08 ` Mark Brown
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 12/51] HID: a4tech: fix horizontal scrolling Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 13/51] ASoC: Intel: Baytrail: add quirk for Aegex 10 (RU2) tablet Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 14/51] ASoC: hda: fix unbalanced codec dev refcount for HDA_DEV_ASOC Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 15/51] drm/mediatek: fix unbind functions Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 16/51] drm/mediatek: unbind components in mtk_drm_unbind() Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 17/51] drm/mediatek: call drm_atomic_helper_shutdown() when unbinding driver Sasha Levin
2019-06-26 3:40 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 18/51] drm/mediatek: clear num_pipes when unbind driver Sasha Levin
2019-06-26 3:40 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 19/51] drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable() Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 20/51] ASoC: max98090: remove 24-bit format support if RJ is 0 Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 21/51] ASoC: sun4i-i2s: Fix sun8i tx channel offset mask Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 22/51] ASoC: sun4i-i2s: Add offset to RX channel select Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 23/51] x86/CPU: Add more Icelake model numbers Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 24/51] usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i] Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 25/51] usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 26/51] usb: gadget: dwc2: fix zlp handling Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 27/51] ASoC: Intel: cht_bsw_max98090: fix kernel oops with platform_name override Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 28/51] ASoC: Intel: bytcht_es8316: " Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 29/51] ASoC: Intel: cht_bsw_nau8824: " Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 30/51] ASoC: Intel: cht_bsw_rt5672: " Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 31/51] ASoC: core: move DAI pre-links initiation to snd_soc_instantiate_card Sasha Levin
2019-06-26 10:38 ` Mark Brown
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 32/51] ALSA: hdac: fix memory release for SST and SOF drivers Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 33/51] SoC: rt274: Fix internal jack assignment in set_jack callback Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 34/51] scsi: hpsa: correct ioaccel2 chaining Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 35/51] gpio: pca953x: hack to fix 24 bit gpio expanders Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 36/51] drm: panel-orientation-quirks: Add quirk for GPD pocket2 Sasha Levin
2019-06-26 3:40 ` Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 37/51] drm: panel-orientation-quirks: Add quirk for GPD MicroPC Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 38/51] ASoC: core: Fix deadlock in snd_soc_instantiate_card() Sasha Levin
2019-06-26 10:39 ` Mark Brown
2019-06-27 0:24 ` Sasha Levin
2019-06-26 3:40 ` Sasha Levin [this message]
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 40/51] platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 41/51] platform/x86: intel-vbtn: Report switch events when event wakes device Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 42/51] platform/x86: mlx-platform: Fix parent device in i2c-mux-reg device registration Sasha Levin
2019-06-26 3:40 ` [PATCH AUTOSEL 5.1 43/51] platform/mellanox: mlxreg-hotplug: Add devm_free_irq call to remove flow Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 44/51] i2c: pca-platform: Fix GPIO lookup code Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 45/51] arm64: tlbflush: Ensure start/end of address range are aligned to stride Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 46/51] cpuset: restore sanity to cpuset_cpus_allowed_fallback() Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 47/51] scripts/decode_stacktrace.sh: prefix addr2line with $CROSS_COMPILE Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 48/51] mm/mlock.c: change count_mm_mlocked_page_nr return type Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 49/51] tracing: avoid build warning with HAVE_NOP_MCOUNT Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 50/51] module: Fix livepatch/ftrace module text permissions race Sasha Levin
2019-06-26 3:41 ` [PATCH AUTOSEL 5.1 51/51] ftrace: Fix NULL pointer dereference in free_ftrace_func_mapper() Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190626034117.23247-39-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=broonie@kernel.org \
--cc=levinale@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.