]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/infiniband/hw/mthca/mthca_catas.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluet...
[linux-2.6-omap-h63xx.git] / drivers / infiniband / hw / mthca / mthca_catas.c
index cd044ea2dfa42ecd53d967fbe46356e85fa104be..cc440f90000becfd62928c8aee85e07d4ef30653 100644 (file)
@@ -28,8 +28,6 @@
  * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
- *
- * $Id$
  */
 
 #include <linux/jiffies.h>
@@ -57,7 +55,7 @@ static int catas_reset_disable;
 module_param_named(catas_reset_disable, catas_reset_disable, int, 0644);
 MODULE_PARM_DESC(catas_reset_disable, "disable reset on catastrophic event if nonzero");
 
-static void catas_reset(void *work_ptr)
+static void catas_reset(struct work_struct *work)
 {
        struct mthca_dev *dev, *tmpdev;
        LIST_HEAD(tlist);
@@ -128,7 +126,6 @@ static void handle_catas(struct mthca_dev *dev)
 static void poll_catas(unsigned long dev_ptr)
 {
        struct mthca_dev *dev = (struct mthca_dev *) dev_ptr;
-       unsigned long flags;
        int i;
 
        for (i = 0; i < dev->catas_err.size; ++i)
@@ -137,13 +134,8 @@ static void poll_catas(unsigned long dev_ptr)
                        return;
                }
 
-       spin_lock_irqsave(&catas_lock, flags);
-       if (!dev->catas_err.stop)
-               mod_timer(&dev->catas_err.timer,
-                         jiffies + MTHCA_CATAS_POLL_INTERVAL);
-       spin_unlock_irqrestore(&catas_lock, flags);
-
-       return;
+       mod_timer(&dev->catas_err.timer,
+                 round_jiffies(jiffies + MTHCA_CATAS_POLL_INTERVAL));
 }
 
 void mthca_start_catas_poll(struct mthca_dev *dev)
@@ -151,7 +143,6 @@ void mthca_start_catas_poll(struct mthca_dev *dev)
        unsigned long addr;
 
        init_timer(&dev->catas_err.timer);
-       dev->catas_err.stop = 0;
        dev->catas_err.map  = NULL;
 
        addr = pci_resource_start(dev->pdev, 0) +
@@ -182,10 +173,6 @@ void mthca_start_catas_poll(struct mthca_dev *dev)
 
 void mthca_stop_catas_poll(struct mthca_dev *dev)
 {
-       spin_lock_irq(&catas_lock);
-       dev->catas_err.stop = 1;
-       spin_unlock_irq(&catas_lock);
-
        del_timer_sync(&dev->catas_err.timer);
 
        if (dev->catas_err.map) {
@@ -203,7 +190,7 @@ void mthca_stop_catas_poll(struct mthca_dev *dev)
 
 int __init mthca_catas_init(void)
 {
-       INIT_WORK(&catas_work, catas_reset, NULL);
+       INIT_WORK(&catas_work, catas_reset);
 
        catas_wq = create_singlethread_workqueue("mthca_catas");
        if (!catas_wq)