version 1.6, 2015/10/27 07:15:35
|
version 1.9, 2018/01/18 08:58:02
|
Line 22
|
Line 22
|
<td>TX_LOCK(spin mutex) + sc_stopping flag</td> |
<td>TX_LOCK(spin mutex) + sc_stopping flag</td> |
<td>CORE_LOCK(spin mutex)+sc_stopping flag</td> |
<td>CORE_LOCK(spin mutex)+sc_stopping flag</td> |
<td>use CORE_LOCK(spin mutex) and TX_LOCK(spin mutex) partially</td> |
<td>use CORE_LOCK(spin mutex) and TX_LOCK(spin mutex) partially</td> |
<td>No</td> |
<td>Yes</td> |
<td>TX and RX differently</td> |
<td>TX and RX differently</td> |
<td>TX_LOCK(mutex) and check sc_stopping in the beginning</td> |
<td>TX_LOCK(mutex) and check sc_stopping in the beginning</td> |
<td>Yes</td> |
<td>Yes</td> |
<td>RX only</td> |
<td>TX and RX</td> |
<td></td> |
<td></td> |
</tr> |
</tr> |
<tr> |
<tr> |
Line 75
|
Line 75
|
<td></td> |
<td></td> |
</tr> |
</tr> |
<tr> |
<tr> |
<th>bcm53xx_eth</th> |
<th>bcmeth(4)</th> |
<td>in attach()</td> |
<td>in attach()</td> |
<td>lock, hwlock</td> |
<td>lock, hwlock</td> |
<td>not taken?</td> |
<td>not taken?</td> |
<td>not taken. Set flag with atomic_or_uint() and call softintr_schedule()</td> |
<td>not taken. Set flag with atomic_or_uint() and call softintr_schedule()</td> |
<td>not taken?</td> |
<td>not taken?</td> |
<td>splnet()</td> |
<td>splnet()</td> |
<td>Yes</td> |
<td>Yes. The interrupt handler calls softint or workqueue depending on the load.</td> |
<td>sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock</td> |
<td>sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock</td> |
<td>callout isn't used</td> |
<td>callout isn't used</td> |
<td></td> |
<td></td> |