master.c (112d6212c80a1c560757520bd822a41c0ad15c2c) master.c (ab92d68fc22f9afab480153bd82a20f6e2533769)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Handling of a master device, switching frames via its switch fabric CPU port
4 *
5 * Copyright (c) 2017 Savoir-faire Linux Inc.
6 * Vivien Didelot <vivien.didelot@savoirfairelinux.com>
7 */
8

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

305 rtnl_lock();
306 err = dev_set_mtu(dev, ETH_DATA_LEN);
307 if (err)
308 netdev_dbg(dev,
309 "Unable to reset MTU to exclude DSA overheads\n");
310 rtnl_unlock();
311}
312
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Handling of a master device, switching frames via its switch fabric CPU port
4 *
5 * Copyright (c) 2017 Savoir-faire Linux Inc.
6 * Vivien Didelot <vivien.didelot@savoirfairelinux.com>
7 */
8

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

305 rtnl_lock();
306 err = dev_set_mtu(dev, ETH_DATA_LEN);
307 if (err)
308 netdev_dbg(dev,
309 "Unable to reset MTU to exclude DSA overheads\n");
310 rtnl_unlock();
311}
312
313static struct lock_class_key dsa_master_addr_list_lock_key;
314
315int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
316{
317 int ret;
318
319 dsa_master_set_mtu(dev, cpu_dp);
320
321 /* If we use a tagging format that doesn't have an ethertype
322 * field, make sure that all packets from this point on get
323 * sent to the tag format's receive function.
324 */
325 wmb();
326
327 dev->dsa_ptr = cpu_dp;
313int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp)
314{
315 int ret;
316
317 dsa_master_set_mtu(dev, cpu_dp);
318
319 /* If we use a tagging format that doesn't have an ethertype
320 * field, make sure that all packets from this point on get
321 * sent to the tag format's receive function.
322 */
323 wmb();
324
325 dev->dsa_ptr = cpu_dp;
328 lockdep_set_class(&dev->addr_list_lock,
329 &dsa_master_addr_list_lock_key);
330
331 ret = dsa_master_ethtool_setup(dev);
332 if (ret)
333 return ret;
334
335 ret = dsa_master_ndo_setup(dev);
336 if (ret)
337 goto out_err_ethtool_teardown;
338

--- 28 unchanged lines hidden ---
326 ret = dsa_master_ethtool_setup(dev);
327 if (ret)
328 return ret;
329
330 ret = dsa_master_ndo_setup(dev);
331 if (ret)
332 goto out_err_ethtool_teardown;
333

--- 28 unchanged lines hidden ---