Re: [PATCH] spi: s3c64xx: Don't free controller_data on non-dt platforms

2012-09-22 Thread Mark Brown
On Thu, Sep 13, 2012 at 04:31:30PM +0200, Sylwester Nawrocki wrote:
> When s3c64xx-spi is instantiated from device tree an instance of
> struct s3c64xx_spi_csinfo is dynamically allocated in the driver.

Applied, thanks.

--
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


RE: [PATCH] spi: s3c64xx: Don't free controller_data on non-dt platforms

2012-09-13 Thread Kukjin Kim
Sylwester Nawrocki wrote:
> 
> When s3c64xx-spi is instantiated from device tree an instance of
> struct s3c64xx_spi_csinfo is dynamically allocated in the driver.
> For non-dt platform it is passed from board code through
> spi_register_board_info(). On error path in s3c64xx_spi_setup()
> function there is an attempt to free this data struct
> s3c64xx_spi_csinfo object as it would have been allocated in the
> driver for both, dt and non-dt based platforms. This leads to
> following bug when gpio request fails:
> 
> spi spi1.0: Failed to get /CS gpio [21]: -16
> kernel BUG at mm/slub.c:3478!
> Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
> Modules linked in:
> CPU: 0Not tainted  (3.6.0-rc5-00092-g9b0b493-dirty #6111)
> PC is at kfree+0x148/0x158
> LR is at s3c64xx_spi_setup+0xac/0x290
> pc : []lr : []psr: 4013
> sp : ee043e10  ip : c032883c  fp : c0481f7c
> r10: ee0abd80  r9 : 0063  r8 : 
> r7 : ee129e78  r6 : ee104a00  r5 : fff0  r4 : c047bc64
> r3 : 4400  r2 : c047bc64  r1 : c04def60  r0 : 0004047b
> Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> Control: 10c5387d  Table: 4000404a  DAC: 0015
> Process swapper/0 (pid: 1, stack limit = 0xee0422f0)
> Stack: (0xee043e10 to 0xee044000)
> ...
> [] (kfree+0x148/0x158) from []
> (s3c64xx_spi_setup+0xac/0x290)
> [] (s3c64xx_spi_setup+0xac/0x290) from []
> (spi_setup+0x34/0x4c)
> [] (spi_setup+0x34/0x4c) from []
> (spi_add_device+0x98/0x128)
> [] (spi_add_device+0x98/0x128) from []
> (spi_new_device+0x74/0xa8)
> [] (spi_new_device+0x74/0xa8) from []
> (spi_match_master_to_boardinfo+0x24/0x44)
> [] (spi_match_master_to_boardinfo+0x24/0x44) from []
> (spi_register_master+0xf4/0x2a8)
> [] (spi_register_master+0xf4/0x2a8) from []
> (s3c64xx_spi_probe+0x34c/0x42c)
> [] (s3c64xx_spi_probe+0x34c/0x42c) from []
> (platform_drv_probe+0x18/0x1c)
> 
> There should be no attempt to kfree controller_data when it was
> externally provided through the board code. Fix this by freeing
> controller_data only when dev->of_node is not null.
> 
> Signed-off-by: Sylwester Nawrocki 
> Signed-off-by: Kyungmin Park 

Yes, correct. Need to check it.

Acked-by: Kukjin Kim 

Thanks.

Best regards,
Kgene.
--
Kukjin Kim , Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.


--
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general


[PATCH] spi: s3c64xx: Don't free controller_data on non-dt platforms

2012-09-13 Thread Sylwester Nawrocki
When s3c64xx-spi is instantiated from device tree an instance of
struct s3c64xx_spi_csinfo is dynamically allocated in the driver.
For non-dt platform it is passed from board code through
spi_register_board_info(). On error path in s3c64xx_spi_setup()
function there is an attempt to free this data struct
s3c64xx_spi_csinfo object as it would have been allocated in the
driver for both, dt and non-dt based platforms. This leads to
following bug when gpio request fails:

spi spi1.0: Failed to get /CS gpio [21]: -16
kernel BUG at mm/slub.c:3478!
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0Not tainted  (3.6.0-rc5-00092-g9b0b493-dirty #6111)
PC is at kfree+0x148/0x158
LR is at s3c64xx_spi_setup+0xac/0x290
pc : []lr : []psr: 4013
sp : ee043e10  ip : c032883c  fp : c0481f7c
r10: ee0abd80  r9 : 0063  r8 : 
r7 : ee129e78  r6 : ee104a00  r5 : fff0  r4 : c047bc64
r3 : 4400  r2 : c047bc64  r1 : c04def60  r0 : 0004047b
Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 10c5387d  Table: 4000404a  DAC: 0015
Process swapper/0 (pid: 1, stack limit = 0xee0422f0)
Stack: (0xee043e10 to 0xee044000)
...
[] (kfree+0x148/0x158) from [] 
(s3c64xx_spi_setup+0xac/0x290)
[] (s3c64xx_spi_setup+0xac/0x290) from [] 
(spi_setup+0x34/0x4c)
[] (spi_setup+0x34/0x4c) from [] (spi_add_device+0x98/0x128)
[] (spi_add_device+0x98/0x128) from [] 
(spi_new_device+0x74/0xa8)
[] (spi_new_device+0x74/0xa8) from [] 
(spi_match_master_to_boardinfo+0x24/0x44)
[] (spi_match_master_to_boardinfo+0x24/0x44) from [] 
(spi_register_master+0xf4/0x2a8)
[] (spi_register_master+0xf4/0x2a8) from [] 
(s3c64xx_spi_probe+0x34c/0x42c)
[] (s3c64xx_spi_probe+0x34c/0x42c) from [] 
(platform_drv_probe+0x18/0x1c)

There should be no attempt to kfree controller_data when it was
externally provided through the board code. Fix this by freeing
controller_data only when dev->of_node is not null.

Signed-off-by: Sylwester Nawrocki 
Signed-off-by: Kyungmin Park 
---
 drivers/spi/spi-s3c64xx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index d1c8441f..7f75d4e 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -976,7 +976,8 @@ err_msgq:
spi_set_ctldata(spi, NULL);

 err_gpio_req:
-   kfree(cs);
+   if (spi->dev.of_node)
+   kfree(cs);

return err;
 }
--
1.7.11.3


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
spi-devel-general mailing list
spi-devel-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/spi-devel-general