Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

msk(4) require to sync status buffer



Hi! all,


I think that the processing of the status buffer of msk(4) is strange.
It doesn't do at interrupt handling at all though it does pre-read-sync
only first.  I think that this cannot read a correct value with like CPU
of writeback cache (not PC/AT).

Prease fix.

Thanks
--
kiyohara

Index: if_msk.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_msk.c,v
retrieving revision 1.15
diff -u -r1.15 if_msk.c
--- if_msk.c    19 Jan 2008 22:10:18 -0000      1.15
+++ if_msk.c    22 Feb 2008 12:52:24 -0000
@@ -1877,6 +1877,8 @@
                    BUS_DMASYNC_POSTREAD|BUS_DMASYNC_POSTWRITE);
                cur_st = &sc->sk_status_ring[sc->sk_status_idx];
        }
+       /* Invalidate the status buffer that has already been cached */
+       MSK_CDSTSYNC(sc, sc->sk_status_idx, BUS_DMASYNC_PREREAD);
 
        if (status & SK_Y2_IMR_BMU) {
                CSR_WRITE_4(sc, SK_STAT_BMU_CSR, SK_STAT_BMU_IRQ_CLEAR);


Home | Main Index | Thread Index | Old Index