Messages in this thread |  | | Subject | Re: [PATCH] 2.4.10-pre13: ATM drivers cause panic | Date | Sat, 22 Sep 2001 17:04:45 +0100 (BST) | From | Alan Cox <> |
| |
> seems a couple of spin_lock(s) and a spin_unlock was missing. > Why didn't this problem show up with earlier releases ??? > Anyways, please find a (quick) patch below. It would be great if this patch or > any other similar could make it into the next release!
How about
static struct atm_dev *alloc_atm_dev(const char *type) { struct atm_dev *dev;
dev = kmalloc(sizeof(*dev),GFP_KERNEL); if (!dev) return NULL; memset(dev,0,sizeof(*dev)); dev->type = type; dev->signal = ATM_PHY_SIG_UNKNOWN; dev->link_rate = ATM_OC3_PCR; dev->next = NULL;
spin_lock(&atm_dev_lock);
dev->prev = last_dev;
if (atm_devs) last_dev->next = dev; else atm_devs = dev; last_dev = dev; spin_unlock(&atm_dev_lock); return dev; }
instead. That seems to fix alloc_atm_dev safely. Refcounting wants adding to atm_dev objects too, its impossible currently to make atm_find_dev remotely safe
Alan
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |