linux_dsm_epyc7002/drivers
Mauro Carvalho Chehab deb09ddaff sb_edac: Avoid overflow errors at memory size calculation
Sandy bridge EDAC is calculating the memory size with overflow.
Basically, the size field and the integer calculation is using 32 bits.
More bits are needed, when the DIMM memories have high density.

The net result is that memories are improperly reported there, when
high-density DIMMs are used:

EDAC DEBUG: in drivers/edac/sb_edac.c, line at 591: mc#0: channel 0, dimm 0, -16384 Mb (-4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800
EDAC DEBUG: in drivers/edac/sb_edac.c, line at 591: mc#0: channel 1, dimm 0, -16384 Mb (-4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800

As the number of pages value is handled at the EDAC core as unsigned
ints, the driver shows the 16 GB memories at sysfs interface as 16760832
MB! The fix is simple: calculate the number of pages as unsigned 64-bits
integer.

After the patch, the memory size (16 GB) is properly detected:

EDAC DEBUG: in drivers/edac/sb_edac.c, line at 592: mc#0: channel 0, dimm 0, 16384 Mb (4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800
EDAC DEBUG: in drivers/edac/sb_edac.c, line at 592: mc#0: channel 1, dimm 0, 16384 Mb (4194304 pages) bank: 8, rank: 2, row: 0x10000, col: 0x800

