Revert "ip_mroute: do not call epoch_waitwhen lock is taken"

This reverts commit 2e72208b6c.
This commit is contained in:
Wojciech Macek 2022-01-20 13:12:23 +01:00
parent a0f3abb098
commit 58630bdd13
2 changed files with 4 additions and 6 deletions

View file

@ -365,12 +365,11 @@ extern int (*ip_mrouter_set)(struct socket *, struct sockopt *);
extern int (*ip_mrouter_get)(struct socket *, struct sockopt *);
extern int (*ip_mrouter_done)(void);
extern int (*mrt_ioctl)(u_long, caddr_t, int);
extern int ip_mrouter_critical_section_cnt;
#define MROUTER_RLOCK_TRACKER
#define MROUTER_RLOCK() atomic_add_int(&ip_mrouter_critical_section_cnt, 1)
#define MROUTER_RUNLOCK() atomic_subtract_int(&ip_mrouter_critical_section_cnt, 1)
#define MROUTER_WAIT() do {} while (atomic_load_int(&ip_mrouter_critical_section_cnt) != 0)
#define MROUTER_RLOCK_TRACKER struct epoch_tracker mrouter_et
#define MROUTER_RLOCK() epoch_enter_preempt(net_epoch_preempt, &mrouter_et)
#define MROUTER_RUNLOCK() epoch_exit_preempt(net_epoch_preempt, &mrouter_et)
#define MROUTER_WAIT() epoch_wait_preempt(net_epoch_preempt)
#endif /* _KERNEL */

View file

@ -120,7 +120,6 @@ VNET_DEFINE(struct socket *, ip_mrouter);
int (*ip_mrouter_set)(struct socket *, struct sockopt *);
int (*ip_mrouter_get)(struct socket *, struct sockopt *);
int (*ip_mrouter_done)(void);
int ip_mrouter_critical_section_cnt;
int (*ip_mforward)(struct ip *, struct ifnet *, struct mbuf *,
struct ip_moptions *);
int (*mrt_ioctl)(u_long, caddr_t, int);