The patch titled:

    bridge: use rx_handler_data pointer to store net_bridge_port pointer
   
by Jiri Pirko <jpirko@redhat.com> moved the br_ports pointer
out of the netdev which older kernels relied on and then added
a flag to the netdev to check for it as follows:

-                               dev->br_port) {
+                   (dev->priv_flags & IFF_BRIDGE_PORT)) {

So to backport this we instead rely on a br_port_exists() call
which compat.git provides and depending on the kernel it will either
check for the dev->br_port or the IFF_BRIDGE_PORT flag. A patch
to get the blow code merged upstream and to use br_port_exists()
everywhere else will be submitted but not sure if it will be
accepted.

This patch can be removed once we get br_port_exists() accessible
to drivers and not just private bridge code. If that patch doesn't
get accepted upstream we'l have to carry this patch around for
compat-wireless.

--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -807,7 +807,7 @@ int cfg80211_change_iface(struct cfg8021
 		return -EOPNOTSUPP;
 
 	/* if it's part of a bridge, reject changing type to station/ibss */
-	if ((dev->priv_flags & IFF_BRIDGE_PORT) &&
+	if (br_port_exists(dev) &&
 	    (ntype == NL80211_IFTYPE_ADHOC ||
 	     ntype == NL80211_IFTYPE_STATION ||
 	     ntype == NL80211_IFTYPE_P2P_CLIENT))
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1591,7 +1591,7 @@ static int nl80211_valid_4addr(struct cf
 			       enum nl80211_iftype iftype)
 {
 	if (!use_4addr) {
-		if (netdev && (netdev->priv_flags & IFF_BRIDGE_PORT))
+		if (netdev && br_port_exists(netdev))
 			return -EBUSY;
 		return 0;
 	}
