Hrm, I thought the point of having pstore.buf pre-mapped was to allow Oopses to be able to write directly to it without needing to hit any additional kernel code. Maybe I'm misunderstanding this change, though. I'd like to see Tony's opinion on it.
Yes - the ERST backend needs to have a bunch of header ugliness (with special UUIDs) at the front of the buffer that is stored to non-volatile storage. So it allocates its own buffer with all that junk, and then passes the address of the plain data portion of the buffer on to the pstore layer.
As we add more backends, it might be that this is only applicable to ERST, and so it might make sense to have it copy the data from some other buffer into its specially crafted one. But we should not lose the "no allocations" property ... everything needed should be pre-allocated so we don't have to try to allocate any memory during a panic.
-Tony