Messages in this thread | | | Date | Wed, 2 Dec 2015 14:45:56 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH 3/3] drivers: memory: prohibit offlining of memory blocks with missing sections |
| |
On Wed, 2 Dec 2015 09:07:01 -0600 Seth Jennings <sjennings@variantweb.net> wrote:
> bdee237c and 982792c7 introduced large block sizes for x86. > This made it possible to have multiple sections per memory > block where previously, there was a only every one section > per block. > > Since blocks consist of contiguous ranges of section, there > can be holes in the blocks where sections are not present. > If one attempts to offline such a block, a crash occurs since > the code is not designed to deal with this. > > This patch is a quick fix to gaurd against the crash by > not allowing blocks with non-present sections to be offlined. > > ... > > --- a/drivers/base/memory.c > +++ b/drivers/base/memory.c > @@ -303,6 +303,10 @@ static int memory_subsys_offline(struct device *dev) > if (mem->state == MEM_OFFLINE) > return 0; > > + /* Can't offline block with non-present sections */ > + if (mem->section_count != sections_per_block) > + return -EINVAL; > + > return memory_block_change_state(mem, MEM_OFFLINE, MEM_ONLINE); > }
[3/3] fixes a kernel crash so I've tagged it for -stable and shall move it ahead of [1/2] and [2/2], which are merely cleanups.
This assumes that [3/3] is independent of the other two patches. I'll eat my hat if it isn't.
| |