dev.c (6df6398f7c8b481ce83f28143bc08a5231616deb) dev.c (14d7b8122fd591693a2388b98563707ba72c6780)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * NET3 Protocol independent device support routines.
4 *
5 * Derived from the non IP parts of dev.c 1.0.19
6 * Authors: Ross Biro
7 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
8 * Mark Evans, <evansmp@uhura.aston.ac.uk>

--- 2979 unchanged lines hidden (view full) ---

2988 return 0;
2989undo_rx:
2990 WARN_ON(netif_set_real_num_rx_queues(dev, old_rxq));
2991 return err;
2992}
2993EXPORT_SYMBOL(netif_set_real_num_queues);
2994
2995/**
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * NET3 Protocol independent device support routines.
4 *
5 * Derived from the non IP parts of dev.c 1.0.19
6 * Authors: Ross Biro
7 * Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
8 * Mark Evans, <evansmp@uhura.aston.ac.uk>

--- 2979 unchanged lines hidden (view full) ---

2988 return 0;
2989undo_rx:
2990 WARN_ON(netif_set_real_num_rx_queues(dev, old_rxq));
2991 return err;
2992}
2993EXPORT_SYMBOL(netif_set_real_num_queues);
2994
2995/**
2996 * netif_set_tso_max_size() - set the max size of TSO frames supported
2997 * @dev: netdev to update
2998 * @size: max skb->len of a TSO frame
2999 *
3000 * Set the limit on the size of TSO super-frames the device can handle.
3001 * Unless explicitly set the stack will assume the value of %GSO_MAX_SIZE.
3002 */
3003void netif_set_tso_max_size(struct net_device *dev, unsigned int size)
3004{
3005 dev->tso_max_size = size;
3006 if (size < READ_ONCE(dev->gso_max_size))
3007 netif_set_gso_max_size(dev, size);
3008}
3009EXPORT_SYMBOL(netif_set_tso_max_size);
3010
3011/**
3012 * netif_set_tso_max_segs() - set the max number of segs supported for TSO
3013 * @dev: netdev to update
3014 * @segs: max number of TCP segments
3015 *
3016 * Set the limit on the number of TCP segments the device can generate from
3017 * a single TSO super-frame.
3018 * Unless explicitly set the stack will assume the value of %GSO_MAX_SEGS.
3019 */
3020void netif_set_tso_max_segs(struct net_device *dev, unsigned int segs)
3021{
3022 dev->tso_max_segs = segs;
3023 if (segs < READ_ONCE(dev->gso_max_segs))
3024 netif_set_gso_max_segs(dev, segs);
3025}
3026EXPORT_SYMBOL(netif_set_tso_max_segs);
3027
3028/**
2996 * netif_inherit_tso_max() - copy all TSO limits from a lower device to an upper
2997 * @to: netdev to update
2998 * @from: netdev from which to copy the limits
2999 */
3000void netif_inherit_tso_max(struct net_device *to, const struct net_device *from)
3001{
3002 netif_set_gso_max_size(to, from->gso_max_size);
3003 netif_set_gso_max_segs(to, from->gso_max_segs);

--- 7563 unchanged lines hidden (view full) ---

10567 dev_mc_init(dev);
10568 dev_uc_init(dev);
10569
10570 dev_net_set(dev, &init_net);
10571
10572 dev->gso_max_size = GSO_MAX_SIZE;
10573 dev->gso_max_segs = GSO_MAX_SEGS;
10574 dev->gro_max_size = GRO_MAX_SIZE;
3029 * netif_inherit_tso_max() - copy all TSO limits from a lower device to an upper
3030 * @to: netdev to update
3031 * @from: netdev from which to copy the limits
3032 */
3033void netif_inherit_tso_max(struct net_device *to, const struct net_device *from)
3034{
3035 netif_set_gso_max_size(to, from->gso_max_size);
3036 netif_set_gso_max_segs(to, from->gso_max_segs);

--- 7563 unchanged lines hidden (view full) ---

10600 dev_mc_init(dev);
10601 dev_uc_init(dev);
10602
10603 dev_net_set(dev, &init_net);
10604
10605 dev->gso_max_size = GSO_MAX_SIZE;
10606 dev->gso_max_segs = GSO_MAX_SEGS;
10607 dev->gro_max_size = GRO_MAX_SIZE;
10608 dev->tso_max_size = TSO_LEGACY_MAX_SIZE;
10609 dev->tso_max_segs = TSO_MAX_SEGS;
10575 dev->upper_level = 1;
10576 dev->lower_level = 1;
10577#ifdef CONFIG_LOCKDEP
10578 dev->nested_level = 0;
10579 INIT_LIST_HEAD(&dev->unlink_list);
10580#endif
10581
10582 INIT_LIST_HEAD(&dev->napi_list);

--- 810 unchanged lines hidden ---
10610 dev->upper_level = 1;
10611 dev->lower_level = 1;
10612#ifdef CONFIG_LOCKDEP
10613 dev->nested_level = 0;
10614 INIT_LIST_HEAD(&dev->unlink_list);
10615#endif
10616
10617 INIT_LIST_HEAD(&dev->napi_list);

--- 810 unchanged lines hidden ---