Becaues the compiler optimization removes the following code without it.
	regs->eflags = (regs->eflags & 0xffffcfff) | (level << 12);
The compiler provides access to the argument 'unused' in the stack
(asmlinkage, 
i.e. __attribute__ ((regparm(0))), but it thinks modifying the stack 
more than that is not effective anyway. So it elimites the code under
optimizations. 
> 
> 
> > -	IGNLABEL "HmacRxUc",
> > -	IGNLABEL "HmacRxDiscard",
> > -	IGNLABEL "HmacRxAccepted",
> > +	IGNLABEL /* "HmacTxMc", */
> > +	IGNLABEL /* "HmacTxBc", */
> 
> You seem to be removing fields from the struct - have you 
> tested this ?
> 
No, it's not removing fields from there. The original definition of IGNLABLE
is 
	#define IGNLABEL 0&(int)
And
	IGNLABEL "HmacRxUc",
simpile ends up 0, (in gcc). But this is just causing (a lot of) warnings,
so I take this out.
Jun
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/