Bug#605472: patch
Patch is not yet in mainline. We encounter it regulary on our Fujitsu RX300 S6
servers. So we are interested to test and fine tune the patch. I implemented it
into a 3.15.10 kernel and checked the result. Sadly the error changed to a NULL
pointer derefernce.
What can I do?
[ 9.004018] Oops: 0000 [#1] SMP
[ 9.004125] Modules linked in: ses(+) enclosure microcode(+) ipmi_devintf nfsd ipmi_si ipmi_msghandler i7core_edac iTCO_wdt iTCO_vendor_support lpc_ich mfd_core edac_core ptp pps_core dca shpchp auth_rpcgss nfs_acl lockd i2c_i801 sunrpc tpm_tis tpm_infineon tpm acpi_cpufreq acpi_power_meter dm_multipath 8021q garp mrp tun bridge stp llc bonding ib_umad ib_ipoib ib_cm mlx4_ib ib_sa i2c_algo_bit drm_kms_helper ttm drm i2c_core megaraid_sas mlx4_core ib_mad ib_core ib_addr dummy
[ 9.005137] CPU: 0 PID: 445 Comm: systemd-udevd Tainted: G I 3.15.10-201.lts19.fc20.x86_64 #1
[ 9.005325] Hardware name: FUJITSU PRIMERGY RX300 S6 /D2619, BIOS 6.00 Rev. 1.13.2619.N1 01/19/2012
[ 9.005524] task: ffff88197ac09da0 ti: ffff88197bbe0000 task.ti: ffff88197bbe0000
[ 9.005703] RIP: 0010:[<ffffffff81355478>] [<ffffffff81355478>] strcmp+0x18/0x40
[ 9.005890] RSP: 0018:ffff88197bbe3ba0 EFLAGS: 00010202
[ 9.005988] RAX: ffff880d683b61c0 RBX: ffff880d683b4000 RCX: ffff880d6813c028
[ 9.006095] RDX: 0000000000000004 RSI: ffff880d6813c028 RDI: 0000000000000001
[ 9.006201] RBP: ffff88197bbe3ba0 R08: ffff880d683b4000 R09: 0000000000000001
[ 9.006308] R10: 000000000000000d R11: ffff880d6813c2ef R12: 0000000000000000
[ 9.006413] R13: ffff880d683b42d0 R14: ffff880d683b42d8 R15: ffff880d6813c028
[ 9.006518] FS: 00007ffca3544880(0000) GS:ffff880d89c00000(0000) knlGS:0000000000000000
[ 9.006700] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 9.006801] CR2: 0000000000000000 CR3: 000000197b2de000 CR4: 00000000000007f0
[ 9.006905] Stack:
[ 9.006992] ffff88197bbe3be0 ffffffffa0445708 ffff880d683b61c0 ffff880d6813c028
[ 9.007197] ffff880036e86e08 ffff8800bb221d38 000000000000000d 0000000000000000
[ 9.007407] ffff88197bbe3c50 ffffffffa044a91d ffff880d72deaa00 ffff880d6813c000
[ 9.007615] Call Trace:
[ 9.007708] [<ffffffffa0445708>] enclosure_component_register+0x118/0x180 [enclosure]
[ 9.007892] [<ffffffffa044a91d>] ses_enclosure_data_process+0x27d/0x370 [ses]
[ 9.008073] [<ffffffffa044af6d>] ses_intf_add+0x44d/0x4fc [ses]
[ 9.008178] [<ffffffff8145fa99>] class_interface_register+0xa9/0x100
[ 9.008282] [<ffffffffa0005000>] ? 0xffffffffa0004fff
[ 9.008385] [<ffffffff8148c016>] scsi_register_interface+0x16/0x20
[ 9.008491] [<ffffffffa0005013>] ses_init+0x13/0x1000 [ses]
[ 9.008595] [<ffffffffa0005000>] ? 0xffffffffa0004fff
[ 9.008696] [<ffffffff8100216a>] do_one_initcall+0xfa/0x1b0
[ 9.008800] [<ffffffff81059853>] ? set_memory_nx+0x43/0x50
[ 9.008908] [<ffffffff81103fd2>] load_module+0x1d92/0x25e0
[ 9.009009] [<ffffffff810ffcf0>] ? store_uevent+0x70/0x70
[ 9.009114] [<ffffffff811ec560>] ? kernel_read+0x50/0x80
[ 9.009217] [<ffffffff811049d6>] SyS_finit_module+0xa6/0xd0
[ 9.009322] [<ffffffff816ffba9>] system_call_fastpath+0x16/0x1b
[ 9.009422] Code: c9 88 4a ff 75 ed 5d c3 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 eb 0e 66 2e 0f 1f 84 00 00 00 00 00 84 c0 74 1c 48 83 c7 01 <0f> b6 47 ff 48 83 c6 01 3a 46 ff 74 eb 19 c0 83 c8 01 5d c3 0f
[ 9.010126] RIP [<ffffffff81355478>] strcmp+0x18/0x40
[ 9.010231] RSP <ffff88197bbe3ba0>
[ 9.010323] CR2: 0000000000000000
[ 9.010461] ---[ end trace f34cf7c5817f3b6d ]---
+static struct enclosure_component *
+enclosure_component_find_by_name(struct enclosure_device *edev,
+ const char *name)
+{
+ int i;
+ if (!edev || !name || !name[0])
+ return NULL;
+
+ for (i=0; i<edev->components; i++) {
+ struct enclosure_component *ecomp = &edev->component[i];
+ if (ecomp->number != -1 && !strcmp(dev_name(&ecomp->cdev), name)) <- BUG HERE?
+ return ecomp;
+ }
+
+ return NULL;
+}
+
static const struct attribute_group *enclosure_groups[];
/**
@@ -276,9 +293,13 @@ enclosure_component_register(struct enclosure_device *edev,
ecomp->number = number;
cdev = &ecomp->cdev;
cdev->parent = get_device(&edev->edev);
- if (name && name[0])
- dev_set_name(cdev, "%s", name);
- else
+
+ if (name && name[0]) {
+ if (enclosure_component_find_by_name (edev, name))
+ dev_set_name(cdev, "%s_%u", name, number);
+ else
+ dev_set_name(cdev, "%s", name);
+ } else
dev_set_name(cdev, "%u", number);
****************************************************************************
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
Weitergabe dieser Mail ist nicht gestattet.
�ber das Internet versandte E-Mails können unter fremden Namen erstellt oder
manipuliert werden. Deshalb ist diese als E-Mail verschickte Nachricht keine
rechtsverbindliche Willenserklärung.
Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln
Vorstand:
Kadir Akin
Dr. Michael Höhnerbach
Vorsitzender des Aufsichtsrates:
Hans Kristian Langva
Registergericht: Amtsgericht Köln
Registernummer: HRB 52 497
This e-mail may contain confidential and/or privileged information. If you
are not the intended recipient (or have received this e-mail in error)
please notify the sender immediately and destroy this e-mail. Any
unauthorized copying, disclosure or distribution of the material in this
e-mail is strictly forbidden.
e-mails sent over the internet may have been written under a wrong name or
been manipulated. That is why this message sent as an e-mail is not a
legally binding declaration of intention.
Collogia
Unternehmensberatung AG
Ubierring 11
D-50678 Köln
executive board:
Kadir Akin
Dr. Michael Höhnerbach
President of the supervisory board:
Hans Kristian Langva
Registry office: district court Cologne
Register number: HRB 52 497
****************************************************************************
Reply to: