linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Christian Löhle" <CLoehle@hyperstone.com>
To: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Christian Löhle" <CLoehle@hyperstone.com>
Cc: "rafael@kernel.org" <rafael@kernel.org>
Subject: Re: [PATCH] kobject: Safe return of kobject_get_path with NULL
Date: Wed, 23 Jun 2021 14:49:57 +0000	[thread overview]
Message-ID: <CWXP265MB2680FAA36A50E96193037B4DC4089@CWXP265MB2680.GBRP265.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <CWXP265MB2680094534A5559B0A904B76C4089@CWXP265MB2680.GBRP265.PROD.OUTLOOK.COM>

This prevents two Oopses I've encountered.
(Sorry for the older kernel)

[ 4650.202534] general protection fault: 0000 [#1] PREEMPT SMP
[ 4650.202554] Modules linked in: serio_raw atkbd libps2 aesni_intel aes_x86_64 crypto_simd glue_helper ahci libahci i8042 fam15h_power hwmon_vid k10temp scsi_mon ftdi_sio usbserial exfat ext4 crc16 mbcache jbd2 fscrypto sg fuse nls_iso8859_1 nls_cp437 vfat fat nfsv3 nfs_acl nfsv4 dns_resolver nfs lockd grace sunrpc fscache e1000e ptp pps_core i915 intel_gtt usbmon button serio ehci_pci ehci_hcd r8169 mii xhci_pci xhci_hcd libcrc32c crc32c_generic crc32c_intel crc32_pclmul radeon i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm agpgart ata_piix pata_acpi ata_generic libata uas usb_storage sd_mod scsi_mod isofs loop overlay ip_tables x_tables sch_fq_codel tpm_tis tpm_tis_core tpm lpc_ich ie31200_edac mei_me mei shpchp parport_pc battery fan thermal i2c_i801 intel_rapl_perf
[ 4650.202746]  intel_cstate ghash_clmulni_intel cryptd crct10dif_pclmul ppdev parport mousedev input_leds iTCO_wdt iTCO_vendor_support kvm irqbypass evdev mac_hid eeepc_wmi asus_wmi sparse_keymap wmi led_class video coretemp intel_powerclamp x86_pkg_temp_thermal intel_rapl cfg80211 rfkill hid_generic usbhid hid usbcore usb_common
[ 4650.202824] CPU: 0 PID: 20750 Comm: python3 Not tainted 4.13.5-1hyLinux #22
[ 4650.202840] Hardware name: ASUS All Series/Z97-P, BIOS 2905 12/04/2015
[ 4650.202855] task: ffff88020f61cb00 task.stack: ffffc90002814000
[ 4650.202873] RIP: 0010:kobject_get_path+0x30/0xf0
[ 4650.202883] RSP: 0018:ffffc900028179e0 EFLAGS: 00010206
[ 4650.202896] RAX: 0000000000000005 RBX: 000000000000000b RCX: 0000000000000000
[ 4650.202912] RDX: 0000000000001000 RSI: 00000000014000c0 RDI: 0000000000000005
[ 4650.202928] RBP: ffffc90002817a08 R08: ffff880217002c00 R09: ffff88020d66b000
[ 4650.202945] R10: ffffea0008537b00 R11: 0000000000000001 R12: 372e63313a30303a
[ 4650.202961] R13: ffff88020d650080 R14: 00000000014000c0 R15: ffff880216352120
[ 4650.202977] FS:  00007f5119e3a640(0000) GS:ffff88021fa00000(0000) knlGS:0000000000000000
[ 4650.202996] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 4650.203009] CR2: 000055a91ad5d130 CR3: 0000000210c09000 CR4: 00000000001406f0
[ 4650.203026] Call Trace:
[ 4650.203035]  kobject_uevent_env+0xcf/0x4e0
[ 4650.203047]  disk_check_events+0xe3/0x140
[ 4650.203057]  disk_clear_events+0x77/0x110
[ 4650.203070]  check_disk_change+0x27/0x70
[ 4650.203082]  sd_open+0x75/0x190 [sd_mod]
[ 4650.203092]  __blkdev_get+0x348/0x430
[ 4650.203102]  ? __follow_mount_rcu.isra.30+0x68/0xe0
[ 4650.203115]  blkdev_get+0x127/0x340
[ 4650.203125]  blkdev_open+0x79/0x90
[ 4650.203135]  do_dentry_open+0x1bc/0x2e0
[ 4650.203146]  ? bd_acquire+0xd0/0xd0
[ 4650.203156]  vfs_open+0x4e/0x80
[ 4650.203164]  path_openat+0x51e/0x13a0
[ 4650.203174]  ? mntput_no_expire+0x2c/0x1a0
[ 4650.203184]  ? mntput+0x24/0x40
[ 4650.203194]  do_filp_open+0x9b/0x110
[ 4650.203204]  ? __check_object_size+0xb1/0x190
[ 4650.203215]  ? __alloc_fd+0xb2/0x160
[ 4650.203225]  do_sys_open+0x1ba/0x250
[ 4650.203233]  ? do_sys_open+0x1ba/0x250
[ 4650.203243]  SyS_openat+0x14/0x20
[ 4650.203253]  entry_SYSCALL_64_fastpath+0x1a/0xa5
[ 4650.203265] RIP: 0033:0x7f511eb0efe4
[ 4650.203274] RSP: 002b:00007f5119e37830 EFLAGS: 00000293 ORIG_RAX: 0000000000000101
[ 4650.203292] RAX: ffffffffffffffda RBX: 00007f5104006b40 RCX: 00007f511eb0efe4
[ 4650.203308] RDX: 0000000000080000 RSI: 00007f511b9a0650 RDI: 00000000ffffff9c
[ 4650.203324] RBP: 00007f511a70a298 R08: 0000000000000000 R09: 000000000000007c
[ 4650.203340] R10: 0000000000000000 R11: 0000000000000293 R12: 0000556257edd1b0
[ 4650.204199] R13: 00007f511d446ab2 R14: ffffffffffffffff R15: 0000000000000000
[ 4650.205027] Code: 57 41 56 41 89 f6 41 55 49 89 fd 41 54 49 89 fc 53 bb 01 00 00 00 eb 13 e8 9e 8a 00 00 4d 8b 64 24 18 8d 5c 03 01 4d 85 e4 74 1a <49> 8b 3c 24 48 85 ff 75 e4 45 31 e4 5b 4c 89 e0 41 5c 41 5d 41 
[ 4650.206990] RIP: kobject_get_path+0x30/0xf0 RSP: ffffc900028179e0



