ebi...@ln... (Eric W. Biederman) writes:
> Zameer Ahmed <za...@sy...> writes:
>
>
> > Searching for server (DHCP)...
> > _
> >
>
> How very odd I just reproduced this. Then I turned the machine off and back
> on and the problem went away...
And I think I see what is going on.
There is this loop in the transmit function:
while (!(txp->upper.data & E1000_TXD_STAT_DD)) {
udelay (10); /* give the nic a chance to write to the register */
poll_interruptions();
}
And if you never see any dots on the line after
"Searching for server (DHCP)..."
Then the transmit function never returns.
With that being the only loop that must be where it is hanging.
As to what causes it to hang I do not yet know.
Given that we call functions that may modify memory in arbitrary
ways I do not see the compiler over optimizing this, but
on some random compiles I have seen it hang there...
Eric
|