| 1505 | } |
| 1506 | |
| 1507 | void |
| 1508 | rib_unsibscribe_locked(struct rib_subscription *rs) |
| 1509 | { |
| 1510 | struct rib_head *rnh = rs->rnh; |
| 1511 | |
| 1512 | NET_EPOCH_ASSERT(); |
| 1513 | RIB_WLOCK_ASSERT(rnh); |
| 1514 | |
| 1515 | CK_STAILQ_REMOVE(&rnh->rnh_subscribers, rs, rib_subscription, next); |
| 1516 | |
| 1517 | epoch_call(net_epoch_preempt, destroy_subscription_epoch, |
| 1518 | &rs->epoch_ctx); |
| 1519 | } |
| 1520 | |
| 1521 | /* |
| 1522 | * Epoch callback indicating subscription is safe to destroy |
no test coverage detected