Changeset 172 for freebsd-mos-driver


Ignore:
Timestamp:
Sep 2, 2010, 11:24:08 AM (14 years ago)
Author:
Rick van der Zwet
Message:
  • miibus requires proper locking
  • sc copy/paste errors
Location:
freebsd-mos-driver
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • freebsd-mos-driver/Makefile

    r171 r172  
    2929lsmod:
    3030        kldstat
     31
     32core:
     33        kgdb /usr/obj/usr/src/sys/GENERIC/kernel.debug `ls /var/crash/vmcore.* | tail -1`
  • freebsd-mos-driver/if_mos.c

    r171 r172  
    421421mos_miibus_readreg(struct device *dev, int phy, int reg)
    422422{
    423         struct mos_softc        *sc = (void *)dev;
     423        struct mos_softc *sc = device_get_softc(dev);
    424424        uWord                   val;
    425425        int                     i,res, locked;
     
    455455mos_miibus_writereg(device_t dev, int phy, int reg, int val)
    456456{
    457         struct mos_softc        *sc = (void *)dev;
     457        struct mos_softc *sc = device_get_softc(dev);
    458458        int                     i, locked;
    459459
     
    535535        struct mii_data         *mii = GET_MII(sc);
    536536
     537        MOS_LOCK_ASSERT(sc, MA_OWNED);
     538
    537539        sc->mos_link = 0;
    538540        if (mii->mii_instance) {
    539                 struct mii_softc        *miisc;
     541                struct mii_softc *miisc;
     542
    540543                LIST_FOREACH(miisc, &mii->mii_phys, mii_list)
    541544                        mii_phy_reset(miisc);
    542545        }
    543546        mii_mediachg(mii);
    544 
    545547        return (0);
    546548}
     
    555557        struct mii_data         *mii = GET_MII(sc);
    556558
     559        MOS_LOCK(sc);
    557560        mii_pollstat(mii);
     561        MOS_UNLOCK(sc);
     562
    558563        ifmr->ifm_active = mii->mii_media_active;
    559564        ifmr->ifm_status = mii->mii_media_status;
     
    571576        u_int8_t                hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
    572577
     578        MOS_LOCK_ASSERT(sc, MA_OWNED);
    573579
    574580        rxmode = mos_reg_read_1(sc, MOS_CTL);
     
    909915                return;
    910916
     917        MOS_LOCK_ASSERT(sc, MA_OWNED);
    911918        DPRINTFN(0xff,"%s: %s: enter\n", "mos", __func__);
    912919
     
    9991006        u_int8_t                rxmode;
    10001007
     1008        MOS_LOCK_ASSERT(sc, MA_OWNED);
     1009
    10011010        /*
    10021011         * Cancel pending I/O and free all RX/TX buffers.
     
    10711080        mos_reset(sc);
    10721081
     1082        MOS_LOCK_ASSERT(sc, MA_OWNED);
    10731083        ifp->if_flags &= ~IFF_DRV_RUNNING;
    10741084
Note: See TracChangeset for help on using the changeset viewer.