On 04/25/2018 01:55 PM, Tony Camuso wrote:
On 04/25/2018 11:08 AM, Corey Minyard wrote:
On 04/25/2018 08:38 AM, Tony Camuso wrote:
On 04/25/2018 08:29 AM, Corey Minyard wrote:

So this is the SSIF driver?  That's where dmi_ipmi_probe() is. That error
shouldn't be an issue in that code.

But you mention ipmi_si, and platform_ipmi_probe() is what would do that
for that interface.  device_property_read_u8() appears 3 times in that
function, which is failing?

I've bisected to commit 0944d889a237b6107f9ceeee053fe7221cdd1089, where that
function call only appears twice in dmi_ipmi_probe(), which is statically
defined in both ipmi_si_intf.c and ipmi_ssif.c at that bisect point.

Ah, so it's an older kernel, at least where the error starts.  That code is 
significantly
different now.


The systems exhibiting this pathology do not operate above that commit. One
is x86_64 and one is arm.


The only one that should be fatal is reading ipmi-type, and the only
way that should be fatal in the ipmi_si code is if you have an SSIF
interface.


Consequently the ipmi_si device is not loaded, and there is no /dev/ipmi0

AFAICT, there are no patches to address this problem.

I've been trying to get to the bottom of it for a couple days, but have
not had any success.

Can you send me the output of dmidecode?


I have attached dmidecode output for both the x86_64 and the arm systems.

So I created a system in qemu that has exactly the same dmi table as yours,
x86_64:

Handle 0x3000, DMI type 38, 18 bytes
IPMI Device Information
     Interface Type: KCS (Keyboard Control Style)
     Specification Version: 2.0
     I2C Slave Address: 0x10
     NV Storage Device: Not Present
     Base Address: 0x0000000000000CA2 (I/O)
     Register Spacing: Successive Byte Boundaries

I checked out to the commit you specified above, built, and it worked fine:

root@x86-generic-64:~# insmod ipmi_msghandler.ko
[   33.918892] ipmi message handler version 39.2
root@x86-generic-64:~# insmod ipmi_si.ko
[   36.598587] ipmi_si: probing via SMBIOS
[   36.599685] ipmi_si: SMBIOS: io 0xca2 regsize 1 spacing 1 irq 0
[   36.601597] ipmi_si: Adding SMBIOS-specified kcs state machine
[   36.605769] IPMI System Interface driver.
[   36.608483] ipmi_si: Trying SMBIOS-specified kcs state machine at i/o addres0
[   36.618025] ipmi_si dmi-ipmi-si.1: Found new BMC (man_id: 0x000000, prod_id:)
[   36.620164] ipmi_si dmi-ipmi-si.1: IPMI kcs interface initialized

Are you using unmodified kernel.org?

OK, THAT works on the x86_64, so latest, unmodified kernel.org is good.

This commit introduced the problem on my custom kernel.
0944d88 ipmi: Convert DMI handling over to a platform device

Could it be this commit that fixes it?
95e300c ipmi: Make the DMI probe into a generic platform probe

I'll give that a try and see if it saves me from having to bisect
from 0944d88 up to the present.

Could it be something ancillary to ipmi, like in the drivers/firmware/dmi*

Oh, wait I misunderstood. You weren't using the 4.17 kernel, you were
using a kernel checked out at 0944d88

And I am using a modified kernel, so my problem is very likely to be in
code that's ancillary to ipmi, and not the ipmi.

x86_64 problematic kernel output ...

[   12.927960] mei_me 0000:00:16.0: Device doesn't have valid ME Interface
[   13.025978] ipmi message handler version 39.2
[   13.045442] ACPI Error: No handler for Region [SYSI] (ffff896a74aad1b0) 
[IPMI] (20130517/evregion-162)
[   13.055874] ACPI Error: Region IPMI (ID=7) has no handler 
(20130517/exfldio-305)
[   13.064174] ACPI Error: Method parse/execution failed [\_SB_.PMI0._GHL] 
(Node ffff896a74ab00a0), AE_NOT_EXIST (20130517/psparse-536)
[   13.080282] ipmi device interface
[   13.077542] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMC] 
(Node ffff896a74ab0000), AE_NOT_EXIST (20130517/psparse-536)
[   13.094631] ACPI Exception: AE_NOT_EXIST, Evaluating _PMC 
(20130517/power_meter-753)
[   13.103744] dcdbas dcdbas: Dell Systems Management Base Driver (version 
5.6.0-3.2)
[   13.124828] sd 0:2:0:0: Attached scsi generic sg0 type 0
[   13.181845] IPMI System Interface driver.
[   13.186417] ipmi_si: Unable to find any System Interface(s)
[   13.211387] IPMI System Interface driver.
[   13.215933] ipmi_si: Unable to find any System Interface(s)
[   13.222316] iTCO_vendor_support: vendor-support=0


aarch64 problematic kernel output ...

