Lines Matching refs:failover
15 #include <net/failover.h>
23 struct failover *failover;
26 list_for_each_entry(failover, &failover_list, list) {
27 failover_dev = rtnl_dereference(failover->failover_dev);
29 *ops = rtnl_dereference(failover->ops);
43 * Registers a slave device to a failover instance. Only ethernet devices
69 netdev_err(slave_dev, "can not register failover rx handler (err = %d)\n",
78 netdev_err(slave_dev, "can not set failover device %s (err = %d)\n",
102 * Unregisters a slave device from a failover instance.
231 * failover_register - Register a failover instance
233 * @dev: failover netdev
234 * @ops: failover ops
236 * Allocate and register a failover instance for a failover netdev. ops
240 * Return: pointer to failover instance
242 struct failover *failover_register(struct net_device *dev,
245 struct failover *failover;
250 failover = kzalloc(sizeof(*failover), GFP_KERNEL);
251 if (!failover)
254 rcu_assign_pointer(failover->ops, ops);
255 netdev_hold(dev, &failover->dev_tracker, GFP_KERNEL);
257 rcu_assign_pointer(failover->failover_dev, dev);
260 list_add_tail(&failover->list, &failover_list);
263 netdev_info(dev, "failover master:%s registered\n", dev->name);
267 return failover;
272 * failover_unregister - Unregister a failover instance
274 * @failover: pointer to failover instance
276 * Unregisters and frees a failover instance.
278 void failover_unregister(struct failover *failover)
282 failover_dev = rcu_dereference(failover->failover_dev);
284 netdev_info(failover_dev, "failover master:%s unregistered\n",
288 netdev_put(failover_dev, &failover->dev_tracker);
291 list_del(&failover->list);
294 kfree(failover);
314 MODULE_DESCRIPTION("Generic failover infrastructure/interface");