ddr: altera: soc64: Integer fix overflow that caused DDR size mismatched
authorDinesh Maniyam <dinesh.maniyam@intel.com>
Wed, 1 Jun 2022 10:49:02 +0000 (18:49 +0800)
committerTien Fong Chee <tien.fong.chee@intel.com>
Fri, 17 Jun 2022 08:27:05 +0000 (16:27 +0800)
Convert the constant integer to 'phys_size_t' to avoid overflow
when calculating the SDRAM size.

Signed-off-by: Dinesh Maniyam <dinesh.maniyam@intel.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@intel.com>
drivers/ddr/altera/sdram_soc64.c

index d6baac2..9b1710c 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (C) 2016-2021 Intel Corporation <www.intel.com>
+ * Copyright (C) 2016-2022 Intel Corporation <www.intel.com>
  *
  */
 
@@ -239,7 +239,8 @@ phys_size_t sdram_calculate_size(struct altera_sdram_plat *plat)
 {
        u32 dramaddrw = hmc_readl(plat, DRAMADDRW);
 
-       phys_size_t size = 1 << (DRAMADDRW_CFG_CS_ADDR_WIDTH(dramaddrw) +
+       phys_size_t size = (phys_size_t)1 <<
+                       (DRAMADDRW_CFG_CS_ADDR_WIDTH(dramaddrw) +
                         DRAMADDRW_CFG_BANK_GRP_ADDR_WIDTH(dramaddrw) +
                         DRAMADDRW_CFG_BANK_ADDR_WIDTH(dramaddrw) +
                         DRAMADDRW_CFG_ROW_ADDR_WIDTH(dramaddrw) +