cvs commit: src/sys/dev/fxp if_fxp.c
Maxime Henrion
mux at freebsd.org
Tue Apr 8 10:31:02 PDT 2003
Nate Lawson wrote:
> On Tue, 8 Apr 2003, Maxime Henrion wrote:
> > Modified files:
> > sys/dev/fxp if_fxp.c
> > Log:
> > Fix the hangs people have been seeing. For some reason, the
> > atomic operation change caused this, so backout it until I
> > can figure out what's wrong with it.
> >
> > Revision Changes Path
> > 1.163 +7 -11 src/sys/dev/fxp/if_fxp.c
>
> Thank you.
>
> > - atomic_clear_32((u_int32_t *)&last->tx_cb->cb_status,
> > - htobe32(bswap16(FXP_CB_COMMAND_S)));
> > -
> > + atomic_clear_short(&sc->fxp_desc.tx_last->tx_cb->cb_command,
> > + FXP_CB_COMMAND_S);
> > +#else
> > + sc->fxp_desc.tx_last->tx_cb->cb_command &= ~FXP_CB_COMMAND_S;
> > +#endif /*__alpha__*/
>
> Um, are each of those cases semantically equivalent?
Yes they are. The only difference, and that's probably where the
problem lies, is that we are now rewriting (but not changing) cb_status.
The cb_status word is probably mapped to a register in the fxp(4) card
and thus rewriting it might not be safe.
Cheers,
Maxime
More information about the cvs-src
mailing list