diff options
| author | Andrew Gallatin <gallatin@FreeBSD.org> | 2000-07-19 14:33:52 +0000 |
|---|---|---|
| committer | Andrew Gallatin <gallatin@FreeBSD.org> | 2000-07-19 14:33:52 +0000 |
| commit | 0617522889f00c8b2e5affad7af24bd13d301d62 (patch) | |
| tree | cae7c677b54a2e5fc76e6082b31f61225dce8f73 | |
| parent | 72130853fb9af795e1f1236d9dabf5fad92297fc (diff) | |
Notes
| -rw-r--r-- | sys/dev/fxp/if_fxp.c | 12 | ||||
| -rw-r--r-- | sys/pci/if_fxp.c | 12 |
2 files changed, 24 insertions, 0 deletions
diff --git a/sys/dev/fxp/if_fxp.c b/sys/dev/fxp/if_fxp.c index 408ec5de2adf..e86abadb582e 100644 --- a/sys/dev/fxp/if_fxp.c +++ b/sys/dev/fxp/if_fxp.c @@ -1053,7 +1053,19 @@ tbdinit: /* * Advance the end of list forward. */ + +#ifdef __alpha__ + /* + * On platforms which can't access memory in 16-bit + * granularities, we must prevent the card from DMA'ing + * up the status while we update the command field. + * This could cause us to overwrite the completion status. + */ + atomic_clear_short(&sc->cbl_last->cb_command, + FXP_CB_COMMAND_S); +#else sc->cbl_last->cb_command &= ~FXP_CB_COMMAND_S; +#endif /*__alpha__*/ sc->cbl_last = txp; /* diff --git a/sys/pci/if_fxp.c b/sys/pci/if_fxp.c index 408ec5de2adf..e86abadb582e 100644 --- a/sys/pci/if_fxp.c +++ b/sys/pci/if_fxp.c @@ -1053,7 +1053,19 @@ tbdinit: /* * Advance the end of list forward. */ + +#ifdef __alpha__ + /* + * On platforms which can't access memory in 16-bit + * granularities, we must prevent the card from DMA'ing + * up the status while we update the command field. + * This could cause us to overwrite the completion status. + */ + atomic_clear_short(&sc->cbl_last->cb_command, + FXP_CB_COMMAND_S); +#else sc->cbl_last->cb_command &= ~FXP_CB_COMMAND_S; +#endif /*__alpha__*/ sc->cbl_last = txp; /* |
