mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	sdhci-s3c: add missing remove function
System will crash sooner or later once the memory with the code of the s3c-sdhci.ko module is reused for something else. I really have no idea how the lack of remove function went unnoticed into the mainline code. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									d45840d9f0
								
							
						
					
					
						commit
						9d51a6b248
					
				
					 1 changed files with 20 additions and 0 deletions
				
			
		| 
						 | 
					@ -365,6 +365,26 @@ static int __devinit sdhci_s3c_probe(struct platform_device *pdev)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int __devexit sdhci_s3c_remove(struct platform_device *pdev)
 | 
					static int __devexit sdhci_s3c_remove(struct platform_device *pdev)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						struct sdhci_host *host =  platform_get_drvdata(pdev);
 | 
				
			||||||
 | 
						struct sdhci_s3c *sc = sdhci_priv(host);
 | 
				
			||||||
 | 
						int ptr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sdhci_remove_host(host, 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (ptr = 0; ptr < 3; ptr++) {
 | 
				
			||||||
 | 
							clk_disable(sc->clk_bus[ptr]);
 | 
				
			||||||
 | 
							clk_put(sc->clk_bus[ptr]);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						clk_disable(sc->clk_io);
 | 
				
			||||||
 | 
						clk_put(sc->clk_io);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						iounmap(host->ioaddr);
 | 
				
			||||||
 | 
						release_resource(sc->ioarea);
 | 
				
			||||||
 | 
						kfree(sc->ioarea);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						sdhci_free_host(host);
 | 
				
			||||||
 | 
						platform_set_drvdata(pdev, NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue