port->num_frontends);
 
        for (i = 1; i <= port->num_frontends; i++) {
-               if (videobuf_dvb_alloc_frontend(dev,
+               if (videobuf_dvb_alloc_frontend(
                        &port->frontends, i) == NULL) {
                        printk(KERN_ERR "%s() failed to alloc\n", __func__);
                        return -ENOMEM;
 
        printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__, core->board.num_frontends);
 
        for (i = 1; i <= core->board.num_frontends; i++) {
-               demod = videobuf_dvb_alloc_frontend(dev, &dev->frontends, i);
+               demod = videobuf_dvb_alloc_frontend(&dev->frontends, i);
                if(demod == NULL) {
                        printk(KERN_ERR "%s() failed to alloc\n", __func__);
                        err = -ENOMEM;
 
 
        printk(KERN_INFO "%s() allocating 1 frontend\n", __func__);
 
-       if (videobuf_dvb_alloc_frontend(dev, &dev->frontends, 1) == NULL) {
+       if (videobuf_dvb_alloc_frontend(&dev->frontends, 1) == NULL) {
                printk(KERN_ERR "%s() failed to alloc\n", __func__);
                return -ENOMEM;
        }
 
                        dvb_dmx_release(&fe->dvb.demux);
                        dvb_unregister_frontend(fe->dvb.frontend);
                }
-               if(fe->dvb.frontend) {  /* always allocated, may have been reset */
+               if(fe->dvb.frontend) /* always allocated, may have been reset */
                        dvb_frontend_detach(fe->dvb.frontend);
-                       fe->dvb.frontend = NULL;
-               }
                list_del(list);
                kfree(fe);
        }
        return ret;
 }
 
-struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(void *private, struct videobuf_dvb_frontends *f, int id)
+struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(struct videobuf_dvb_frontends *f, int id)
 {
        struct videobuf_dvb_frontend *fe;
 
        if (fe == NULL)
                goto fail_alloc;
 
-       fe->dev = private;
        fe->id = id;
        mutex_init(&fe->dvb.lock);
 
 
 
 struct videobuf_dvb_frontend {
        struct list_head felist;
-       void *dev;
        int id;
        struct videobuf_dvb dvb;
 };
 
 int videobuf_dvb_register_frontend(struct dvb_adapter *adapter, struct videobuf_dvb *dvb);
 
-struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(void *private, struct videobuf_dvb_frontends *f, int id);
+struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(struct videobuf_dvb_frontends *f, int id);
 
 struct videobuf_dvb_frontend * videobuf_dvb_get_frontend(struct videobuf_dvb_frontends *f, int id);
 int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f, struct dvb_frontend *p);