Messages in this thread | | | Date | Fri, 28 Apr 2023 16:57:47 -0700 | From | Josh Poimboeuf <> | Subject | Re: [PATCH] x86/show_trace_log_lvl: ensure stack pointer is aligned, again |
| |
On Fri, Apr 28, 2023 at 08:55:13AM +0200, Oleg Nesterov wrote: > On 04/27, Josh Poimboeuf wrote: > > > > On Thu, Apr 27, 2023 at 04:00:54PM +0200, Oleg Nesterov wrote: > > > + stack = PTR_ALIGN(stack, sizeof(long)); > > > for ( ; stack; stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) { > > > const char *stack_name; > > > > Seems reasonable, though 'stack' is already initialized a few lines > > above this, so it would be cleaner to do the PTR_ALIGN then. Or even > > better, just move it all to the for loop: > > > > for (stack = PTR_ALIGN(stack ? : get_stack_pointer(task, regs)); > > stack; > > stack = PTR_ALIGN(stack_info.next_sp, sizeof(long))) { > > We decided to make the simplest one-liner fix, but I was thinking about > > for ( stack = stack ? : get_stack_pointer(task, regs); > (stack = PTR_ALIGN(stack, sizeof(long))); > stack = stack_info.next_sp) > { > ... > > to factout out the annoying PTR_ALIGN(). Will it work for you?
I'd rather not, that's a little *too* clever, IMO.
-- Josh
| |