#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
}
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");
}
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)