You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
net: pass info struct via netdevice notifier
So far, only net_device * could be passed along with netdevice notifier event. This patch provides a possibility to pass custom structure able to provide info that event listener needs to know. Signed-off-by: Jiri Pirko <jiri@resnulli.us> v2->v3: fix typo on simeth shortened dev_getter shortened notifier_info struct name v1->v2: fix notifier_call parameter in call_netdevice_notifier() Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b1098bbe1b
commit
351638e7de
@@ -268,7 +268,7 @@ static __inline__ int dev_is_ethdev(struct net_device *dev)
|
||||
static int
|
||||
simeth_device_event(struct notifier_block *this,unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct simeth_local *local;
|
||||
struct in_device *in_dev;
|
||||
struct in_ifaddr **ifap = NULL;
|
||||
|
||||
@@ -331,7 +331,8 @@ static int tx4939_netdev_event(struct notifier_block *this,
|
||||
unsigned long event,
|
||||
void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
if (event == NETDEV_CHANGE && netif_carrier_ok(dev)) {
|
||||
__u64 bit = 0;
|
||||
if (dev->irq == TXX9_IRQ_BASE + TX4939_IR_ETH(0))
|
||||
|
||||
@@ -3269,9 +3269,9 @@ static int cma_netdev_change(struct net_device *ndev, struct rdma_id_private *id
|
||||
}
|
||||
|
||||
static int cma_netdev_callback(struct notifier_block *self, unsigned long event,
|
||||
void *ctx)
|
||||
void *ptr)
|
||||
{
|
||||
struct net_device *ndev = (struct net_device *)ctx;
|
||||
struct net_device *ndev = netdev_notifier_info_to_dev(ptr);
|
||||
struct cma_device *cma_dev;
|
||||
struct rdma_id_private *id_priv;
|
||||
int ret = NOTIFY_DONE;
|
||||
|
||||
@@ -1161,7 +1161,7 @@ static void netdev_removed(struct mlx4_ib_dev *dev, int port)
|
||||
static int mlx4_ib_netdev_event(struct notifier_block *this, unsigned long event,
|
||||
void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct mlx4_ib_dev *ibdev;
|
||||
struct net_device *oldnd;
|
||||
struct mlx4_ib_iboe *iboe;
|
||||
|
||||
@@ -3277,7 +3277,7 @@ static int bond_slave_netdev_event(unsigned long event,
|
||||
static int bond_netdev_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *event_dev = (struct net_device *)ptr;
|
||||
struct net_device *event_dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
pr_debug("event_dev: %s, event: %lx\n",
|
||||
event_dev ? event_dev->name : "None",
|
||||
|
||||
@@ -88,9 +88,9 @@ EXPORT_SYMBOL_GPL(devm_can_led_init);
|
||||
|
||||
/* NETDEV rename notifier to rename the associated led triggers too */
|
||||
static int can_led_notifier(struct notifier_block *nb, unsigned long msg,
|
||||
void *data)
|
||||
void *ptr)
|
||||
{
|
||||
struct net_device *netdev = data;
|
||||
struct net_device *netdev = netdev_notifier_info_to_dev(ptr);
|
||||
struct can_priv *priv = safe_candev_priv(netdev);
|
||||
char name[CAN_LED_NAME_SZ];
|
||||
|
||||
|
||||
@@ -5622,7 +5622,7 @@ static void cnic_rcv_netevent(struct cnic_local *cp, unsigned long event,
|
||||
static int cnic_netdev_event(struct notifier_block *this, unsigned long event,
|
||||
void *ptr)
|
||||
{
|
||||
struct net_device *netdev = ptr;
|
||||
struct net_device *netdev = netdev_notifier_info_to_dev(ptr);
|
||||
struct cnic_dev *dev;
|
||||
int new_dev = 0;
|
||||
|
||||
|
||||
@@ -3706,7 +3706,7 @@ static const struct file_operations skge_debug_fops = {
|
||||
static int skge_device_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct skge_port *skge;
|
||||
struct dentry *d;
|
||||
|
||||
|
||||
@@ -4642,7 +4642,7 @@ static const struct file_operations sky2_debug_fops = {
|
||||
static int sky2_device_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct sky2_port *sky2 = netdev_priv(dev);
|
||||
|
||||
if (dev->netdev_ops->ndo_open != sky2_open || !sky2_debug)
|
||||
|
||||
@@ -3311,7 +3311,7 @@ static int netxen_netdev_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct netxen_adapter *adapter;
|
||||
struct net_device *dev = (struct net_device *)ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct net_device *orig_dev = dev;
|
||||
struct net_device *slave;
|
||||
|
||||
|
||||
@@ -3530,7 +3530,7 @@ static int qlcnic_netdev_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct qlcnic_adapter *adapter;
|
||||
struct net_device *dev = (struct net_device *)ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
recheck:
|
||||
if (dev == NULL)
|
||||
|
||||
@@ -2120,7 +2120,7 @@ static void efx_update_name(struct efx_nic *efx)
|
||||
static int efx_netdev_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *net_dev = ptr;
|
||||
struct net_device *net_dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
if (net_dev->netdev_ops == &efx_netdev_ops &&
|
||||
event == NETDEV_CHANGENAME)
|
||||
|
||||
@@ -103,7 +103,7 @@ static struct packet_type bpq_packet_type __read_mostly = {
|
||||
};
|
||||
|
||||
static struct notifier_block bpq_dev_notifier = {
|
||||
.notifier_call =bpq_device_event,
|
||||
.notifier_call = bpq_device_event,
|
||||
};
|
||||
|
||||
|
||||
@@ -544,9 +544,10 @@ static void bpq_free_device(struct net_device *ndev)
|
||||
/*
|
||||
* Handle device status changes.
|
||||
*/
|
||||
static int bpq_device_event(struct notifier_block *this,unsigned long event, void *ptr)
|
||||
static int bpq_device_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = (struct net_device *)ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
if (!net_eq(dev_net(dev), &init_net))
|
||||
return NOTIFY_DONE;
|
||||
|
||||
@@ -921,7 +921,7 @@ static struct rtnl_link_ops macvlan_link_ops = {
|
||||
static int macvlan_device_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct macvlan_dev *vlan, *next;
|
||||
struct macvlan_port *port;
|
||||
LIST_HEAD(list_kill);
|
||||
|
||||
@@ -1053,7 +1053,7 @@ EXPORT_SYMBOL_GPL(macvtap_get_socket);
|
||||
static int macvtap_device_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct macvlan_dev *vlan;
|
||||
struct device *classdev;
|
||||
dev_t devt;
|
||||
|
||||
@@ -653,12 +653,11 @@ static struct configfs_subsystem netconsole_subsys = {
|
||||
|
||||
/* Handle network interface device notifications */
|
||||
static int netconsole_netdev_event(struct notifier_block *this,
|
||||
unsigned long event,
|
||||
void *ptr)
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct netconsole_target *nt;
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
bool stopped = false;
|
||||
|
||||
if (!(event == NETDEV_CHANGENAME || event == NETDEV_UNREGISTER ||
|
||||
|
||||
@@ -338,7 +338,7 @@ static void pppoe_flush_dev(struct net_device *dev)
|
||||
static int pppoe_device_event(struct notifier_block *this,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = (struct net_device *)ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
/* Only look at sockets that are using this specific device. */
|
||||
switch (event) {
|
||||
|
||||
@@ -2647,7 +2647,7 @@ static void team_port_change_check(struct team_port *port, bool linkup)
|
||||
static int team_device_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = (struct net_device *) ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
struct team_port *port;
|
||||
|
||||
port = team_port_get_rtnl(dev);
|
||||
|
||||
@@ -477,7 +477,7 @@ static void dlci_setup(struct net_device *dev)
|
||||
static int dlci_dev_event(struct notifier_block *unused,
|
||||
unsigned long event, void *ptr)
|
||||
{
|
||||
struct net_device *dev = (struct net_device *) ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
|
||||
if (dev_net(dev) != &init_net)
|
||||
return NOTIFY_DONE;
|
||||
|
||||
@@ -99,7 +99,7 @@ static inline void hdlc_proto_stop(struct net_device *dev)
|
||||
static int hdlc_device_event(struct notifier_block *this, unsigned long event,
|
||||
void *ptr)
|
||||
{
|
||||
struct net_device *dev = ptr;
|
||||
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
|
||||
hdlc_device *hdlc;
|
||||
unsigned long flags;
|
||||
int on;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user