mirror of https://gitee.com/openkylin/linux.git
net: use netif_is_bridge_port() to check for IFF_BRIDGE_PORT
Trivial cleanup, so that all bridge port-specific code can be found in one go. CC: Johannes Berg <johannes@sipsolutions.net> CC: Roopa Prabhu <roopa@cumulusnetworks.com> CC: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Reviewed-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
458de8a97f
commit
2e92a2d0e4
|
@ -1265,7 +1265,7 @@ static rx_handler_result_t bond_handle_frame(struct sk_buff **pskb)
|
||||||
skb->dev = bond->dev;
|
skb->dev = bond->dev;
|
||||||
|
|
||||||
if (BOND_MODE(bond) == BOND_MODE_ALB &&
|
if (BOND_MODE(bond) == BOND_MODE_ALB &&
|
||||||
bond->dev->priv_flags & IFF_BRIDGE_PORT &&
|
netif_is_bridge_port(bond->dev) &&
|
||||||
skb->pkt_type == PACKET_HOST) {
|
skb->pkt_type == PACKET_HOST) {
|
||||||
|
|
||||||
if (unlikely(skb_cow_head(skb,
|
if (unlikely(skb_cow_head(skb,
|
||||||
|
|
|
@ -5694,7 +5694,7 @@ static void dev_set_promiscuous(struct net_device *dev, struct dev_priv *priv,
|
||||||
* from the bridge.
|
* from the bridge.
|
||||||
*/
|
*/
|
||||||
if ((hw->features & STP_SUPPORT) && !promiscuous &&
|
if ((hw->features & STP_SUPPORT) && !promiscuous &&
|
||||||
(dev->priv_flags & IFF_BRIDGE_PORT)) {
|
netif_is_bridge_port(dev)) {
|
||||||
struct ksz_switch *sw = hw->ksz_switch;
|
struct ksz_switch *sw = hw->ksz_switch;
|
||||||
int port = priv->port.first_port;
|
int port = priv->port.first_port;
|
||||||
|
|
||||||
|
|
|
@ -3911,7 +3911,7 @@ static int rtnl_fdb_add(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||||
|
|
||||||
/* Support fdb on master device the net/bridge default case */
|
/* Support fdb on master device the net/bridge default case */
|
||||||
if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) &&
|
if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) &&
|
||||||
(dev->priv_flags & IFF_BRIDGE_PORT)) {
|
netif_is_bridge_port(dev)) {
|
||||||
struct net_device *br_dev = netdev_master_upper_dev_get(dev);
|
struct net_device *br_dev = netdev_master_upper_dev_get(dev);
|
||||||
const struct net_device_ops *ops = br_dev->netdev_ops;
|
const struct net_device_ops *ops = br_dev->netdev_ops;
|
||||||
|
|
||||||
|
@ -4022,7 +4022,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh,
|
||||||
|
|
||||||
/* Support fdb on master device the net/bridge default case */
|
/* Support fdb on master device the net/bridge default case */
|
||||||
if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) &&
|
if ((!ndm->ndm_flags || ndm->ndm_flags & NTF_MASTER) &&
|
||||||
(dev->priv_flags & IFF_BRIDGE_PORT)) {
|
netif_is_bridge_port(dev)) {
|
||||||
struct net_device *br_dev = netdev_master_upper_dev_get(dev);
|
struct net_device *br_dev = netdev_master_upper_dev_get(dev);
|
||||||
const struct net_device_ops *ops = br_dev->netdev_ops;
|
const struct net_device_ops *ops = br_dev->netdev_ops;
|
||||||
|
|
||||||
|
@ -4248,13 +4248,13 @@ static int rtnl_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!br_idx) { /* user did not specify a specific bridge */
|
if (!br_idx) { /* user did not specify a specific bridge */
|
||||||
if (dev->priv_flags & IFF_BRIDGE_PORT) {
|
if (netif_is_bridge_port(dev)) {
|
||||||
br_dev = netdev_master_upper_dev_get(dev);
|
br_dev = netdev_master_upper_dev_get(dev);
|
||||||
cops = br_dev->netdev_ops;
|
cops = br_dev->netdev_ops;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (dev != br_dev &&
|
if (dev != br_dev &&
|
||||||
!(dev->priv_flags & IFF_BRIDGE_PORT))
|
!netif_is_bridge_port(dev))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (br_dev != netdev_master_upper_dev_get(dev) &&
|
if (br_dev != netdev_master_upper_dev_get(dev) &&
|
||||||
|
@ -4266,7 +4266,7 @@ static int rtnl_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb)
|
||||||
if (idx < s_idx)
|
if (idx < s_idx)
|
||||||
goto cont;
|
goto cont;
|
||||||
|
|
||||||
if (dev->priv_flags & IFF_BRIDGE_PORT) {
|
if (netif_is_bridge_port(dev)) {
|
||||||
if (cops && cops->ndo_fdb_dump) {
|
if (cops && cops->ndo_fdb_dump) {
|
||||||
err = cops->ndo_fdb_dump(skb, cb,
|
err = cops->ndo_fdb_dump(skb, cb,
|
||||||
br_dev, dev,
|
br_dev, dev,
|
||||||
|
@ -4416,7 +4416,7 @@ static int rtnl_fdb_get(struct sk_buff *in_skb, struct nlmsghdr *nlh,
|
||||||
|
|
||||||
if (dev) {
|
if (dev) {
|
||||||
if (!ndm_flags || (ndm_flags & NTF_MASTER)) {
|
if (!ndm_flags || (ndm_flags & NTF_MASTER)) {
|
||||||
if (!(dev->priv_flags & IFF_BRIDGE_PORT)) {
|
if (!netif_is_bridge_port(dev)) {
|
||||||
NL_SET_ERR_MSG(extack, "Device is not a bridge port");
|
NL_SET_ERR_MSG(extack, "Device is not a bridge port");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3531,7 +3531,7 @@ static int nl80211_valid_4addr(struct cfg80211_registered_device *rdev,
|
||||||
enum nl80211_iftype iftype)
|
enum nl80211_iftype iftype)
|
||||||
{
|
{
|
||||||
if (!use_4addr) {
|
if (!use_4addr) {
|
||||||
if (netdev && (netdev->priv_flags & IFF_BRIDGE_PORT))
|
if (netdev && netif_is_bridge_port(netdev))
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -934,7 +934,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
/* if it's part of a bridge, reject changing type to station/ibss */
|
/* if it's part of a bridge, reject changing type to station/ibss */
|
||||||
if ((dev->priv_flags & IFF_BRIDGE_PORT) &&
|
if (netif_is_bridge_port(dev) &&
|
||||||
(ntype == NL80211_IFTYPE_ADHOC ||
|
(ntype == NL80211_IFTYPE_ADHOC ||
|
||||||
ntype == NL80211_IFTYPE_STATION ||
|
ntype == NL80211_IFTYPE_STATION ||
|
||||||
ntype == NL80211_IFTYPE_P2P_CLIENT))
|
ntype == NL80211_IFTYPE_P2P_CLIENT))
|
||||||
|
|
Loading…
Reference in New Issue