Messages in this thread | | | From | Andy Lutomirski <> | Date | Mon, 31 Aug 2015 15:01:34 -0700 | Subject | Re: Why is irq_stack_union a union? |
| |
On Mon, Aug 31, 2015 at 2:47 PM, Brian Gerst <brgerst@gmail.com> wrote: > On Mon, Aug 31, 2015 at 5:00 PM, Andy Lutomirski <luto@amacapital.net> wrote: >> Why not just a struct? Also, why is this all tangled up in gsbase initialization? > > It has to do with the fact that the GCC stackprotector is hardcoded to > look for the canary at %gs:40. Since we also use %gs for the percpu > segment, we have to make sure that the canary is placed at the start > of the percpu section. Overlaying it onto the bottom of the IRQ stack > and was the most convenient way to do it, with a side benefit that > overflowing the stack will trip the canary.
Would a struct not make more sense, then?
--Andy
> > -- > Brian Gerst
-- Andy Lutomirski AMA Capital Management, LLC
| |