linux/drivers/cxl
Quanquan Cao 026de45cd7 cxl/region:Fix overflow issue in alloc_hpa()
commit d76779dd36 upstream.

Creating a region with 16 memory devices caused a problem. The div_u64_rem
function, used for dividing an unsigned 64-bit number by a 32-bit one,
faced an issue when SZ_256M * p->interleave_ways. The result surpassed
the maximum limit of the 32-bit divisor (4G), leading to an overflow
and a remainder of 0.
note: At this point, p->interleave_ways is 16, meaning 16 * 256M = 4G

To fix this issue, I replaced the div_u64_rem function with div64_u64_rem
and adjusted the type of the remainder.

Signed-off-by: Quanquan Cao <caoqq@fujitsu.com>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Fixes: 23a22cd1c9 ("cxl/region: Allocate HPA capacity to regions")
Cc: <stable@vger.kernel.org>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-01-31 16:21:20 -08:00
..
core cxl/region:Fix overflow issue in alloc_hpa() 2024-01-31 16:21:20 -08:00
acpi.c cxl: Export QTG ids from CFMWS to sysfs as qos_class attribute 2023-10-27 20:48:02 -07:00
cxl.h cxl/port: Fix missing target list lock 2024-01-25 15:45:25 -08:00
cxlmem.h Merge branch 'for-6.7/cxl-rch-eh' into cxl/next 2023-10-31 10:59:00 -07:00
cxlpci.h cxl/pci: Find and register CXL PMU devices 2023-05-30 11:20:35 -07:00
Kconfig cxl: fix CONFIG_FW_LOADER dependency 2023-07-14 14:32:22 -06:00
Makefile cxl/pmem: Introduce nvdimm_security_ops with ->get_flags() operation 2022-11-30 16:30:47 -08:00
mem.c cxl/pci: Add RCH downstream port AER register discovery 2023-10-27 20:13:38 -07:00
pci.c Merge branch 'for-6.7/cxl' into cxl/next 2023-10-31 10:59:44 -07:00
pmem.c cxl/mbox: Move mailbox related driver state to its own data structure 2023-06-25 14:31:08 -07:00
pmu.h cxl/pci: Find and register CXL PMU devices 2023-05-30 11:20:35 -07:00
port.c cxl: Add support for reading CXL switch CDAT table 2023-10-27 20:48:02 -07:00
security.c Merge branch 'for-6.5/cxl-type-2' into for-6.5/cxl 2023-06-25 17:16:51 -07:00