Deterministic panic due to non-sleepable lock with if_alc when reconfiguring interfaces

Garrett Cooper yanegomi at gmail.com
Mon Aug 22 21:26:49 UTC 2011


On Mon, Aug 22, 2011 at 1:40 PM, YongHyeon PYUN <pyunyh at gmail.com> wrote:
> On Sun, Aug 21, 2011 at 04:48:56PM -0700, YongHyeon PYUN wrote:
>> On Fri, Aug 19, 2011 at 12:17:12AM -0700, Garrett Cooper wrote:
>> > On Thu, Aug 18, 2011 at 9:31 PM,  <mdf at freebsd.org> wrote:
>> > > On Thu, Aug 18, 2011 at 5:50 PM, Garrett Cooper <yanegomi at gmail.com> wrote:
>> > >> ? ?When loading if_alc as a module on my netbook and running
>> > >> /etc/rc.d/netif restart, I can deterministically panic my netbook with
>> > >> the following message:
>> >
>> >     These repro steps were overly simplified. The complete steps are:
>> >
>> > 1. Attach ethernet cable to alc(4) enabled NIC.
>> > 2. Boot up machine.
>> > 3. Login.
>> > 4. Physically remove ethernet cable from alc(4) enabled NIC.
>> > 5. Run `/etc/rc.d/netif restart' as root.
>> >
>>
>> I can't reproduce this with AR8151 sample board. Could you give me
>> dmesg output to know exact controller revision?
>> One issue I'm aware of is lack of re-establishing link when
>> controller firmware put its PHY to deep sleep mode.  The deep sleep
>> mode seems to be automatically activated by firmware when it
>> detects no energy signal(i.e. cable unplugged) so I had to down and
>> up the interface again to take the PHY out of the sleep mode.
>>
>
> Not re-establishing link issue was fixed in r225088.  I'm not sure
> whether this also fixes kern/148772 though. Because you also seem
> to have the same issue of the PR, it would be good to know whether
> it makes any difference or not.

    The panic no longer occurs with that commit when running
/etc/rc.d/netif restart after inserting and reinserting the ethernet
cable (I've done it several times for good measure); the failing case
was potentially being triggered somehow by the hibernation code path.
Thanks,
-Garrett


More information about the freebsd-current mailing list