Adopt nvram module to reduce code duplication. This means CONFIG_NVRAM becomes available to PPC64 builds. Previously it was only available to PPC32 builds because it depended on CONFIG_GENERIC_NVRAM. The IOC_NVRAM_GET_OFFSET ioctl as implemented on PPC64 validates the offset returned by pmac_get_partition(). Do the same in the nvram module. Note that the old PPC32 generic_nvram module lacked this test. So when CONFIG_PPC32 && CONFIG_PPC_PMAC, the IOC_NVRAM_GET_OFFSET ioctl would have returned 0 (always). But when CONFIG_PPC64 && CONFIG_PPC_PMAC, the IOC_NVRAM_GET_OFFSET ioctl would have returned -1 (which is -EPERM) when the requested partition was not found. With this patch, the result is now -EINVAL on both PPC32 and PPC64 when the requested PowerMac NVRAM partition is not found. This is a userspace- visible change, in the non-existent partition case, which would be in an error path for an IOC_NVRAM_GET_OFFSET ioctl syscall. Tested-by: Stan Johnson <userm57@yahoo.com> Signed-off-by: Finn Thain <fthain@telegraphics.com.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20 lines
704 B
Makefile
20 lines
704 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
CFLAGS_bootx_init.o += -fPIC
|
|
CFLAGS_bootx_init.o += $(call cc-option, -fno-stack-protector)
|
|
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
# Do not trace early boot code
|
|
CFLAGS_REMOVE_bootx_init.o = $(CC_FLAGS_FTRACE)
|
|
endif
|
|
|
|
obj-y += pic.o setup.o time.o feature.o pci.o \
|
|
sleep.o low_i2c.o cache.o pfunc_core.o \
|
|
pfunc_base.o udbg_scc.o udbg_adb.o
|
|
obj-$(CONFIG_PMAC_BACKLIGHT) += backlight.o
|
|
# CONFIG_NVRAM is an arch. independent tristate symbol, for pmac32 we really
|
|
# need this to be a bool. Cheat here and pretend CONFIG_NVRAM=m is really
|
|
# CONFIG_NVRAM=y
|
|
obj-$(CONFIG_NVRAM:m=y) += nvram.o
|
|
obj-$(CONFIG_PPC32) += bootx_init.o
|
|
obj-$(CONFIG_SMP) += smp.o
|