|
Lee Duncan |
07c1f6 |
From: Shang XiaoJing <shangxiaojing@huawei.com>
|
|
Lee Duncan |
07c1f6 |
Date: Sun, 13 Nov 2022 14:45:13 +0800
|
|
Lee Duncan |
07c1f6 |
Subject: scsi: ipr: Fix WARNING in ipr_init()
|
|
Lee Duncan |
07c1f6 |
Git-commit: e6f108bffc3708ddcff72324f7d40dfcd0204894
|
|
Lee Duncan |
07c1f6 |
Patch-mainline: v6.1 or v6.1-rc9 (next release)
|
|
Lee Duncan |
07c1f6 |
References: git-fixes
|
|
Lee Duncan |
07c1f6 |
|
|
Lee Duncan |
07c1f6 |
ipr_init() will not call unregister_reboot_notifier() when
|
|
Lee Duncan |
07c1f6 |
pci_register_driver() fails, which causes a WARNING. Call
|
|
Lee Duncan |
07c1f6 |
unregister_reboot_notifier() when pci_register_driver() fails.
|
|
Lee Duncan |
07c1f6 |
|
|
Lee Duncan |
07c1f6 |
notifier callback ipr_halt [ipr] already registered
|
|
Lee Duncan |
07c1f6 |
WARNING: CPU: 3 PID: 299 at kernel/notifier.c:29
|
|
Lee Duncan |
07c1f6 |
notifier_chain_register+0x16d/0x230
|
|
Lee Duncan |
07c1f6 |
Modules linked in: ipr(+) xhci_pci_renesas xhci_hcd ehci_hcd usbcore
|
|
Lee Duncan |
07c1f6 |
led_class gpu_sched drm_buddy video wmi drm_ttm_helper ttm
|
|
Lee Duncan |
07c1f6 |
drm_display_helper drm_kms_helper drm drm_panel_orientation_quirks
|
|
Lee Duncan |
07c1f6 |
agpgart cfbft
|
|
Lee Duncan |
07c1f6 |
CPU: 3 PID: 299 Comm: modprobe Tainted: G W
|
|
Lee Duncan |
07c1f6 |
6.1.0-rc1-00190-g39508d23b672-dirty #332
|
|
Lee Duncan |
07c1f6 |
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
|
|
Lee Duncan |
07c1f6 |
rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org 04/01/2014
|
|
Lee Duncan |
07c1f6 |
RIP: 0010:notifier_chain_register+0x16d/0x230
|
|
Lee Duncan |
07c1f6 |
Call Trace:
|
|
Lee Duncan |
07c1f6 |
<TASK>
|
|
Lee Duncan |
07c1f6 |
__blocking_notifier_chain_register+0x73/0xb0
|
|
Lee Duncan |
07c1f6 |
ipr_init+0x30/0x1000 [ipr]
|
|
Lee Duncan |
07c1f6 |
do_one_initcall+0xdb/0x480
|
|
Lee Duncan |
07c1f6 |
do_init_module+0x1cf/0x680
|
|
Lee Duncan |
07c1f6 |
load_module+0x6a50/0x70a0
|
|
Lee Duncan |
07c1f6 |
__do_sys_finit_module+0x12f/0x1c0
|
|
Lee Duncan |
07c1f6 |
do_syscall_64+0x3f/0x90
|
|
Lee Duncan |
07c1f6 |
entry_SYSCALL_64_after_hwframe+0x63/0xcd
|
|
Lee Duncan |
07c1f6 |
|
|
Lee Duncan |
07c1f6 |
Fixes: f72919ec2bbb ("[SCSI] ipr: implement shutdown changes and remove obsolete write cache parameter")
|
|
Lee Duncan |
07c1f6 |
Signed-off-by: Shang XiaoJing <shangxiaojing@huawei.com>
|
|
Lee Duncan |
07c1f6 |
Link: https://lore.kernel.org/r/20221113064513.14028-1-shangxiaojing@huawei.com
|
|
Lee Duncan |
07c1f6 |
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
|
Lee Duncan |
07c1f6 |
Acked-by: Lee Duncan <lduncan@suse.com>
|
|
Lee Duncan |
07c1f6 |
---
|
|
Lee Duncan |
07c1f6 |
drivers/scsi/ipr.c | 10 +++++++++-
|
|
Lee Duncan |
07c1f6 |
1 file changed, 9 insertions(+), 1 deletion(-)
|
|
Lee Duncan |
07c1f6 |
|
|
Lee Duncan |
07c1f6 |
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
|
|
Lee Duncan |
07c1f6 |
index 9d01a3e3c26a..2022ffb45041 100644
|
|
Lee Duncan |
07c1f6 |
--- a/drivers/scsi/ipr.c
|
|
Lee Duncan |
07c1f6 |
+++ b/drivers/scsi/ipr.c
|
|
Lee Duncan |
07c1f6 |
@@ -10872,11 +10872,19 @@ static struct notifier_block ipr_notifier = {
|
|
Lee Duncan |
07c1f6 |
**/
|
|
Lee Duncan |
07c1f6 |
static int __init ipr_init(void)
|
|
Lee Duncan |
07c1f6 |
{
|
|
Lee Duncan |
07c1f6 |
+ int rc;
|
|
Lee Duncan |
07c1f6 |
+
|
|
Lee Duncan |
07c1f6 |
ipr_info("IBM Power RAID SCSI Device Driver version: %s %s\n",
|
|
Lee Duncan |
07c1f6 |
IPR_DRIVER_VERSION, IPR_DRIVER_DATE);
|
|
Lee Duncan |
07c1f6 |
|
|
Lee Duncan |
07c1f6 |
register_reboot_notifier(&ipr_notifier);
|
|
Lee Duncan |
07c1f6 |
- return pci_register_driver(&ipr_driver);
|
|
Lee Duncan |
07c1f6 |
+ rc = pci_register_driver(&ipr_driver);
|
|
Lee Duncan |
07c1f6 |
+ if (rc) {
|
|
Lee Duncan |
07c1f6 |
+ unregister_reboot_notifier(&ipr_notifier);
|
|
Lee Duncan |
07c1f6 |
+ return rc;
|
|
Lee Duncan |
07c1f6 |
+ }
|
|
Lee Duncan |
07c1f6 |
+
|
|
Lee Duncan |
07c1f6 |
+ return 0;
|
|
Lee Duncan |
07c1f6 |
}
|
|
Lee Duncan |
07c1f6 |
|
|
Lee Duncan |
07c1f6 |
/**
|
|
Lee Duncan |
07c1f6 |
|