[273327.641637] general protection fault: 0000 [#1] PREEMPT SMP
[273327.641656] Modules linked in: serio_raw atkbd libps2 aesni_intel aes_x86_64 crypto_simd glue_helper ahci libahci i8042 fam15h_power hwmon_vid k10temp scsi_mon ftdi_sio usbserial exfat ext4 crc16 mbcache jbd2 fscrypto sg fuse nls_iso8859_1 nls_cp437 vfat fat nfsv3 nfs_acl nfsv4 dns_resolver nfs lockd grace sunrpc fscache e1000e ptp pps_core i915 intel_gtt usbmon button serio ehci_pci ehci_hcd r8169 mii xhci_pci xhci_hcd libcrc32c crc32c_generic crc32c_intel crc32_pclmul radeon i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ttm drm agpgart ata_piix pata_acpi ata_generic libata uas usb_storage sd_mod scsi_mod isofs loop overlay ip_tables x_tables sch_fq_codel tpm_tis tpm_tis_core tpm lpc_ich ie31200_edac mei_me mei shpchp parport_pc battery fan thermal i2c_i801 intel_rapl_perf
[273327.641856]  intel_cstate ghash_clmulni_intel cryptd crct10dif_pclmul ppdev parport mousedev input_leds iTCO_wdt iTCO_vendor_support kvm irqbypass evdev mac_hid eeepc_wmi asus_wmi sparse_keymap wmi led_class video coretemp intel_powerclamp x86_pkg_temp_thermal intel_rapl cfg80211 rfkill hid_generic usbhid hid usbcore usb_common
[273327.641931] CPU: 3 PID: 1636823 Comm: python3 Not tainted 4.13.5-1hyLinux #22
[273327.641947] Hardware name: ASUS All Series/Z97-P, BIOS 2905 12/04/2015
[273327.641962] task: ffff88020bc15a00 task.stack: ffffc9000399c000
[273327.641979] RIP: 0010:kobject_get_path+0x30/0xf0
[273327.641990] RSP: 0018:ffffc9000399f9e0 EFLAGS: 00010206
[273327.642002] RAX: 0000000000000005 RBX: 000000000000000b RCX: 0000000000000000
[273327.642019] RDX: 0000000000001000 RSI: 00000000014000c0 RDI: 0000000000000005
[273327.642035] RBP: ffffc9000399fa08 R08: ffff880217002c00 R09: ffff8802115cd000
[273327.642050] R10: ffffea00084b7b00 R11: 0000000000000001 R12: 372e63313a30303a
[273327.642067] R13: ffff88020f8ea080 R14: 00000000014000c0 R15: ffff880216352000
[273327.642083] FS:  00007f6fb4be0640(0000) GS:ffff88021fb80000(0000) knlGS:0000000000000000
[273327.642101] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[273327.642114] CR2: 00007f2762bb3d80 CR3: 0000000214fab000 CR4: 00000000001406e0
[273327.642130] Call Trace:
[273327.642139]  kobject_uevent_env+0xcf/0x4e0
[273327.642151]  disk_check_events+0xe3/0x140
[273327.642161]  disk_clear_events+0x77/0x110
[273327.642174]  check_disk_change+0x27/0x70
[273327.642185]  sd_open+0x75/0x190 [sd_mod]
[273327.642195]  __blkdev_get+0x348/0x430
[273327.642206]  ? __follow_mount_rcu.isra.30+0x68/0xe0
[273327.642218]  blkdev_get+0x127/0x340
[273327.642228]  blkdev_open+0x79/0x90
[273327.642249]  do_dentry_open+0x1bc/0x2e0
[273327.642259]  ? bd_acquire+0xd0/0xd0
[273327.642269]  vfs_open+0x4e/0x80
[273327.642279]  path_openat+0x51e/0x13a0
[273327.642289]  ? mntput_no_expire+0x2c/0x1a0
[273327.642299]  ? mntput+0x24/0x40
[273327.642310]  do_filp_open+0x9b/0x110
[273327.642321]  ? __check_object_size+0xb1/0x190
[273327.642332]  ? __alloc_fd+0xb2/0x160
[273327.642342]  do_sys_open+0x1ba/0x250
[273327.642352]  ? do_sys_open+0x1ba/0x250
[273327.642371]  SyS_openat+0x14/0x20
[273327.642392]  entry_SYSCALL_64_fastpath+0x1a/0xa5
[273327.642403] RIP: 0033:0x7f6fb9a30fe4
[273327.642412] RSP: 002b:00007f6fb4bdd830 EFLAGS: 00000293 ORIG_RAX: 0000000000000101
[273327.642430] RAX: ffffffffffffffda RBX: 00007f6fa400a840 RCX: 00007f6fb9a30fe4
[273327.642447] RDX: 0000000000080000 RSI: 00007f6fb6f5da10 RDI: 00000000ffffff9c
[273327.642463] RBP: 00007f6fb846c928 R08: 0000000000000000 R09: 000000000000007c
[273327.642480] R10: 0000000000000000 R11: 0000000000000293 R12: 0000562253e6be10
[273327.643330] R13: 00007f6fb8efbb62 R14: ffffffffffffffff R15: 0000000000000000
[273327.644179] Code: 57 41 56 41 89 f6 41 55 49 89 fd 41 54 49 89 fc 53 bb 01 00 00 00 eb 13 e8 9e 8a 00 00 4d 8b 64 24 18 8d 5c 03 01 4d 85 e4 74 1a <49> 8b 3c 24 48 85 ff 75 e4 45 31 e4 5b 4c 89 e0 41 5c 41 5d 41 
[273327.645958] RIP: kobject_get_path+0x30/0xf0 RSP: ffffc9000399f9e0
Hyperstone GmbH | Line-Eid-Strasse 3 | 78467 Konstanz
Managing Directors: Dr. Jan Peter Berns.
Commercial register of local courts: Freiburg HRB381782


  reply	other threads:[~2021-06-23 14:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-23 14:47 [PATCH] kobject: Safe return of kobject_get_path with NULL Christian Löhle
2021-06-23 14:49 ` Christian Löhle [this message]
2021-06-23 15:12   ` gregkh
2021-06-23 15:11 ` gregkh
2021-06-24  6:42   ` Christian Löhle
2021-06-24  9:02     ` gregkh

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=CWXP265MB2680FAA36A50E96193037B4DC4089@CWXP265MB2680.GBRP265.PROD.OUTLOOK.COM \
    --to=cloehle@hyperstone.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).