Stefan Sperling <[email protected]> writes:

> On Wed, Jan 13, 2016 at 01:30:39PM +0200, [email protected] wrote:
>
>> >Synopsis:   kernel panic when booting MP kernel, SP works
>> >Category:   kernel
>> >Environment:
>>      System      : OpenBSD 5.9
>>      Details     : OpenBSD 5.9-beta (GENERIC) #1679: Fri Jan  8 23:44:41 MST 
>> 2016
>>                       
>> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC
>> 
>>      Architecture: OpenBSD.amd64
>>      Machine     : amd64
>> >Description:
>>      Updated to latest snapshot and I get kernel panic when booting the 
>> GENERIC.MP kernel.
>>      SP kernel works.
>>      
>>      kernel: integer divide fault trap, code=0
>>      Stopped at      ar5008_set_delta_slope+0x40:    idivl   %ecx,%eax
>
> It's probably crashing because c->ic_freq is zero here:
>
>       /* Set Delta Slope (exponent and mantissa). */
>       coeff = (100 << 24) / c->ic_freq;
>
> This smells like the iwn(4) RXON SYSASSERT issue fixed this morning.
> Given that the driver starts out using a channel that hasn't been
> initialized, I don't understand how this code ever worked.
>
> Does this diff help?
> If it does, we should check all other drivers for the same problem.
>
> Index: athn.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/ic/athn.c,v
> retrieving revision 1.92
> diff -u -p -r1.92 athn.c
> --- athn.c    5 Jan 2016 18:41:15 -0000       1.92
> +++ athn.c    13 Jan 2016 12:07:32 -0000
> @@ -333,8 +333,8 @@ athn_attach(struct athn_softc *sc)
>       /* Get the list of authorized/supported channels. */
>       athn_get_chanlist(sc);
>  
> -     /* IBSS channel undefined for now. */
> -     ic->ic_ibss_chan = &ic->ic_channels[0];
> +     /* Use channel 1 as initial channel. */
> +     ic->ic_ibss_chan = &ic->ic_channels[1];
>  
>       ifp->if_softc = sc;
>       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;

Built an new MP kernel with above patch and it boots now. Thanks for quick fix.

Timo

Reply via email to