|
@@ -3974,6 +3974,22 @@ sch_handle_ingress(struct sk_buff *skb, struct packet_type **pt_prev, int *ret,
|
|
|
return skb;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * netdev_is_rx_handler_busy - check if receive handler is registered
|
|
|
+ * @dev: device to check
|
|
|
+ *
|
|
|
+ * Check if a receive handler is already registered for a given device.
|
|
|
+ * Return true if there one.
|
|
|
+ *
|
|
|
+ * The caller must hold the rtnl_mutex.
|
|
|
+ */
|
|
|
+bool netdev_is_rx_handler_busy(struct net_device *dev)
|
|
|
+{
|
|
|
+ ASSERT_RTNL();
|
|
|
+ return dev && rtnl_dereference(dev->rx_handler);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(netdev_is_rx_handler_busy);
|
|
|
+
|
|
|
/**
|
|
|
* netdev_rx_handler_register - register receive handler
|
|
|
* @dev: device to register a handler for
|