/* Unregisters the driver from the system and deallocates the driver structure @drv and all structures referenced from it. All devices should be shut down before calling this.  */
void gigaset_freedriver(struct gigaset_driver *drv)
/* Unregisters the driver from the system and deallocates the driver structure @drv and all structures referenced from it. All devices should be shut down before calling this.  */
void gigaset_freedriver(struct gigaset_driver *drv)
{
	unsigned long flags;
	spin_lock_irqsave(&driver_lock, flags);
	list_del(&drv->list);
	spin_unlock_irqrestore(&driver_lock, flags);
	gigaset_if_freedriver(drv);
	kfree(drv->cs);
	kfree(drv);
}