slave.c (b3c9a04135bdbd3aabd5e9534bad0fe6df505f8a) | slave.c (636e8adf7878eab3614250234341bde45537f47a) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * net/dsa/slave.c - Slave device handling 4 * Copyright (c) 2008-2009 Marvell Semiconductor 5 */ 6 7#include <linux/list.h> 8#include <linux/etherdevice.h> --- 1919 unchanged lines hidden (view full) --- 1928 struct dsa_port *dp = dsa_slave_to_port(dev); 1929 struct dsa_port *cpu_dp = dp->cpu_dp; 1930 struct dsa_switch *ds = dp->ds; 1931 struct dsa_port *other_dp; 1932 int largest_mtu = 0; 1933 int new_master_mtu; 1934 int old_master_mtu; 1935 int mtu_limit; | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * net/dsa/slave.c - Slave device handling 4 * Copyright (c) 2008-2009 Marvell Semiconductor 5 */ 6 7#include <linux/list.h> 8#include <linux/etherdevice.h> --- 1919 unchanged lines hidden (view full) --- 1928 struct dsa_port *dp = dsa_slave_to_port(dev); 1929 struct dsa_port *cpu_dp = dp->cpu_dp; 1930 struct dsa_switch *ds = dp->ds; 1931 struct dsa_port *other_dp; 1932 int largest_mtu = 0; 1933 int new_master_mtu; 1934 int old_master_mtu; 1935 int mtu_limit; |
1936 int overhead; |
|
1936 int cpu_mtu; 1937 int err; 1938 1939 if (!ds->ops->port_change_mtu) 1940 return -EOPNOTSUPP; 1941 1942 dsa_tree_for_each_user_port(other_dp, ds->dst) { 1943 int slave_mtu; --- 12 unchanged lines hidden (view full) --- 1956 slave_mtu = new_mtu; 1957 else 1958 slave_mtu = other_dp->slave->mtu; 1959 1960 if (largest_mtu < slave_mtu) 1961 largest_mtu = slave_mtu; 1962 } 1963 | 1937 int cpu_mtu; 1938 int err; 1939 1940 if (!ds->ops->port_change_mtu) 1941 return -EOPNOTSUPP; 1942 1943 dsa_tree_for_each_user_port(other_dp, ds->dst) { 1944 int slave_mtu; --- 12 unchanged lines hidden (view full) --- 1957 slave_mtu = new_mtu; 1958 else 1959 slave_mtu = other_dp->slave->mtu; 1960 1961 if (largest_mtu < slave_mtu) 1962 largest_mtu = slave_mtu; 1963 } 1964 |
1964 mtu_limit = min_t(int, master->max_mtu, dev->max_mtu); | 1965 overhead = dsa_tag_protocol_overhead(cpu_dp->tag_ops); 1966 mtu_limit = min_t(int, master->max_mtu, dev->max_mtu + overhead); |
1965 old_master_mtu = master->mtu; | 1967 old_master_mtu = master->mtu; |
1966 new_master_mtu = largest_mtu + dsa_tag_protocol_overhead(cpu_dp->tag_ops); | 1968 new_master_mtu = largest_mtu + overhead; |
1967 if (new_master_mtu > mtu_limit) 1968 return -ERANGE; 1969 1970 /* If the master MTU isn't over limit, there's no need to check the CPU 1971 * MTU, since that surely isn't either. 1972 */ 1973 cpu_mtu = largest_mtu; 1974 --- 18 unchanged lines hidden (view full) --- 1993 dev->mtu = new_mtu; 1994 1995 dsa_bridge_mtu_normalization(dp); 1996 1997 return 0; 1998 1999out_port_failed: 2000 if (new_master_mtu != old_master_mtu) | 1969 if (new_master_mtu > mtu_limit) 1970 return -ERANGE; 1971 1972 /* If the master MTU isn't over limit, there's no need to check the CPU 1973 * MTU, since that surely isn't either. 1974 */ 1975 cpu_mtu = largest_mtu; 1976 --- 18 unchanged lines hidden (view full) --- 1995 dev->mtu = new_mtu; 1996 1997 dsa_bridge_mtu_normalization(dp); 1998 1999 return 0; 2000 2001out_port_failed: 2002 if (new_master_mtu != old_master_mtu) |
2001 dsa_port_mtu_change(cpu_dp, old_master_mtu - 2002 dsa_tag_protocol_overhead(cpu_dp->tag_ops)); | 2003 dsa_port_mtu_change(cpu_dp, old_master_mtu - overhead); |
2003out_cpu_failed: 2004 if (new_master_mtu != old_master_mtu) 2005 dev_set_mtu(master, old_master_mtu); 2006out_master_failed: 2007 return err; 2008} 2009 2010static int __maybe_unused --- 1565 unchanged lines hidden --- | 2004out_cpu_failed: 2005 if (new_master_mtu != old_master_mtu) 2006 dev_set_mtu(master, old_master_mtu); 2007out_master_failed: 2008 return err; 2009} 2010 2011static int __maybe_unused --- 1565 unchanged lines hidden --- |