]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/finish.c
changed usb vendor and product id.
[lincan.git] / lincan / src / finish.c
index 01d8b6beadc55dc898572c34bc4b92c6e4305138..5e789ae4e56bb36881f5772727389ae9edd85c25 100644 (file)
@@ -14,7 +14,7 @@
 #include "../include/finish.h"
 #include "../include/setup.h"
 
-
+extern int next_minor;
 /**
  * msgobj_done - destroys one CAN message object
  * @obj: pointer to CAN message object structure
@@ -37,8 +37,11 @@ void msgobj_done(struct msgobj_t *obj)
        }
 
        if((obj->minor>=0)) {
-               if(objects_p[obj->minor] == obj)
+               if(objects_p[obj->minor] == obj){
                        objects_p[obj->minor] = NULL;
+                       if (--next_minor<0)
+                               next_minor=0;
+               }
                else
                        CANMSG("msgobj_done: not registered as minor\n");
        }
@@ -66,8 +69,10 @@ void canchip_done(struct canchip_t *chip)
        int i;
        struct msgobj_t *obj;
 
-       if(chip->flags & CHIP_ATTACHED)
+       if(chip->flags & CHIP_ATTACHED){
                chip->chipspecops->release_chip(chip);
+               chip->flags &= ~CHIP_ATTACHED;
+       }
 
        if((chip->hostdevice) && (chip->chip_idx>=0)) {
                if(chip->hostdevice->chip[chip->chip_idx] == chip)