Merge branch 'master' into for-2.6.35
[linux-drm-fsl-dcu.git] / net / ax25 / ax25_ds_timer.c
index 5961459935eb4f0d13497b4b6b0ecda79f7ca6dc..2ce79df00680eee3d9d290fd1156ac1d2ab74557 100644 (file)
@@ -40,13 +40,10 @@ static void ax25_ds_timeout(unsigned long);
  *     1/10th of a second.
  */
 
-static void ax25_ds_add_timer(ax25_dev *ax25_dev)
+void ax25_ds_setup_timer(ax25_dev *ax25_dev)
 {
-       struct timer_list *t = &ax25_dev->dama.slave_timer;
-       t->data         = (unsigned long) ax25_dev;
-       t->function     = &ax25_ds_timeout;
-       t->expires      = jiffies + HZ;
-       add_timer(t);
+       setup_timer(&ax25_dev->dama.slave_timer, ax25_ds_timeout,
+                   (unsigned long)ax25_dev);
 }
 
 void ax25_ds_del_timer(ax25_dev *ax25_dev)
@@ -60,10 +57,9 @@ void ax25_ds_set_timer(ax25_dev *ax25_dev)
        if (ax25_dev == NULL)           /* paranoia */
                return;
 
-       del_timer(&ax25_dev->dama.slave_timer);
        ax25_dev->dama.slave_timeout =
                msecs_to_jiffies(ax25_dev->values[AX25_VALUES_DS_TIMEOUT]) / 10;
-       ax25_ds_add_timer(ax25_dev);
+       mod_timer(&ax25_dev->dama.slave_timer, jiffies + HZ);
 }
 
 /*
@@ -85,7 +81,7 @@ static void ax25_ds_timeout(unsigned long arg)
                return;
        }
 
-       spin_lock_bh(&ax25_list_lock);
+       spin_lock(&ax25_list_lock);
        ax25_for_each(ax25, node, &ax25_list) {
                if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE))
                        continue;
@@ -93,7 +89,7 @@ static void ax25_ds_timeout(unsigned long arg)
                ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND);
                ax25_disconnect(ax25, ETIMEDOUT);
        }
-       spin_unlock_bh(&ax25_list_lock);
+       spin_unlock(&ax25_list_lock);
 
        ax25_dev_dama_off(ax25_dev);
 }
@@ -130,7 +126,7 @@ void ax25_ds_heartbeat_expiry(ax25_cb *ax25)
                 */
                if (sk != NULL) {
                        if (atomic_read(&sk->sk_rmem_alloc) <
-                           (sk->sk_rcvbuf / 2) &&
+                           (sk->sk_rcvbuf >> 1) &&
                            (ax25->condition & AX25_COND_OWN_RX_BUSY)) {
                                ax25->condition &= ~AX25_COND_OWN_RX_BUSY;
                                ax25->condition &= ~AX25_COND_ACK_PENDING;