]> rtime.felk.cvut.cz Git - socketcan-devel.git/commitdiff
apply patches from Marc for the 2.6 kernel to the 2.4 kernel.
authorthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Sun, 11 Jun 2006 18:41:06 +0000 (18:41 +0000)
committerthuermann <thuermann@030b6a49-0b11-0410-94ab-b0dab22257f2>
Sun, 11 Jun 2006 18:41:06 +0000 (18:41 +0000)
git-svn-id: svn://svn.berlios.de//socketcan/trunk@31 030b6a49-0b11-0410-94ab-b0dab22257f2

kernel/2.4/can/af_can.c
kernel/2.4/can/bcm.c
kernel/2.4/can/raw.c

index 2e5df2cbd5ecdd062b727c40e33cab207c379e0f..1761abc3b51794053b09dab721978baca270e296 100644 (file)
@@ -208,7 +208,7 @@ void can_proto_unregister(int proto)
 void can_dev_register(struct net_device *dev,
                      void (*func)(unsigned long msg, void *), void *data)
 {
-    struct notifier_list *p = kmalloc(GFP_KERNEL, sizeof(*p));
+    struct notifier_list *p = kmalloc(sizeof(*p), GFP_KERNEL);
 
     DBG("called for %s\n", dev->name);
 
@@ -409,7 +409,7 @@ void can_rx_register(struct net_device *dev, canid_t can_id, canid_t mask,
 
     /* insert   (dev,canid,mask) -> (func,data) */
     if (!(p = kmalloc(sizeof(struct rcv_list), GFP_KERNEL)))
-       return;
+       goto out;
 
     p->can_id  = can_id;
     p->mask    = mask;
index 046f2999759eaa612f554a37688a5ecef119c07b..3fdb5e66c008509abdb9ac0eb97c359552e84312 100644 (file)
@@ -718,8 +718,10 @@ static int bcm_sendmsg(struct socket *sock, struct msghdr *msg, int size,
                /* for the throttle functionality */
 
                /* create array for received can_frames */
-               if (!(op->last_frames = kmalloc(sizeof(struct can_frame), GFP_KERNEL)))
+               if (!(op->last_frames = kmalloc(sizeof(struct can_frame), GFP_KERNEL))) {
+                   kfree(op);
                    return -ENOMEM;
+               }
 
                /* clear received can_frames to indicate 'nothing received' */
                memset(op->last_frames, 0, sizeof(struct can_frame));
index be3a6e5a4090b13dced8c2f09d2f15a45bc8c5f2..7d11a1595b153bc81a6774ddd5986cabd12c570a 100644 (file)
@@ -471,6 +471,7 @@ static int raw_sendmsg(struct socket *sock, struct msghdr *msg, int size,
     skb = alloc_skb(size, GFP_KERNEL);
     if ((err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size)) < 0) {
        kfree_skb(skb);
+       dev_put(dev);
        return err;
     }
     skb->dev = dev;