Ignore:
Timestamp:
2010-03-04T21:48:43+01:00 (6 years ago)
Author:
florian
Message:

[rdc] fix watchdog driver unregistering, patch by Bernhard Loos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/rdc/files-2.6.30/drivers/watchdog/rdc321x_wdt.c

    r19972 r19979  
    2929#include <linux/uaccess.h> 
    3030#include <linux/pci.h> 
     31#include <linux/delay.h> 
    3132 
    3233#include <asm/rdc321x_defs.h> 
     
    124125static int rdc321x_wdt_release(struct inode *inode, struct file *file) 
    125126{ 
    126         if (rdc321x_wdt_dev.close_expected) 
    127                 rdc321x_wdt_stop(); 
     127        int res; 
     128        if (rdc321x_wdt_dev.close_expected) { 
     129                res = rdc321x_wdt_stop(); 
     130                if (res) 
     131                        return res; 
     132        } 
    128133 
    129134        rdc321x_wdt_dev.inuse = false; 
     
    182187{ 
    183188        size_t i; 
    184   
     189 
    185190        if (!count) 
    186191                return -EIO; 
     
    249254        if (rdc321x_wdt_dev.inuse) 
    250255                rdc321x_wdt_dev.inuse = 0; 
     256 
     257        while (timer_pending(&rdc321x_wdt_dev.timer)) 
     258                msleep(100); 
     259 
    251260        misc_deregister(&rdc321x_wdt_misc); 
    252261        return 0; 
Note: See TracChangeset for help on using the changeset viewer.