Messages in this thread | | | Date | Thu, 02 Feb 2012 21:31:03 +0800 | From | Cong Wang <> | Subject | Re: [Patch] lkdtm: avoid calling lkdtm_do_action() with spin lock held |
| |
On 02/01/2012 11:29 PM, Arnd Bergmann wrote: > On Wednesday 01 February 2012, Cong Wang wrote: >> On 01/31/2012 11:35 PM, Arnd Bergmann wrote: >>> On Tuesday 31 January 2012, Cong Wang wrote: >>>> @@ -323,14 +323,16 @@ static void lkdtm_do_action(enum ctype which) >>>> } >>>> case CT_WRITE_AFTER_FREE: { >>>> size_t len = 1024; >>>> - u32 *data = kmalloc(len, GFP_KERNEL); >>>> + u32 *data = kmalloc(len, GFP_ATOMIC); >>>> >>>> kfree(data); >>>> - schedule(); >>>> + udelay(100); >>>> memset(data, 0x78, len); >>>> break; >>>> } >>> >>> I can't think of why the udelay would have any positive effect here, >>> if the idea of the schedule was to let some other process allocate and >>> use the memory. >> >> >> Hmm, on SMP udelay on this CPU will give a chance to other CPU's to use >> that memory, right? >> > > There is a small chance for that, but it's much less likely than it would > be using another process on the same CPU, plus it requires SMP.
Yeah, I updated this in [PATCH 2/2] lkdtm: avoid calling sleeping functions in interrupt context.
| |