[Bug 282789] iwlwifi hangs on boot with request_module_nowait("iwlmvm") -- broken after 2ac644317e671b001d3fb8fd924a1ae808a0bf32

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 16 Nov 2024 15:54:11 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282789

Bjoern A. Zeeb <bz@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|wireless@FreeBSD.org        |bz@FreeBSD.org
             Status|Open                        |In Progress
            Summary|iwlwifi broken after        |iwlwifi hangs on boot with
                   |2ac644317e671b001d3fb8fd924 |request_module_nowait("iwlm
                   |a1ae808a0bf32               |vm") -- broken after
                   |                            |2ac644317e671b001d3fb8fd924
                   |                            |a1ae808a0bf32

--- Comment #7 from Bjoern A. Zeeb <bz@FreeBSD.org> ---
Ruslan sent me debug information and I do now understand where the problem
comes from but not yet why it only happens for some chipsets only.

Or possibly not chipsets but something else;  the entire order is triggered
from SYSINITs via module_init;  in the cases of hang iwl_mvm_init() has not run
(or not run to completion).

For cards here it looks like (with XXX-BZ printfs added to show the problem)

------
Autoloading module: if_iwlwifi                                                  
Intel(R) Wireless WiFi based driver for FreeBSD                                 
XXX-BZ iwl_opmode_register:1933: name 'iwlmvm' ops 0xffffffff82ba6d38           
XXX-BZ iwl_opmode_register:1940: name 'iwlmvm' ops 0xffffffff82ba6d38 op
0xffffffff82baf0e0

^^^^ this is missing for the people with "hangs"

pci0: driver added                                                              
found-> vendor=0x8086, dev=0x2725, revid=0x1a                                   
        domain=0, bus=0, slot=5, func=0                                         
        class=02-80-00, hdrtype=0x00, mfdev=0                                   
        cmdreg=0x0407, statreg=0x0010, cachelnsz=0 (dwords)                     
        lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)            
        powerspec 3  supports D0 D3  current D0                                 
        MSI supports 1 message, 64 bit                                          
        MSI-X supports 16 messages in map 0x10                                  
pci0:0:5:0: reprobing on driver added                                           
iwlwifi0: <iwlwifi> mem 0x800010000-0x800013fff at device 5.0 on pci0           
iwlwifi0: attempting to allocate 6 MSI-X vectors (16 supported)                 
msi: routing MSI-X IRQ 60 to local APIC 0 vector 57                             
msi: routing MSI-X IRQ 61 to local APIC 1 vector 51                             
msi: routing MSI-X IRQ 62 to local APIC 2 vector 52                             
msi: routing MSI-X IRQ 63 to local APIC 3 vector 51                             
msi: routing MSI-X IRQ 64 to local APIC 0 vector 58                        
msi: routing MSI-X IRQ 65 to local APIC 1 vector 52                             
iwlwifi0: using IRQs 60-65 for MSI-X                                            
iwlwifi0: Detected crf-id 0x400410, cnv-id 0x400410 wfpm id 0x80000000          
iwlwifi0: PCI dev 2725/0024, rev=0x420, rfid=0x10d000                           
iwlwifi0: Detected Intel(R) Wi-Fi 6 AX210 160MHz                                
...
------

And so for the people where it does not work:

in iwl_req_fw_callback op->ops is not defined and it tries to load the ilwmvm
module ( which we don't have given we never split the driver given we do not
have dwm support ).

I'll go and investigate why we never make it to the second SYSINIT.

-- 
You are receiving this mail because:
You are the assignee for the bug.