diff mbox

[01/31] arch/arm/mach-lpc32xx: use kmemdup rather than duplicating its implementation

Message ID 1438934377-4922-2-git-send-email-a.hajda@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Andrzej Hajda Aug. 7, 2015, 7:59 a.m. UTC
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(-)

Comments

Andrzej Hajda Sept. 16, 2015, 9:52 a.m. UTC | #1
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
Arnd Bergmann Sept. 16, 2015, 10:06 a.m. UTC | #2
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 mbox

Patch

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