|
@@ -1146,10 +1146,17 @@ static int txnic_lmac_probe ( struct txnic_lmac *lmac ) {
|
1146
|
1146
|
* @v lmac Logical MAC
|
1147
|
1147
|
*/
|
1148
|
1148
|
static void txnic_lmac_remove ( struct txnic_lmac *lmac ) {
|
|
1149
|
+ uint64_t config;
|
1149
|
1150
|
|
1150
|
1151
|
/* Sanity check */
|
1151
|
1152
|
assert ( lmac->vnic != NULL );
|
1152
|
1153
|
|
|
1154
|
+ /* Disable packet receive and transmit */
|
|
1155
|
+ config = readq ( lmac->regs + BGX_CMR_CONFIG );
|
|
1156
|
+ config &= ~( BGX_CMR_CONFIG_DATA_PKT_TX_EN |
|
|
1157
|
+ BGX_CMR_CONFIG_DATA_PKT_RX_EN );
|
|
1158
|
+ writeq ( config, ( lmac->regs + BGX_CMR_CONFIG ) );
|
|
1159
|
+
|
1153
|
1160
|
/* Unregister network device */
|
1154
|
1161
|
unregister_netdev ( lmac->vnic->netdev );
|
1155
|
1162
|
|