* [PATCH][ATM] iphase stack usage cleanup
@ 2003-05-05 13:52 chas williams
0 siblings, 0 replies; only message in thread
From: chas williams @ 2003-05-05 13:52 UTC (permalink / raw)
To: davem; +Cc: linux-kernel
someone noted the iphase driver's stack usage. this
should take care of the biggest offender.
--- linux-2.5.68/drivers/atm/iphase.c.000 Mon May 5 08:43:18 2003
+++ linux-2.5.68/drivers/atm/iphase.c Mon May 5 09:41:56 2003
@@ -2789,11 +2789,15 @@
break;
case MEMDUMP_FFL:
{
- ia_regs_t regs_local;
- ffredn_t *ffL = ®s_local.ffredn;
- rfredn_t *rfL = ®s_local.rfredn;
+ ia_regs_t *regs_local;
+ ffredn_t *ffL;
+ rfredn_t *rfL;
if (!capable(CAP_NET_ADMIN)) return -EPERM;
+ regs_local = kmalloc(sizeof(*regs_local), GFP_KERNEL);
+ if (!regs_local) return -ENOMEM;
+ ffL = ®s_local->ffredn;
+ rfL = ®s_local->rfredn;
/* Copy real rfred registers into the local copy */
for (i=0; i<(sizeof (rfredn_t))/4; i++)
((u_int *)rfL)[i] = ((u_int *)iadev->reass_reg)[i] & 0xffff;
@@ -2801,8 +2805,11 @@
for (i=0; i<(sizeof (ffredn_t))/4; i++)
((u_int *)ffL)[i] = ((u_int *)iadev->seg_reg)[i] & 0xffff;
- if (copy_to_user(ia_cmds.buf, ®s_local,sizeof(ia_regs_t)))
+ if (copy_to_user(ia_cmds.buf, regs_local,sizeof(ia_regs_t))) {
+ kfree(regs_local);
return -EFAULT;
+ }
+ kfree(regs_local);
printk("Board %d registers dumped\n", board);
ia_cmds.status = 0;
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2003-05-05 13:41 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-05 13:52 [PATCH][ATM] iphase stack usage cleanup chas williams
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).