--- wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn 2015/10/27 07:15:35 1.6 +++ wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn 2018/01/18 23:11:56 1.10 @@ -22,11 +22,11 @@ TX_LOCK(spin mutex) + sc_stopping flag CORE_LOCK(spin mutex)+sc_stopping flag use CORE_LOCK(spin mutex) and TX_LOCK(spin mutex) partially - No + Yes by default. It can be changed by kernel options. See wm.4. TX and RX differently TX_LOCK(mutex) and check sc_stopping in the beginning Yes - RX only + TX and RX @@ -75,14 +75,14 @@ - bcm53xx_eth + bcmeth(4) in attach() lock, hwlock not taken? not taken. Set flag with atomic_or_uint() and call softintr_schedule() not taken? splnet() - Yes + Yes. The interrupt handler calls softint or workqueue depending on the load. sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock callout isn't used