Cc: stable@kernel.org
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-09-25 07:38:20 -03:00
..
accessibility
acpi ACPI / PM: Use KERN_DEBUG when no power resources are found 2012-09-14 20:54:44 +02:00
amba Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-07-27 15:14:26 -07:00
ata ahci: Add identifiers for ASM106x devices 2012-09-13 00:24:29 -04:00
atm drivers/atm/iphase.c: fix error return code 2012-08-06 13:29:57 -07:00
auxdisplay
base mm: cma: fix alignment requirements for contiguous regions 2012-08-28 21:01:01 +02:00
bcma bcma: BCM43228 support 2012-08-02 13:51:46 -04:00
block Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-09-21 14:32:55 -07:00
bluetooth Bluetooth: Add support for Apple vendor-specific devices 2012-08-27 08:36:42 -05:00
cdrom
char drm/i915: fix hsw uncached pte 2012-08-17 09:21:35 +02:00
clk ARM: 7537/1: clk: Fix release in devm_clk_put() 2012-09-19 21:51:27 +01:00
clocksource cs5535-clockevt: typo, it's MFGPT, not MFPGT 2012-08-21 16:45:02 -07:00
connector
cpufreq Merge branch 'for-3.6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-09-19 11:00:07 -07:00
cpuidle cpuidle: Prevent null pointer dereference in cpuidle_coupled_cpu_notify 2012-08-17 19:37:08 +02:00
crypto Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2012-09-12 07:14:17 +08:00
dca
devfreq
dio
dma DMA: PL330: Check the pointer returned by kzalloc 2012-09-18 09:04:52 +05:30
edac sb_edac: Avoid overflow errors at memory size calculation 2012-09-25 07:38:20 -03:00
eisa
extcon This is the remaining MFD fixes for 3.6, with 5 pending fixes: 2012-09-16 13:22:21 -07:00
firewire - Small fixes and optimizations. 2012-07-30 09:32:39 -07:00
firmware This patch series contains a major revamp of how we collect entropy 2012-07-31 19:07:42 -07:00
gpio gpio: rdc321x: Prevent removal of modules exporting active GPIOs 2012-09-01 12:52:24 +02:00
gpu drm/nouveau: add dmi quirk for gpio reset 2012-09-21 10:17:15 -04:00
hid HID: Fix logitech-dj: missing Unifying device issue 2012-09-22 10:58:48 +02:00
hsi
hv This patch series contains a major revamp of how we collect entropy 2012-07-31 19:07:42 -07:00
hwmon hwmon: (fam15h_power) Tweak runavg_range on resume 2012-09-23 20:54:09 +02:00
hwspinlock hwspinlock/core: move the dereference below the NULL test 2012-09-10 13:19:25 +03:00
i2c Merge branch 'i2c-embedded/for-current' of git://git.pengutronix.de/git/wsa/linux 2012-09-14 17:55:57 -07:00
ide ide: fix generic_ide_suspend/resume Oops 2012-08-21 14:54:42 -07:00
idle intel_idle: Check cpu_idle_get_driver() for NULL before dereferencing it. 2012-08-17 19:37:14 +02:00
ieee802154
iio drivers/iio/adc/at91_adc.c: adjust inconsistent IS_ERR and PTR_ERR 2012-08-27 21:15:25 +01:00
infiniband Merge branches 'cxgb4', 'ipoib', 'mlx4', 'ocrdma' and 'qib' into for-next 2012-09-14 10:42:52 -07:00
input Input: edt-ft5x06 - return -EFAULT on copy_to_user() error 2012-09-19 16:00:26 -07:00
iommu iommu/amd: Fix wrong check for ARRAY_SIZE() 2012-08-10 11:34:08 +02:00
isdn mISDN: Fix wrong usage of flush_work_sync while holding locks 2012-09-13 14:58:54 -04:00
leds leds: renesas: fix error handling 2012-08-13 14:34:02 +08:00
lguest
macintosh
md md: make sure metadata is updated when spares are activated or removed. 2012-09-19 12:54:22 +10:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2012-08-21 16:54:38 -07:00
memory
memstick
message drivers/message/i2o/i2o_config.c: bound allocation 2012-07-30 17:25:17 -07:00
mfd This is the remaining MFD fixes for 3.6, with 5 pending fixes: 2012-09-16 13:22:21 -07:00
misc drivers/misc/sgi-xp/xpc_uv.c: SGI XPC fails to load when cpu 0 is out of IRQ resources 2012-08-21 16:45:03 -07:00
mmc mmc: omap: fix broken PIO mode 2012-09-04 13:58:11 -04:00
mtd UBI: fix a horrible memory deallocation bug 2012-09-04 09:40:26 +03:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-09-21 14:32:55 -07:00
nfc
nubus
of dt: introduce for_each_available_child_of_node, of_get_next_available_child 2012-08-20 02:16:00 -07:00
oprofile
parisc PCI changes for the 3.6 merge window: 2012-07-24 16:17:07 -07:00
parport
pci PCI: Don't print anything while decoding is disabled 2012-08-23 10:53:08 -06:00
pcmcia Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-07-27 15:14:26 -07:00
pinctrl pinctrl/nomadik: add kp_b_2 keyboard function group list 2012-08-17 11:09:58 +02:00
platform thinkpad_acpi: buffer overflow in fan_get_status() 2012-09-13 16:46:31 -04:00
pnp
power Merge branch 'for-linus-3.6' of git://dev.laptop.org/users/dilinger/linux-olpc 2012-08-02 11:52:39 -07:00
pps pps: return PTR_ERR on error in device_create 2012-07-30 17:25:21 -07:00
ps3
ptp
pwm pwm: pwm-tiehrpwm: Fix conflicting channel period setting 2012-09-10 17:04:38 +02:00
rapidio rapidio/tsi721: fix unused variable compiler warning 2012-08-21 16:45:03 -07:00
regulator This is the remaining MFD fixes for 3.6, with 5 pending fixes: 2012-09-16 13:22:21 -07:00
remoteproc A batch of remoteproc patches for 3.6: 2012-07-26 16:19:08 -07:00
rpmsg rpmsg: fix dma_free_coherent dev parameter 2012-09-12 12:03:57 +03:00
rtc drivers/rtc/rtc-twl.c: ensure all interrupts are disabled during probe 2012-09-17 15:00:38 -07:00
s390 s390/dasd: fix read unit address configuration loop 2012-09-17 09:58:21 +02:00
sbus
scsi [SCSI] hpsa: fix handling of protocol error 2012-09-18 12:29:30 +01:00
sfi
sh sh: pfc: Release spinlock in sh_pfc_gpio_request_enable() error path 2012-09-18 16:54:46 +09:00
sn
spi Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2012-08-25 11:45:04 -07:00
ssb
staging This is the remaining MFD fixes for 3.6, with 5 pending fixes: 2012-09-16 13:22:21 -07:00
target target: go through normal processing for zero-length REQUEST_SENSE 2012-09-07 11:32:54 -07:00
tc
thermal The tag contains just a few battery-related changes for v3.6. It's is 2012-07-31 18:08:25 -07:00
tty tty: serial: imx: don't reinit clock in imx_setup_ufcr() 2012-09-05 12:44:44 -07:00
uio
usb Merge branch 'chipidea-stable' into usb-linus 2012-09-12 11:12:31 -07:00
uwb
vfio vfio: grab vfio_device reference *before* exposing the sucker via fd_install() 2012-08-22 10:26:42 -04:00
vhost tcm_vhost: Fix vhost_scsi_target structure alignment 2012-08-20 14:52:11 -07:00
video OMAPFB: fix framebuffer console colors 2012-08-23 12:37:22 +00:00
virt
virtio
vlynq
vme
w1 1-Wire: Add support for the maxim ds1825 temperature sensor 2012-08-16 12:33:59 -07:00
watchdog watchdog: move the dereference below the NULL test 2012-09-10 17:33:17 +02:00
xen xen/m2p: do not reuse kmap_op->dev_bus_addr 2012-09-12 11:21:40 -04:00
zorro
Kconfig vfio: VFIO core 2012-07-31 08:16:22 -06:00
Makefile vfio: VFIO core 2012-07-31 08:16:22 -06:00