On Wed, 2 Dec 2015 09:07:01 -0600 Seth Jennings <sjenni...@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. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/