Message ID | 1438934377-4922-2-git-send-email-a.hajda@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Ping. Regards Andrzej On 08/07/2015 09:59 AM, Andrzej Hajda wrote: > The patch was generated using fixed coccinelle semantic patch > scripts/coccinelle/api/memdup.cocci [1]. > > [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 > > Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> > --- > arch/arm/mach-lpc32xx/pm.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/mach-lpc32xx/pm.c b/arch/arm/mach-lpc32xx/pm.c > index 207e812..dd3a432 100644 > --- a/arch/arm/mach-lpc32xx/pm.c > +++ b/arch/arm/mach-lpc32xx/pm.c > @@ -87,7 +87,8 @@ static int lpc32xx_pm_enter(suspend_state_t state) > void *iram_swap_area; > > /* Allocate some space for temporary IRAM storage */ > - iram_swap_area = kmalloc(lpc32xx_sys_suspend_sz, GFP_KERNEL); > + iram_swap_area = kmemdup((void *)TEMP_IRAM_AREA, > + lpc32xx_sys_suspend_sz, GFP_KERNEL); > if (!iram_swap_area) { > printk(KERN_ERR > "PM Suspend: cannot allocate memory to save portion " > @@ -95,10 +96,6 @@ static int lpc32xx_pm_enter(suspend_state_t state) > return -ENOMEM; > } > > - /* Backup a small area of IRAM used for the suspend code */ > - memcpy(iram_swap_area, (void *) TEMP_IRAM_AREA, > - lpc32xx_sys_suspend_sz); > - > /* > * Copy code to suspend system into IRAM. The suspend code > * needs to run from IRAM as DRAM may no longer be available
On Wednesday 16 September 2015 11:52:37 Andrzej Hajda wrote: > > @@ -87,7 +87,8 @@ static int lpc32xx_pm_enter(suspend_state_t state) > > void *iram_swap_area; > > > > /* Allocate some space for temporary IRAM storage */ > > - iram_swap_area = kmalloc(lpc32xx_sys_suspend_sz, GFP_KERNEL); > > + iram_swap_area = kmemdup((void *)TEMP_IRAM_AREA, > > + lpc32xx_sys_suspend_sz, GFP_KERNEL); > > if (!iram_swap_area) { > > printk(KERN_ERR > > "PM Suspend: cannot allocate memory to save portion " > > @@ -95,10 +96,6 @@ static int lpc32xx_pm_enter(suspend_state_t state) > > return -ENOMEM; > > } > > > > - /* Backup a small area of IRAM used for the suspend code */ > > - memcpy(iram_swap_area, (void *) TEMP_IRAM_AREA, > > - lpc32xx_sys_suspend_sz); > Hmm, the patch looks correct in principle, but I think I'd rather leave the original version with the comment in place, because the source is not just random memory but instead some SRAM. We might want to use memcpy_fromio()/memcpy_toio here and remove the cast for both copies instead. Arnd
diff --git a/arch/arm/mach-lpc32xx/pm.c b/arch/arm/mach-lpc32xx/pm.c index 207e812..dd3a432 100644 --- a/arch/arm/mach-lpc32xx/pm.c +++ b/arch/arm/mach-lpc32xx/pm.c @@ -87,7 +87,8 @@ static int lpc32xx_pm_enter(suspend_state_t state) void *iram_swap_area; /* Allocate some space for temporary IRAM storage */ - iram_swap_area = kmalloc(lpc32xx_sys_suspend_sz, GFP_KERNEL); + iram_swap_area = kmemdup((void *)TEMP_IRAM_AREA, + lpc32xx_sys_suspend_sz, GFP_KERNEL); if (!iram_swap_area) { printk(KERN_ERR "PM Suspend: cannot allocate memory to save portion " @@ -95,10 +96,6 @@ static int lpc32xx_pm_enter(suspend_state_t state) return -ENOMEM; } - /* Backup a small area of IRAM used for the suspend code */ - memcpy(iram_swap_area, (void *) TEMP_IRAM_AREA, - lpc32xx_sys_suspend_sz); - /* * Copy code to suspend system into IRAM. The suspend code * needs to run from IRAM as DRAM may no longer be available
The patch was generated using fixed coccinelle semantic patch scripts/coccinelle/api/memdup.cocci [1]. [1]: http://permalink.gmane.org/gmane.linux.kernel/2014320 Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> --- arch/arm/mach-lpc32xx/pm.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)