[   27.687233] ipmi_platform: probing via SPMI
[   27.706908] ipmi_si: SPMI: io 0xca3 regsize 1 spacing 1 irq 0
[   27.733696] ipmi_si: Adding SPMI-specified kcs state machine
[   27.760284] ipmi_si: Trying SPMI-specified kcs state machine at i/o address 
0xca3, slave address 0x0, irq 0
[   27.805812] ipmi_si ipmi_si.0: Interface detection failed
[   27.832340] i40e: Registered client i40iw
[   27.856234] BUG: unable to handle kernel NULL pointer dereference at 
0000000000000068
[   27.893148] IP: [<ffffffff928a14a8>] kernfs_find_ns+0x18/0xf0
[   27.920808] PGD 0
[   27.930270] Oops: 0000 [#1] SMP
[   27.945391] Modules linked in: ghash_clmulni_intel i40iw aesni_intel 
ipmi_si(+) lrw gf128mul glue_helper ipmi_devintf ablk_helper cryptd hpilo 
ipmi_msghandler ib_core pcspkr mei_me hpwdt sg i2c_i801 lpc_ich mei shpchp wmi 
acpi_power_meter ip_tables xfs libcrc32c sd_mod crc_t10dif crct10dif_generic 
mgag200 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sysimgblt 
fb_sys_fops ttm crct10dif_pclmul crct10dif_common drm crc32c_intel ahci libahci 
i40e libata i2c_core ptp pps_core dm_mirror dm_region_hash dm_log dm_mod
[   28.165452] CPU: 131 PID: 2763 Comm: systemd-udevd Not tainted 
3.10.0-869.el7.x86_64 #1
[   28.203230] Hardware name: HP ProLiant XL260a Gen9/ProLiant XL260a Gen9, 
BIOS U24 09/25/2017
[   28.242922] task: ffff89b6557c8000 ti: ffff899ebea7c000 task.ti: 
ffff899ebea7c000
[   28.277448] RIP: 0010:[<ffffffff928a14a8>]  [<ffffffff928a14a8>] 
kernfs_find_ns+0x18/0xf0
[   28.314342] RSP: 0018:ffff899ebea7fba8  EFLAGS: 00010246
[   28.338213] RAX: ffff89b6557c8000 RBX: 0000000000000000 RCX: ffff899ebea7ffd8
[   28.371386] RDX: 0000000000000000 RSI: ffffffff92e7bd28 RDI: 0000000000000000
[   28.404233] RBP: ffff899ebea7fbc8 R08: 000000000001ba40 R09: ffffffff9269b79f
[   28.437538] R10: ffff89b65cedba40 R11: ffffdbab5f557700 R12: ffffffff92e7bd28
[   28.471754] R13: ffffffff92e7bd28 R14: 0000000000000000 R15: 0000000000000001
[   28.504244] FS:  00007fc12a3d98c0(0000) GS:ffff89b65cec0000(0000) 
knlGS:0000000000000000
[   28.540696] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   28.566544] CR2: 0000000000000068 CR3: 000000003f60e000 CR4: 00000000001407e0
[   28.599052] Call Trace:
[   28.610790]  [<ffffffff928a15b1>] kernfs_find_and_get_ns+0x31/0x60
[   28.643521]  [<ffffffff928a4cdd>] sysfs_unmerge_group+0x1d/0x60
[   28.670821]  [<ffffffff92a7bd92>] dpm_sysfs_remove+0x22/0x60
[   28.696009]  [<ffffffff92a6efb5>] device_del+0x45/0x210
[   28.719254]  [<ffffffff92a7603c>] platform_device_del+0x2c/0xd0
[   28.745983]  [<ffffffff92a760f2>] platform_device_unregister+0x12/0x30
[   28.775278]  [<ffffffffc09aa076>] try_smi_init+0x166/0xb10 [ipmi_si]
[   28.804279]  [<ffffffff9294e88b>] ? kobject_uevent+0xb/0x10
[   28.829390]  [<ffffffff92a74a67>] ? driver_register+0x97/0xf0
[   28.855402]  [<ffffffffc09abf00>] ? cleanup_ipmi_si+0x90/0x90 [ipmi_si]
[   28.885223]  [<ffffffffc09ac025>] init_ipmi_si+0x125/0x1d0 [ipmi_si]
[   28.913939]  [<ffffffff9260210a>] do_one_initcall+0xba/0x240
[   28.939516]  [<ffffffff9270f5ac>] load_module+0x272c/0x2bc0
[   28.964786]  [<ffffffff929769c0>] ? ddebug_proc_write+0xf0/0xf0
[   28.991346]  [<ffffffff9270fb05>] SyS_init_module+0xc5/0x110
[   29.016790]  [<ffffffff92d207d5>] system_call_fastpath+0x1c/0x21
[   29.043684] Code: 3a 48 a7 00 01 e9 e2 fe ff ff 66 0f 1f 84 00 00 00 00 00 
0f 1f 44 00 00 55 48 89 e5 41 56 49





What is the exact kernel output when you load the module?  Or are you using a 
module?

-corey



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openipmi-developer mailing list
Openipmi-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openipmi-developer

Reply via email to