mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
powerpc/fadump: define MIN_RMA in bytes rather than MB
The MIN_RMA size checks in fadump_setup_param_area() use (MIN_RMA * 1024 * 1024), which is evaluated in int and can overflow when MIN_RMA is increased to values such as SZ_2G, triggering compiler warnings such as: warning: integer overflow in expression of type 'int' results in '0' [-Woverflow] Define MIN_RMA directly in bytes using SZ_1M and update the callers accordingly. This avoids repeated unit conversions and prevents integer overflow. Also convert MIN_RMA back to MB when populating the firmware architecture vector, since firmware expects the value in MB. Suggested-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Signed-off-by: Sayali Patil <sayalip@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/310b040acef712fdc79e3e37d0f4c2213938b556.1781589284.git.sayalip@linux.ibm.com
This commit is contained in:
parent
4e1187e12d
commit
42f252f5a6
|
|
@ -12,12 +12,14 @@
|
|||
* Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp.
|
||||
*/
|
||||
#include <linux/types.h>
|
||||
#include <linux/sizes.h>
|
||||
#include <asm/firmware.h>
|
||||
|
||||
struct device_node;
|
||||
struct property;
|
||||
|
||||
#define MIN_RMA 768 /* Minimum RMA (in MB) for CAS negotiation */
|
||||
/* Minimum RMA in bytes for CAS negotiation */
|
||||
#define MIN_RMA (768ULL * SZ_1M)
|
||||
|
||||
#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */
|
||||
#define OF_DT_END_NODE 0x2 /* End node */
|
||||
|
|
|
|||
|
|
@ -1759,10 +1759,10 @@ void __init fadump_setup_param_area(void)
|
|||
* 2. The range should be between MIN_RMA and RMA size (ppc64_rma_size)
|
||||
* 3. It must not overlap with the fadump reserved area.
|
||||
*/
|
||||
if (ppc64_rma_size < MIN_RMA*1024*1024)
|
||||
if (ppc64_rma_size < MIN_RMA)
|
||||
return;
|
||||
|
||||
range_start = MIN_RMA * 1024 * 1024;
|
||||
range_start = MIN_RMA;
|
||||
range_end = min(ppc64_rma_size, fw_dump.boot_mem_top);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1061,7 +1061,7 @@ static const struct ibm_arch_vec ibm_architecture_vec_template __initconst = {
|
|||
.virt_base = cpu_to_be32(0xffffffff),
|
||||
.virt_size = cpu_to_be32(0xffffffff),
|
||||
.load_base = cpu_to_be32(0xffffffff),
|
||||
.min_rma = cpu_to_be32(MIN_RMA),
|
||||
.min_rma = cpu_to_be32(MIN_RMA / SZ_1M),
|
||||
.min_load = cpu_to_be32(0xffffffff), /* full client load */
|
||||
.min_rma_percent = 0, /* min RMA percentage of total RAM */
|
||||
.max_pft_size = 48, /* max log_2(hash table size) */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user