X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/a4c9ead4b64bd4de307f375c2ff313a7a07a06e0..1d20caee804d28a792dcacbf8424dc23b80c6370:/lincan/src/finish.c diff --git a/lincan/src/finish.c b/lincan/src/finish.c index 752b177..f10f309 100644 --- a/lincan/src/finish.c +++ b/lincan/src/finish.c @@ -32,7 +32,7 @@ void msgobj_done(struct msgobj_t *obj) if(obj->hostchip->msgobj[obj->object-1] == obj) obj->hostchip->msgobj[obj->object-1]=NULL; else - CANMSG("msgobj_done: not registered in the chip_t\n"); + CANMSG("msgobj_done: not registered in the canchip_t\n"); obj->hostchip=NULL; } @@ -60,12 +60,15 @@ void msgobj_done(struct msgobj_t *obj) * canchip_done - destroys one CAN chip representation * @chip: pointer to CAN chip structure */ -void canchip_done(struct chip_t *chip) +void canchip_done(struct canchip_t *chip) { int i; struct msgobj_t *obj; + if(chip->flags & CHIP_ATTACHED) + chip->chipspecops->release_chip(chip); + if((chip->hostdevice) && (chip->chip_idx>=0)) { if(chip->hostdevice->chip[chip->chip_idx] == chip) chip->hostdevice->chip[chip->chip_idx] = NULL; @@ -96,7 +99,7 @@ void canchip_done(struct chip_t *chip) void candevice_done(struct candevice_t *candev) { int i; - struct chip_t *chip; + struct canchip_t *chip; for(i=0; inr_all_chips; i++){ if((chip=candev->chip[i])==NULL)