|
|
@@ -96,8 +96,7 @@ match_outdev:
|
|
|
static int physdev_mt_check(const struct xt_mtchk_param *par)
|
|
|
{
|
|
|
const struct xt_physdev_info *info = par->matchinfo;
|
|
|
-
|
|
|
- br_netfilter_enable();
|
|
|
+ static bool brnf_probed __read_mostly;
|
|
|
|
|
|
if (!(info->bitmask & XT_PHYSDEV_OP_MASK) ||
|
|
|
info->bitmask & ~XT_PHYSDEV_OP_MASK)
|
|
|
@@ -111,6 +110,12 @@ static int physdev_mt_check(const struct xt_mtchk_param *par)
|
|
|
if (par->hook_mask & (1 << NF_INET_LOCAL_OUT))
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
+
|
|
|
+ if (!brnf_probed) {
|
|
|
+ brnf_probed = true;
|
|
|
+ request_module("br_netfilter");
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|