wct4xxp: Do not lock interrupts while loading the VPM firmware.
Since the oct6100 API consumes less stack there is no longer a danger of overflowing our stack during load. Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9752 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
parent
a340db5e76
commit
b0a9e6f31d
@ -425,9 +425,6 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
|
|||||||
UINT32 ulResult;
|
UINT32 ulResult;
|
||||||
struct vpm450m *vpm450m;
|
struct vpm450m *vpm450m;
|
||||||
int x,y,law;
|
int x,y,law;
|
||||||
#ifdef CONFIG_4KSTACKS
|
|
||||||
unsigned long flags;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!(vpm450m = kmalloc(sizeof(struct vpm450m), GFP_KERNEL)))
|
if (!(vpm450m = kmalloc(sizeof(struct vpm450m), GFP_KERNEL)))
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -502,20 +499,9 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* I don't know what to curse more in this comment, the problems caused by
|
|
||||||
* the 4K kernel stack limit change or the octasic API for being so darn
|
|
||||||
* stack unfriendly. Stupid, stupid, stupid. So we disable IRQs so we
|
|
||||||
* don't run the risk of overflowing the stack while we initialize the
|
|
||||||
* octasic. */
|
|
||||||
#ifdef CONFIG_4KSTACKS
|
|
||||||
local_irq_save(flags);
|
|
||||||
#endif
|
|
||||||
ulResult = Oct6100ChipOpen(vpm450m->pApiInstance, ChipOpen);
|
ulResult = Oct6100ChipOpen(vpm450m->pApiInstance, ChipOpen);
|
||||||
if (ulResult != cOCT6100_ERR_OK) {
|
if (ulResult != cOCT6100_ERR_OK) {
|
||||||
printk(KERN_NOTICE "Failed to open chip, code %08x!\n", ulResult);
|
printk(KERN_NOTICE "Failed to open chip, code %08x!\n", ulResult);
|
||||||
#ifdef CONFIG_4KSTACKS
|
|
||||||
local_irq_restore(flags);
|
|
||||||
#endif
|
|
||||||
vfree(vpm450m->pApiInstance);
|
vfree(vpm450m->pApiInstance);
|
||||||
kfree(vpm450m);
|
kfree(vpm450m);
|
||||||
kfree(ChipOpen);
|
kfree(ChipOpen);
|
||||||
@ -572,9 +558,6 @@ struct vpm450m *init_vpm450m(void *wc, int *isalaw, int numspans, const struct f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_4KSTACKS
|
|
||||||
local_irq_restore(flags);
|
|
||||||
#endif
|
|
||||||
kfree(ChipOpen);
|
kfree(ChipOpen);
|
||||||
kfree(ChannelOpen);
|
kfree(ChannelOpen);
|
||||||
return vpm450m;
|
return vpm450m;
|
||||||
|
Loading…
Reference in New Issue
Block a user