]> err.no Git - linux-2.6/blobdiff - net/irda/irlap_frame.c
[IPV4]: esp_output() misannotations
[linux-2.6] / net / irda / irlap_frame.c
index 3013c49ab975e865b593746911f0d88f2921c8b0..7c132d6342af5b5c9f992c5fcec50d96eb147b59 100644 (file)
@@ -18,7 +18,7 @@
  *     published by the Free Software Foundation; either version 2 of
  *     the License, or (at your option) any later version.
  *
- *     Neither Dag Brattli nor University of Tromsø admit liability nor
+ *     Neither Dag Brattli nor University of Tromsø admit liability nor
  *     provide warranty for any of this software. This material is
  *     provided "AS-IS" and at no charge.
  *
@@ -101,6 +101,13 @@ void irlap_queue_xmit(struct irlap_cb *self, struct sk_buff *skb)
 
        irlap_insert_info(self, skb);
 
+       if (unlikely(self->mode & IRDA_MODE_MONITOR)) {
+               IRDA_DEBUG(3, "%s(): %s is in monitor mode\n", __FUNCTION__,
+                          self->netdev->name);
+               dev_kfree_skb(skb);
+               return;
+       }
+
        dev_queue_xmit(skb);
 }
 
@@ -137,7 +144,7 @@ void irlap_send_snrm_frame(struct irlap_cb *self, struct qos_info *qos)
        frame->control = SNRM_CMD | PF_BIT;
 
        /*
-        *  If we are establishing a connection then insert QoS paramerters
+        *  If we are establishing a connection then insert QoS parameters
         */
        if (qos) {
                skb_put(tx_skb, 9); /* 25 left */
@@ -1319,6 +1326,9 @@ int irlap_driver_rcv(struct sk_buff *skb, struct net_device *dev,
        int command;
        __u8 control;
 
+       if (dev->nd_net != &init_net)
+               goto out;
+
        /* FIXME: should we get our own field? */
        self = (struct irlap_cb *) dev->atalk_ptr;