From 5de267b299829b99990305ad0440753bb8aa3de2 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Wed, 11 Jan 2017 14:41:40 +0100 Subject: [PATCH 1/2] ARM: mv78xx0: fix possible PCI buffer overflow gcc-7.0 reports a potential array overflow: arch/arm/mach-mv78xx0/pcie.c: In function 'mv78xx0_pcie_preinit': arch/arm/mach-mv78xx0/pcie.c:81:4: error: output may be truncated before the last format character [-Werror=format-truncation=] I haven't checked if this can actually happen, but making the array one 32-bit word longer addresses the warning and makes it completely safe. Signed-off-by: Arnd Bergmann Signed-off-by: Gregory CLEMENT --- arch/arm/mach-mv78xx0/pcie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-mv78xx0/pcie.c b/arch/arm/mach-mv78xx0/pcie.c index 13a7d72ee0c4..81ff4327a962 100644 --- a/arch/arm/mach-mv78xx0/pcie.c +++ b/arch/arm/mach-mv78xx0/pcie.c @@ -29,7 +29,7 @@ struct pcie_port { u8 root_bus_nr; void __iomem *base; spinlock_t conf_lock; - char mem_space_name[16]; + char mem_space_name[20]; struct resource res; }; From f2591b993ec95fd8d67c68187f07f30c9d79b38c Mon Sep 17 00:00:00 2001 From: Bhumika Goyal Date: Mon, 9 Jan 2017 22:04:50 +0530 Subject: [PATCH 2/2] soc: dove: constify reset_control_ops structures Declare reset_control_ops as const as they are only stored in the ops field of a reset_controller_dev structure. This field is of type const struct reset_control_ops *, so reset_control_ops structures having this property can be declared as const. Done using Coccinelle: @r1 disable optional_qualifier@ identifier i; position p; @@ static struct reset_control_ops i@p={...}; @ok1@ identifier r1.i; position p; struct reset_controller_dev x; @@ x.ops=&i@p; @bad@ position p!={r1.p,ok1.p}; identifier r1.i; @@ i@p @depends on !bad disable optional_qualifier@ identifier r1.i; @@ +const struct reset_control_ops i; File size before: drivers/soc/dove/pmu.o text data bss dec hex filename 2447 112 16 2575 a0f drivers/soc/dove/pmu.o File size after: drivers/soc/dove/pmu.o text data bss dec hex filename 2479 80 16 2575 a0f drivers/soc/dove/pmu.o Signed-off-by: Bhumika Goyal Acked-by: Russell King Signed-off-by: Gregory CLEMENT --- drivers/soc/dove/pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/soc/dove/pmu.c b/drivers/soc/dove/pmu.c index 039374e9fdc0..95d77ec5c5d7 100644 --- a/drivers/soc/dove/pmu.c +++ b/drivers/soc/dove/pmu.c @@ -87,7 +87,7 @@ static int pmu_reset_deassert(struct reset_controller_dev *rc, unsigned long id) return 0; } -static struct reset_control_ops pmu_reset_ops = { +static const struct reset_control_ops pmu_reset_ops = { .reset = pmu_reset_reset, .assert = pmu_reset_assert, .deassert = pmu_reset_deassert,