Hi Greg, Today's linux-next merge of the staging tree got a conflict in drivers/staging/brcm80211/brcmsmac/wl_mac80211.c between commit 7bb4568372856688bc070917265bce0b88bb7d4d ("mac80211: make tx() operation return void") from the wireless tree (where this file is called drivers/staging/brcm80211/sys/wl_mac80211.c) and commits 62b54dca17ef40116491b0ca27ca35fbe9daedc6 ("staging: brcm80211: cleanup function prototypes in header files") and 55182a10063c40eda4dc5afecff712e5c3617ffc ("staging: brcm80211: cosmetic changes") from the staging tree. I fixed it up (see below) and can carry the fix as necessary. -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc drivers/staging/brcm80211/brcmsmac/wl_mac80211.c index 6363077,6059e4c..0000000 --- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c +++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c @@@ -104,7 -75,16 +75,13 @@@ static int wl_request_fw(struct wl_inf static void wl_release_fw(struct wl_info *wl); /* local prototypes */ -static int wl_start(struct sk_buff *skb, struct wl_info *wl); -static int wl_start_int(struct wl_info *wl, struct ieee80211_hw *hw, - struct sk_buff *skb); static void wl_dpc(unsigned long data); + static irqreturn_t wl_isr(int irq, void *dev_id); + + static int __devinit wl_pci_probe(struct pci_dev *pdev, + const struct pci_device_id *ent); + static void wl_remove(struct pci_dev *pdev); + static void wl_free(struct wl_info *wl); MODULE_AUTHOR("Broadcom Corporation"); MODULE_DESCRIPTION("Broadcom 802.11n wireless LAN driver."); @@@ -132,6 -110,9 +107,8 @@@ module_param(phymsglevel, int, 0) #define HW_TO_WL(hw) (hw->priv) #define WL_TO_HW(wl) (wl->pub->ieee_hw) + + /* MAC80211 callback functions */ -static int wl_ops_tx(struct ieee80211_hw *hw, struct sk_buff *skb); static int wl_ops_start(struct ieee80211_hw *hw); static void wl_ops_stop(struct ieee80211_hw *hw); static int wl_ops_add_interface(struct ieee80211_hw *hw, @@@ -161,17 -142,22 +138,21 @@@ static void wl_ops_sta_notify(struct ie static int wl_ops_conf_tx(struct ieee80211_hw *hw, u16 queue, const struct ieee80211_tx_queue_params *params); static u64 wl_ops_get_tsf(struct ieee80211_hw *hw); - static int wl_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + static int wl_ops_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta); - static int wl_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, + static int wl_ops_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta); - static int wl_ampdu_action(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - enum ieee80211_ampdu_mlme_action action, - struct ieee80211_sta *sta, u16 tid, u16 *ssn); + static int wl_ops_ampdu_action(struct ieee80211_hw *hw, + struct ieee80211_vif *vif, + enum ieee80211_ampdu_mlme_action action, + struct ieee80211_sta *sta, u16 tid, u16 *ssn, + u8 buf_size); + static void wl_ops_rfkill_poll(struct ieee80211_hw *hw); -static int wl_ops_tx(struct ieee80211_hw *hw, struct sk_buff *skb) +static void wl_ops_tx(struct ieee80211_hw *hw, struct sk_buff *skb) { - int status; struct wl_info *wl = hw->priv; + WL_LOCK(wl); if (!wl->pub->up) { WL_ERROR("ops->tx called while down\n"); @@@ -1319,6 -1401,28 +1395,9 @@@ static void wl_free(struct wl_info *wl osl_detach(osh); } + /* - * transmit a packet - * precondition: perimeter lock has been acquired - */ -static int BCMFASTPATH wl_start(struct sk_buff *skb, struct wl_info *wl) -{ - if (!wl) - return -ENETDOWN; - - return wl_start_int(wl, WL_TO_HW(wl), skb); -} - -static int BCMFASTPATH -wl_start_int(struct wl_info *wl, struct ieee80211_hw *hw, struct sk_buff *skb) -{ - wlc_sendpkt_mac80211(wl->wlc, skb, hw); - return NETDEV_TX_OK; -} - -/* + * precondition: perimeter lock has been acquired + */ void wl_txflowcontrol(struct wl_info *wl, struct wl_if *wlif, bool state, int prio) { -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html