* [PATCH] ALSA: ymfpci: Create card with device-managed snd_devm_card_new()
@ 2023-03-29 3:24 Tasos Sahanidis via Alsa-devel
0 siblings, 0 replies; 2+ messages in thread
From: Tasos Sahanidis via Alsa-devel @ 2023-03-29 3:24 UTC (permalink / raw)
To: alsa-devel; +Cc: tiwai, tasos
[-- Attachment #0: Type: message/rfc822, Size: 7645 bytes --]
From: Tasos Sahanidis <tasos@tasossah.com>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.com, tasos@tasossah.com
Subject: [PATCH] ALSA: ymfpci: Create card with device-managed snd_devm_card_new()
Date: Wed, 29 Mar 2023 06:24:22 +0300
Message-ID: <20230329032422.170024-1-tasos@tasossah.com>
snd_card_ymfpci_remove() was removed in commit c6e6bb5eab74 ("ALSA:
ymfpci: Allocate resources with device-managed APIs"), but the call to
snd_card_new() was not replaced with snd_devm_card_new().
Since there was no longer a call to snd_card_free, unloading the module
would eventually result in Oops:
[697561.532887] BUG: unable to handle page fault for address: ffffffffc0924480
[697561.532893] #PF: supervisor read access in kernel mode
[697561.532896] #PF: error_code(0x0000) - not-present page
[697561.532899] PGD ae1e15067 P4D ae1e15067 PUD ae1e17067 PMD 11a8f5067 PTE 0
[697561.532905] Oops: 0000 [#1] PREEMPT SMP NOPTI
[697561.532909] CPU: 21 PID: 5080 Comm: wireplumber Tainted: G W OE 6.2.7 #1
[697561.532914] Hardware name: System manufacturer System Product Name/TUF GAMING X570-PLUS, BIOS 4408 10/28/2022
[697561.532916] RIP: 0010:try_module_get.part.0+0x1a/0xe0
[697561.532924] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 55 48 89 e5 41 55 41 54 49 89 fc bf 01 00 00 00 e8 56 3c f8 ff <41> 83 3c 24 02 0f 84 96 00 00 00 41 8b 84 24 30 03 00 00 85 c0 0f
[697561.532927] RSP: 0018:ffffbe9b858c3bd8 EFLAGS: 00010246
[697561.532930] RAX: ffff9815d14f1900 RBX: ffff9815c14e6000 RCX: 0000000000000000
[697561.532933] RDX: 0000000000000000 RSI: ffffffffc055092c RDI: ffffffffb3778c1a
[697561.532935] RBP: ffffbe9b858c3be8 R08: 0000000000000040 R09: ffff981a1a741380
[697561.532937] R10: ffffbe9b858c3c80 R11: 00000009d56533a6 R12: ffffffffc0924480
[697561.532939] R13: ffff9823439d8500 R14: 0000000000000025 R15: ffff9815cd109f80
[697561.532942] FS: 00007f13084f1f80(0000) GS:ffff9824aef40000(0000) knlGS:0000000000000000
[697561.532945] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[697561.532947] CR2: ffffffffc0924480 CR3: 0000000145344000 CR4: 0000000000350ee0
[697561.532949] Call Trace:
[697561.532951] <TASK>
[697561.532955] try_module_get+0x13/0x30
[697561.532960] snd_ctl_open+0x61/0x1c0 [snd]
[697561.532976] snd_open+0xb4/0x1e0 [snd]
[697561.532989] chrdev_open+0xc7/0x240
[697561.532995] ? fsnotify_perm.part.0+0x6e/0x160
[697561.533000] ? __pfx_chrdev_open+0x10/0x10
[697561.533005] do_dentry_open+0x169/0x440
[697561.533009] vfs_open+0x2d/0x40
[697561.533012] path_openat+0xa9d/0x10d0
[697561.533017] ? debug_smp_processor_id+0x17/0x20
[697561.533022] ? trigger_load_balance+0x65/0x370
[697561.533026] do_filp_open+0xb2/0x160
[697561.533032] ? _raw_spin_unlock+0x19/0x40
[697561.533036] ? alloc_fd+0xa9/0x190
[697561.533040] do_sys_openat2+0x9f/0x160
[697561.533044] __x64_sys_openat+0x55/0x90
[697561.533048] do_syscall_64+0x3b/0x90
[697561.533052] entry_SYSCALL_64_after_hwframe+0x72/0xdc
[697561.533056] RIP: 0033:0x7f1308a40db4
[697561.533059] Code: 24 20 eb 8f 66 90 44 89 54 24 0c e8 46 68 f8 ff 44 8b 54 24 0c 44 89 e2 48 89 ee 41 89 c0 bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 77 32 44 89 c7 89 44 24 0c e8 78 68 f8 ff 8b 44
[697561.533062] RSP: 002b:00007ffcce664450 EFLAGS: 00000293 ORIG_RAX: 0000000000000101
[697561.533066] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f1308a40db4
[697561.533068] RDX: 0000000000080000 RSI: 00007ffcce664690 RDI: 00000000ffffff9c
[697561.533070] RBP: 00007ffcce664690 R08: 0000000000000000 R09: 0000000000000012
[697561.533072] R10: 0000000000000000 R11: 0000000000000293 R12: 0000000000080000
[697561.533074] R13: 00007f13054b069b R14: 0000565209f83200 R15: 0000000000000000
[697561.533078] </TASK>
Fixes: c6e6bb5eab74 ("ALSA: ymfpci: Allocate resources with device-managed APIs")
Signed-off-by: Tasos Sahanidis <tasos@tasossah.com>
---
sound/pci/ymfpci/ymfpci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c
index 1e198e4d5..82d4e0fda 100644
--- a/sound/pci/ymfpci/ymfpci.c
+++ b/sound/pci/ymfpci/ymfpci.c
@@ -170,7 +170,7 @@ static int snd_card_ymfpci_probe(struct pci_dev *pci,
return -ENOENT;
}
- err = snd_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
+ err = snd_devm_card_new(&pci->dev, index[dev], id[dev], THIS_MODULE,
sizeof(*chip), &card);
if (err < 0)
return err;
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] ALSA: ymfpci: Create card with device-managed snd_devm_card_new()
[not found] <20230329032422.170024-1-tasos@tasossah.com>
@ 2023-03-29 6:39 ` Takashi Iwai
0 siblings, 0 replies; 2+ messages in thread
From: Takashi Iwai @ 2023-03-29 6:39 UTC (permalink / raw)
To: Tasos Sahanidis; +Cc: alsa-devel, tiwai
On Wed, 29 Mar 2023 05:24:22 +0200,
Tasos Sahanidis wrote:
>
> snd_card_ymfpci_remove() was removed in commit c6e6bb5eab74 ("ALSA:
> ymfpci: Allocate resources with device-managed APIs"), but the call to
> snd_card_new() was not replaced with snd_devm_card_new().
>
> Since there was no longer a call to snd_card_free, unloading the module
> would eventually result in Oops:
>
> [697561.532887] BUG: unable to handle page fault for address: ffffffffc0924480
> [697561.532893] #PF: supervisor read access in kernel mode
> [697561.532896] #PF: error_code(0x0000) - not-present page
> [697561.532899] PGD ae1e15067 P4D ae1e15067 PUD ae1e17067 PMD 11a8f5067 PTE 0
> [697561.532905] Oops: 0000 [#1] PREEMPT SMP NOPTI
> [697561.532909] CPU: 21 PID: 5080 Comm: wireplumber Tainted: G W OE 6.2.7 #1
> [697561.532914] Hardware name: System manufacturer System Product Name/TUF GAMING X570-PLUS, BIOS 4408 10/28/2022
> [697561.532916] RIP: 0010:try_module_get.part.0+0x1a/0xe0
> [697561.532924] Code: 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 55 48 89 e5 41 55 41 54 49 89 fc bf 01 00 00 00 e8 56 3c f8 ff <41> 83 3c 24 02 0f 84 96 00 00 00 41 8b 84 24 30 03 00 00 85 c0 0f
> [697561.532927] RSP: 0018:ffffbe9b858c3bd8 EFLAGS: 00010246
> [697561.532930] RAX: ffff9815d14f1900 RBX: ffff9815c14e6000 RCX: 0000000000000000
> [697561.532933] RDX: 0000000000000000 RSI: ffffffffc055092c RDI: ffffffffb3778c1a
> [697561.532935] RBP: ffffbe9b858c3be8 R08: 0000000000000040 R09: ffff981a1a741380
> [697561.532937] R10: ffffbe9b858c3c80 R11: 00000009d56533a6 R12: ffffffffc0924480
> [697561.532939] R13: ffff9823439d8500 R14: 0000000000000025 R15: ffff9815cd109f80
> [697561.532942] FS: 00007f13084f1f80(0000) GS:ffff9824aef40000(0000) knlGS:0000000000000000
> [697561.532945] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [697561.532947] CR2: ffffffffc0924480 CR3: 0000000145344000 CR4: 0000000000350ee0
> [697561.532949] Call Trace:
> [697561.532951] <TASK>
> [697561.532955] try_module_get+0x13/0x30
> [697561.532960] snd_ctl_open+0x61/0x1c0 [snd]
> [697561.532976] snd_open+0xb4/0x1e0 [snd]
> [697561.532989] chrdev_open+0xc7/0x240
> [697561.532995] ? fsnotify_perm.part.0+0x6e/0x160
> [697561.533000] ? __pfx_chrdev_open+0x10/0x10
> [697561.533005] do_dentry_open+0x169/0x440
> [697561.533009] vfs_open+0x2d/0x40
> [697561.533012] path_openat+0xa9d/0x10d0
> [697561.533017] ? debug_smp_processor_id+0x17/0x20
> [697561.533022] ? trigger_load_balance+0x65/0x370
> [697561.533026] do_filp_open+0xb2/0x160
> [697561.533032] ? _raw_spin_unlock+0x19/0x40
> [697561.533036] ? alloc_fd+0xa9/0x190
> [697561.533040] do_sys_openat2+0x9f/0x160
> [697561.533044] __x64_sys_openat+0x55/0x90
> [697561.533048] do_syscall_64+0x3b/0x90
> [697561.533052] entry_SYSCALL_64_after_hwframe+0x72/0xdc
> [697561.533056] RIP: 0033:0x7f1308a40db4
> [697561.533059] Code: 24 20 eb 8f 66 90 44 89 54 24 0c e8 46 68 f8 ff 44 8b 54 24 0c 44 89 e2 48 89 ee 41 89 c0 bf 9c ff ff ff b8 01 01 00 00 0f 05 <48> 3d 00 f0 ff ff 77 32 44 89 c7 89 44 24 0c e8 78 68 f8 ff 8b 44
> [697561.533062] RSP: 002b:00007ffcce664450 EFLAGS: 00000293 ORIG_RAX: 0000000000000101
> [697561.533066] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f1308a40db4
> [697561.533068] RDX: 0000000000080000 RSI: 00007ffcce664690 RDI: 00000000ffffff9c
> [697561.533070] RBP: 00007ffcce664690 R08: 0000000000000000 R09: 0000000000000012
> [697561.533072] R10: 0000000000000000 R11: 0000000000000293 R12: 0000000000080000
> [697561.533074] R13: 00007f13054b069b R14: 0000565209f83200 R15: 0000000000000000
> [697561.533078] </TASK>
>
> Fixes: c6e6bb5eab74 ("ALSA: ymfpci: Allocate resources with device-managed APIs")
> Signed-off-by: Tasos Sahanidis <tasos@tasossah.com>
Thanks, this one is applied to for-linus branch now.
Takashi
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-03-29 6:41 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230329032422.170024-1-tasos@tasossah.com>
2023-03-29 6:39 ` [PATCH] ALSA: ymfpci: Create card with device-managed snd_devm_card_new() Takashi Iwai
2023-03-29 3:24 Tasos Sahanidis via Alsa-devel
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.