Changeset 40591


Ignore:
Timestamp:
2014-04-29T17:52:08+02:00 (4 years ago)
Author:
nbd
Message:

ath9k: merge a fix for a race condition on init

Signed-off-by: Felix Fietkau <nbd@…>

Location:
trunk/package/kernel/mac80211/patches
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/kernel/mac80211/patches/300-pending_work.patch

    r40590 r40591  
     1commit 8c7ae357cc5b6bd037ad2d666e9f3789cf882925 
     2Author: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> 
     3Date:   Wed Apr 23 15:07:57 2014 +0530 
     4 
     5    ath9k: fix race in setting ATH_OP_INVALID 
     6     
     7    The commit "ath9k: move sc_flags to ath_common" moved setting 
     8    ATH_OP_INVALID flag below ieee80211_register_hw. This is causing 
     9    the flag never being cleared randomly as the drv_start is called 
     10    prior to setting flag. Fix this by setting the flag prior to 
     11    register_hw. 
     12     
     13    Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com> 
     14    Signed-off-by: John W. Linville <linville@tuxdriver.com> 
     15 
    116commit c82552c5b0cb1735dbcbad78b1ffc6d3c212dc56 
    217Author: Tim Harvey <tharvey@gateworks.com> 
     
    309324  
    310325        if (!(ah->imask & ATH9K_INT_RXEOL)) { 
     326--- a/drivers/net/wireless/ath/ath9k/ahb.c 
     327+++ b/drivers/net/wireless/ath/ath9k/ahb.c 
     328@@ -86,7 +86,6 @@ static int ath_ahb_probe(struct platform 
     329        int irq; 
     330        int ret = 0; 
     331        struct ath_hw *ah; 
     332-       struct ath_common *common; 
     333        char hw_name[64]; 
     334  
     335        if (!dev_get_platdata(&pdev->dev)) { 
     336@@ -146,9 +145,6 @@ static int ath_ahb_probe(struct platform 
     337        wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", 
     338                   hw_name, (unsigned long)mem, irq); 
     339  
     340-       common = ath9k_hw_common(sc->sc_ah); 
     341-       /* Will be cleared in ath9k_start() */ 
     342-       set_bit(ATH_OP_INVALID, &common->op_flags); 
     343        return 0; 
     344  
     345  err_irq: 
     346--- a/drivers/net/wireless/ath/ath9k/init.c 
     347+++ b/drivers/net/wireless/ath/ath9k/init.c 
     348@@ -781,6 +781,9 @@ int ath9k_init_device(u16 devid, struct  
     349        common = ath9k_hw_common(ah); 
     350        ath9k_set_hw_capab(sc, hw); 
     351  
     352+       /* Will be cleared in ath9k_start() */ 
     353+       set_bit(ATH_OP_INVALID, &common->op_flags); 
     354+ 
     355        /* Initialize regulatory */ 
     356        error = ath_regd_init(&common->regulatory, sc->hw->wiphy, 
     357                              ath9k_reg_notifier); 
     358--- a/drivers/net/wireless/ath/ath9k/pci.c 
     359+++ b/drivers/net/wireless/ath/ath9k/pci.c 
     360@@ -784,7 +784,6 @@ static int ath_pci_probe(struct pci_dev  
     361 { 
     362        struct ath_softc *sc; 
     363        struct ieee80211_hw *hw; 
     364-       struct ath_common *common; 
     365        u8 csz; 
     366        u32 val; 
     367        int ret = 0; 
     368@@ -877,10 +876,6 @@ static int ath_pci_probe(struct pci_dev  
     369        wiphy_info(hw->wiphy, "%s mem=0x%lx, irq=%d\n", 
     370                   hw_name, (unsigned long)sc->mem, pdev->irq); 
     371  
     372-       /* Will be cleared in ath9k_start() */ 
     373-       common = ath9k_hw_common(sc->sc_ah); 
     374-       set_bit(ATH_OP_INVALID, &common->op_flags); 
     375- 
     376        return 0; 
     377  
     378 err_init: 
  • trunk/package/kernel/mac80211/patches/502-ath9k_ahb_init.patch

    r40393 r40591  
    11--- a/drivers/net/wireless/ath/ath9k/init.c 
    22+++ b/drivers/net/wireless/ath/ath9k/init.c 
    3 @@ -892,23 +892,23 @@ static int __init ath9k_init(void) 
     3@@ -895,23 +895,23 @@ static int __init ath9k_init(void) 
    44 { 
    55        int error; 
  • trunk/package/kernel/mac80211/patches/530-ath9k_extra_leds.patch

    r40586 r40591  
    163163--- a/drivers/net/wireless/ath/ath9k/init.c 
    164164+++ b/drivers/net/wireless/ath/ath9k/init.c 
    165 @@ -806,7 +806,7 @@ int ath9k_init_device(u16 devid, struct  
     165@@ -809,7 +809,7 @@ int ath9k_init_device(u16 devid, struct  
    166166  
    167167 #ifdef CPTCFG_MAC80211_LEDS 
  • trunk/package/kernel/mac80211/patches/550-ath9k_entropy_from_adc.patch

    r40427 r40591  
    8585                    const struct ath_bus_ops *bus_ops) 
    8686 { 
    87 @@ -813,6 +826,8 @@ int ath9k_init_device(u16 devid, struct  
     87@@ -816,6 +829,8 @@ int ath9k_init_device(u16 devid, struct  
    8888                ARRAY_SIZE(ath9k_tpt_blink)); 
    8989 #endif 
  • trunk/package/kernel/mac80211/patches/552-ath9k_p2p_ps_support.patch

    r40586 r40591  
    226226        ath9k_init_misc(sc); 
    227227        ath_fill_led_pin(sc); 
    228 @@ -870,6 +873,9 @@ static void ath9k_deinit_softc(struct at 
     228@@ -873,6 +876,9 @@ static void ath9k_deinit_softc(struct at 
    229229 { 
    230230        int i = 0; 
Note: See TracChangeset for help on using the changeset viewer.