Re: adsl/pppoe no longer connecting on 5.1

From: Bruce Evans <bde_at_zeta.org.au>
Date: Fri, 13 Jun 2003 08:48:04 +1000 (EST)
On Thu, 12 Jun 2003, Kris Kennaway wrote:

> On Thu, Jun 12, 2003 at 12:44:51AM -0700, Kris Kennaway wrote:
>
> > +	leal    24(%esp), %eax	/* base of newly allocated space */
>
> After I figured out what the 24(...) meant ("add 24 to ...") it's
> clear that this isn't a fix (except in the special case of PPPoE
> support ;-).  gcc's builtin inline alloca() is tuning that offset
> value at compile-time, so alloca.S is just broken (and has been since
> 386BSD, looks like), but it's beyond my pattern-monkey asm skills to
> fix.

Something like that is needed just to realign the stack frame.  Alignment
of the (eventual) stack to at least a 16-byte boundary is now required.
Since the required alignment depends on the compiler vendor version and
flags, and possibly on the calling function's environment, this is
impossible to do in all cases.  It may be possible to keep current
gcc cases working by not disturbing the the stack's alignment mod 16
relative to what it was when the function was called.

I don't think misalignment of the stack could cause the current problems.
Those are more likely to be caused by "copy possible [sic] saved registers"
(see tjr's mail about pushl vs movl to the stack).

Bruce
Received on Thu Jun 12 2003 - 13:48:21 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:11 UTC