Changeset 34324


Ignore:
Timestamp:
2012-11-24T21:24:27+01:00 (5 years ago)
Author:
hauke
Message:

brcm47xx: watchdog: deactivate NOWAYOUT.

In the old configuration the SoC issued a reboot if the watchdog was
killed also if it was kill with TERM and not KILL.

This will fix #11724.

Location:
trunk/target/linux/brcm47xx
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm47xx/config-3.6

    r34323 r34324  
    146146CONFIG_USB_SUPPORT=y 
    147147CONFIG_WATCHDOG_CORE=y 
    148 CONFIG_WATCHDOG_NOWAYOUT=y 
    149148CONFIG_ZONE_DMA_FLAG=0 
  • trunk/target/linux/brcm47xx/patches-3.6/540-watchdog-bcm47xx_wdt.c-convert-to-watchdog-core-api.patch

    r34323 r34324  
    2727 #include <linux/timer.h> 
    2828 #include <linux/jiffies.h> 
    29 @@ -48,8 +45,6 @@ MODULE_PARM_DESC(nowayout, 
     29@@ -41,15 +38,11 @@ module_param(wdt_time, int, 0); 
     30 MODULE_PARM_DESC(wdt_time, "Watchdog time in seconds. (default=" 
     31                                __MODULE_STRING(WDT_DEFAULT_TIME) ")"); 
     32  
     33-#ifdef CONFIG_WATCHDOG_NOWAYOUT 
     34 module_param(nowayout, bool, 0); 
     35 MODULE_PARM_DESC(nowayout, 
     36                "Watchdog cannot be stopped once started (default=" 
    3037                                __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); 
    31  #endif 
     38-#endif 
    3239  
    3340-static unsigned long bcm47xx_wdt_busy; 
     
    3643 static atomic_t ticks; 
    3744  
    38 @@ -97,29 +92,31 @@ static void bcm47xx_timer_tick(unsigned 
     45@@ -97,29 +90,31 @@ static void bcm47xx_timer_tick(unsigned 
    3946        } 
    4047 } 
     
    7683        if ((new_time <= 0) || (new_time > WDT_MAX_TIME)) 
    7784                return -EINVAL; 
    78 @@ -128,51 +125,6 @@ static int bcm47xx_wdt_settimeout(int ne 
     85@@ -128,51 +123,6 @@ static int bcm47xx_wdt_settimeout(int ne 
    7986        return 0; 
    8087 } 
     
    128135        .identity       = DRV_NAME, 
    129136        .options        = WDIOF_SETTIMEOUT | 
    130 @@ -180,80 +132,25 @@ static const struct watchdog_info bcm47x 
     137@@ -180,80 +130,25 @@ static const struct watchdog_info bcm47x 
    131138                                WDIOF_MAGICCLOSE, 
    132139 }; 
     
    218225  
    219226 static struct notifier_block bcm47xx_wdt_notifier = { 
    220 @@ -274,12 +171,13 @@ static int __init bcm47xx_wdt_init(void) 
     227@@ -274,12 +169,13 @@ static int __init bcm47xx_wdt_init(void) 
    221228                pr_info("wdt_time value must be 0 < wdt_time < %d, using %d\n", 
    222229                        (WDT_MAX_TIME + 1), wdt_time); 
     
    233240                unregister_reboot_notifier(&bcm47xx_wdt_notifier); 
    234241                return ret; 
    235 @@ -292,10 +190,8 @@ static int __init bcm47xx_wdt_init(void) 
     242@@ -292,10 +188,8 @@ static int __init bcm47xx_wdt_init(void) 
    236243  
    237244 static void __exit bcm47xx_wdt_exit(void) 
     
    246253        unregister_reboot_notifier(&bcm47xx_wdt_notifier); 
    247254 } 
    248 @@ -306,4 +202,3 @@ module_exit(bcm47xx_wdt_exit); 
     255@@ -306,4 +200,3 @@ module_exit(bcm47xx_wdt_exit); 
    249256 MODULE_AUTHOR("Aleksandar Radovanovic"); 
    250257 MODULE_DESCRIPTION("Watchdog driver for Broadcom BCM47xx"); 
  • trunk/target/linux/brcm47xx/patches-3.6/541-watchdog-bcm47xx_wdt.c-use-platform-device.patch

    r34323 r34324  
    3131 #define DRV_NAME               "bcm47xx_wdt" 
    3232  
    33 @@ -45,48 +46,19 @@ MODULE_PARM_DESC(nowayout, 
     33@@ -43,48 +44,19 @@ MODULE_PARM_DESC(nowayout, 
     34                "Watchdog cannot be stopped once started (default=" 
    3435                                __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); 
    35  #endif 
    3636  
    3737-static struct timer_list wdt_timer; 
     
    8888                pr_crit("Watchdog will fire soon!!!\n"); 
    8989        } 
    90 @@ -94,23 +66,29 @@ static void bcm47xx_timer_tick(unsigned 
     90@@ -92,23 +64,29 @@ static void bcm47xx_timer_tick(unsigned 
    9191  
    9292 static int bcm47xx_wdt_keepalive(struct watchdog_device *wdd) 
     
    123123        return 0; 
    124124 } 
    125 @@ -118,10 +96,13 @@ static int bcm47xx_wdt_stop(struct watch 
     125@@ -116,10 +94,13 @@ static int bcm47xx_wdt_stop(struct watch 
    126126 static int bcm47xx_wdt_set_timeout(struct watchdog_device *wdd, 
    127127                                   unsigned int new_time) 
     
    139139 } 
    140140  
    141 @@ -135,8 +116,11 @@ static const struct watchdog_info bcm47x 
     141@@ -133,8 +114,11 @@ static const struct watchdog_info bcm47x 
    142142 static int bcm47xx_wdt_notify_sys(struct notifier_block *this, 
    143143                                  unsigned long code, void *unused) 
     
    152152 } 
    153153  
    154 @@ -148,57 +132,72 @@ static struct watchdog_ops bcm47xx_wdt_o 
     154@@ -146,57 +130,72 @@ static struct watchdog_ops bcm47xx_wdt_o 
    155155        .set_timeout    = bcm47xx_wdt_set_timeout, 
    156156 }; 
  • trunk/target/linux/brcm47xx/patches-3.6/542-watchdog-bcm47xx_wdt.c-rename-ops-methods.patch

    r34323 r34324  
    11--- a/drivers/watchdog/bcm47xx_wdt.c 
    22+++ b/drivers/watchdog/bcm47xx_wdt.c 
    3 @@ -46,12 +46,13 @@ MODULE_PARM_DESC(nowayout, 
     3@@ -44,12 +44,13 @@ MODULE_PARM_DESC(nowayout, 
     4                "Watchdog cannot be stopped once started (default=" 
    45                                __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); 
    5  #endif 
    66  
    77+ 
     
    1616        struct bcm47xx_wdt *wdt = (struct bcm47xx_wdt *)data; 
    1717        u32 next_tick = min(wdt->wdd.timeout * 1000, wdt->max_timer_ms); 
    18 @@ -64,7 +65,7 @@ static void bcm47xx_timer_tick(unsigned 
     18@@ -62,7 +63,7 @@ static void bcm47xx_timer_tick(unsigned 
    1919        } 
    2020 } 
     
    2525        struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); 
    2626  
    27 @@ -73,17 +74,17 @@ static int bcm47xx_wdt_keepalive(struct 
     27@@ -71,17 +72,17 @@ static int bcm47xx_wdt_keepalive(struct 
    2828        return 0; 
    2929 } 
     
    4747        struct bcm47xx_wdt *wdt = bcm47xx_wdt_get(wdd); 
    4848  
    49 @@ -93,8 +94,8 @@ static int bcm47xx_wdt_stop(struct watch 
     49@@ -91,8 +92,8 @@ static int bcm47xx_wdt_stop(struct watch 
    5050        return 0; 
    5151 } 
     
    5858        if (new_time < 1 || new_time > WDT_MAX_TIME) { 
    5959                pr_warn("timeout value must be 1<=x<=%d, using %d\n", 
    60 @@ -124,12 +125,12 @@ static int bcm47xx_wdt_notify_sys(struct 
     60@@ -122,12 +123,12 @@ static int bcm47xx_wdt_notify_sys(struct 
    6161        return NOTIFY_DONE; 
    6262 } 
     
    7676  
    7777 static int __devinit bcm47xx_wdt_probe(struct platform_device *pdev) 
    78 @@ -140,10 +141,10 @@ static int __devinit bcm47xx_wdt_probe(s 
     78@@ -138,10 +139,10 @@ static int __devinit bcm47xx_wdt_probe(s 
    7979        if (!wdt) 
    8080                return -ENXIO; 
  • trunk/target/linux/brcm47xx/patches-3.6/543-watchdog-bcm47xx_wdt.c-rename-wdt_timeout-to-timeout.patch

    r34323 r34324  
    1818                                __MODULE_STRING(WDT_DEFAULT_TIME) ")"); 
    1919  
    20  #ifdef CONFIG_WATCHDOG_NOWAYOUT 
    21 @@ -97,9 +97,9 @@ static int bcm47xx_wdt_soft_stop(struct 
     20 module_param(nowayout, bool, 0); 
     21@@ -95,9 +95,9 @@ static int bcm47xx_wdt_soft_stop(struct 
    2222 static int bcm47xx_wdt_soft_set_timeout(struct watchdog_device *wdd, 
    2323                                        unsigned int new_time) 
     
    3131        } 
    3232  
    33 @@ -163,7 +163,7 @@ static int __devinit bcm47xx_wdt_probe(s 
     33@@ -161,7 +161,7 @@ static int __devinit bcm47xx_wdt_probe(s 
    3434                goto err_notifier; 
    3535  
  • trunk/target/linux/brcm47xx/patches-3.6/544-watchdog-bcm47xx_wdt.c-add-hard-timer.patch

    r34323 r34324  
    99 static int timeout = WDT_DEFAULT_TIME; 
    1010 static bool nowayout = WATCHDOG_NOWAYOUT; 
    11 @@ -52,6 +53,53 @@ static inline struct bcm47xx_wdt *bcm47x 
     11@@ -50,6 +51,53 @@ static inline struct bcm47xx_wdt *bcm47x 
    1212        return container_of(wdd, struct bcm47xx_wdt, wdd); 
    1313 } 
     
    6363 { 
    6464        struct bcm47xx_wdt *wdt = (struct bcm47xx_wdt *)data; 
    65 @@ -136,15 +184,22 @@ static struct watchdog_ops bcm47xx_wdt_s 
     65@@ -134,15 +182,22 @@ static struct watchdog_ops bcm47xx_wdt_s 
    6666 static int __devinit bcm47xx_wdt_probe(struct platform_device *pdev) 
    6767 { 
     
    8989        wdt->wdd.timeout = WDT_DEFAULT_TIME; 
    9090        ret = wdt->wdd.ops->set_timeout(&wdt->wdd, timeout); 
    91 @@ -162,14 +217,16 @@ static int __devinit bcm47xx_wdt_probe(s 
     91@@ -160,14 +215,16 @@ static int __devinit bcm47xx_wdt_probe(s 
    9292        if (ret) 
    9393                goto err_notifier; 
Note: See TracChangeset for help on using the changeset viewer.