Loading MAINTAINERS +1 −0 Original line number Diff line number Diff line Loading @@ -9569,6 +9569,7 @@ F: drivers/acpi/nfit/* F: include/linux/nd.h F: include/linux/libnvdimm.h F: include/uapi/linux/ndctl.h F: tools/testing/nvdimm/ LICENSES and SPDX stuff M: Thomas Gleixner <tglx@linutronix.de> Loading drivers/acpi/nfit/core.c +6 −4 Original line number Diff line number Diff line Loading @@ -360,7 +360,7 @@ static union acpi_object *acpi_label_info(acpi_handle handle) static u8 nfit_dsm_revid(unsigned family, unsigned func) { static const u8 revid_table[NVDIMM_FAMILY_MAX+1][32] = { static const u8 revid_table[NVDIMM_FAMILY_MAX+1][NVDIMM_CMD_MAX+1] = { [NVDIMM_FAMILY_INTEL] = { [NVDIMM_INTEL_GET_MODES] = 2, [NVDIMM_INTEL_GET_FWINFO] = 2, Loading @@ -386,7 +386,7 @@ static u8 nfit_dsm_revid(unsigned family, unsigned func) if (family > NVDIMM_FAMILY_MAX) return 0; if (func > 31) if (func > NVDIMM_CMD_MAX) return 0; id = revid_table[family][func]; if (id == 0) Loading Loading @@ -492,7 +492,8 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, * Check for a valid command. For ND_CMD_CALL, we also have to * make sure that the DSM function is supported. */ if (cmd == ND_CMD_CALL && !test_bit(func, &dsm_mask)) if (cmd == ND_CMD_CALL && (func > NVDIMM_CMD_MAX || !test_bit(func, &dsm_mask))) return -ENOTTY; else if (!test_bit(cmd, &cmd_mask)) return -ENOTTY; Loading Loading @@ -3494,7 +3495,8 @@ static int acpi_nfit_clear_to_send(struct nvdimm_bus_descriptor *nd_desc, if (nvdimm && cmd == ND_CMD_CALL && call_pkg->nd_family == NVDIMM_FAMILY_INTEL) { func = call_pkg->nd_command; if ((1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK) if (func > NVDIMM_CMD_MAX || (1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK) return -EOPNOTSUPP; } Loading drivers/acpi/nfit/nfit.h +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ | ACPI_NFIT_MEM_NOT_ARMED | ACPI_NFIT_MEM_MAP_FAILED) #define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_HYPERV #define NVDIMM_CMD_MAX 31 #define NVDIMM_STANDARD_CMDMASK \ (1 << ND_CMD_SMART | 1 << ND_CMD_SMART_THRESHOLD | 1 << ND_CMD_DIMM_FLAGS \ Loading drivers/nvdimm/bus.c +4 −2 Original line number Diff line number Diff line Loading @@ -1042,7 +1042,9 @@ static int __nd_ioctl(struct nvdimm_bus *nvdimm_bus, struct nvdimm *nvdimm, return -EFAULT; } if (!desc || (desc->out_num + desc->in_num == 0) || if (!desc || (desc->out_num + desc->in_num == 0) || cmd > ND_CMD_CALL || !test_bit(cmd, &cmd_mask)) return -ENOTTY; Loading tools/testing/nvdimm/Kbuild +2 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ DRIVERS := ../../../drivers NVDIMM_SRC := $(DRIVERS)/nvdimm ACPI_SRC := $(DRIVERS)/acpi/nfit DAX_SRC := $(DRIVERS)/dax ccflags-y := -I$(src)/$(NVDIMM_SRC)/ ccflags-y += -I$(src)/$(ACPI_SRC)/ ccflags-y := -I$(srctree)/drivers/nvdimm/ ccflags-y += -I$(srctree)/drivers/acpi/nfit/ obj-$(CONFIG_LIBNVDIMM) += libnvdimm.o obj-$(CONFIG_BLK_DEV_PMEM) += nd_pmem.o Loading Loading
MAINTAINERS +1 −0 Original line number Diff line number Diff line Loading @@ -9569,6 +9569,7 @@ F: drivers/acpi/nfit/* F: include/linux/nd.h F: include/linux/libnvdimm.h F: include/uapi/linux/ndctl.h F: tools/testing/nvdimm/ LICENSES and SPDX stuff M: Thomas Gleixner <tglx@linutronix.de> Loading
drivers/acpi/nfit/core.c +6 −4 Original line number Diff line number Diff line Loading @@ -360,7 +360,7 @@ static union acpi_object *acpi_label_info(acpi_handle handle) static u8 nfit_dsm_revid(unsigned family, unsigned func) { static const u8 revid_table[NVDIMM_FAMILY_MAX+1][32] = { static const u8 revid_table[NVDIMM_FAMILY_MAX+1][NVDIMM_CMD_MAX+1] = { [NVDIMM_FAMILY_INTEL] = { [NVDIMM_INTEL_GET_MODES] = 2, [NVDIMM_INTEL_GET_FWINFO] = 2, Loading @@ -386,7 +386,7 @@ static u8 nfit_dsm_revid(unsigned family, unsigned func) if (family > NVDIMM_FAMILY_MAX) return 0; if (func > 31) if (func > NVDIMM_CMD_MAX) return 0; id = revid_table[family][func]; if (id == 0) Loading Loading @@ -492,7 +492,8 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, * Check for a valid command. For ND_CMD_CALL, we also have to * make sure that the DSM function is supported. */ if (cmd == ND_CMD_CALL && !test_bit(func, &dsm_mask)) if (cmd == ND_CMD_CALL && (func > NVDIMM_CMD_MAX || !test_bit(func, &dsm_mask))) return -ENOTTY; else if (!test_bit(cmd, &cmd_mask)) return -ENOTTY; Loading Loading @@ -3494,7 +3495,8 @@ static int acpi_nfit_clear_to_send(struct nvdimm_bus_descriptor *nd_desc, if (nvdimm && cmd == ND_CMD_CALL && call_pkg->nd_family == NVDIMM_FAMILY_INTEL) { func = call_pkg->nd_command; if ((1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK) if (func > NVDIMM_CMD_MAX || (1 << func) & NVDIMM_INTEL_SECURITY_CMDMASK) return -EOPNOTSUPP; } Loading
drivers/acpi/nfit/nfit.h +1 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ | ACPI_NFIT_MEM_NOT_ARMED | ACPI_NFIT_MEM_MAP_FAILED) #define NVDIMM_FAMILY_MAX NVDIMM_FAMILY_HYPERV #define NVDIMM_CMD_MAX 31 #define NVDIMM_STANDARD_CMDMASK \ (1 << ND_CMD_SMART | 1 << ND_CMD_SMART_THRESHOLD | 1 << ND_CMD_DIMM_FLAGS \ Loading
drivers/nvdimm/bus.c +4 −2 Original line number Diff line number Diff line Loading @@ -1042,7 +1042,9 @@ static int __nd_ioctl(struct nvdimm_bus *nvdimm_bus, struct nvdimm *nvdimm, return -EFAULT; } if (!desc || (desc->out_num + desc->in_num == 0) || if (!desc || (desc->out_num + desc->in_num == 0) || cmd > ND_CMD_CALL || !test_bit(cmd, &cmd_mask)) return -ENOTTY; Loading
tools/testing/nvdimm/Kbuild +2 −2 Original line number Diff line number Diff line Loading @@ -21,8 +21,8 @@ DRIVERS := ../../../drivers NVDIMM_SRC := $(DRIVERS)/nvdimm ACPI_SRC := $(DRIVERS)/acpi/nfit DAX_SRC := $(DRIVERS)/dax ccflags-y := -I$(src)/$(NVDIMM_SRC)/ ccflags-y += -I$(src)/$(ACPI_SRC)/ ccflags-y := -I$(srctree)/drivers/nvdimm/ ccflags-y += -I$(srctree)/drivers/acpi/nfit/ obj-$(CONFIG_LIBNVDIMM) += libnvdimm.o obj-$(CONFIG_BLK_DEV_PMEM) += nd_pmem.o Loading