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)
 | 
			
		||||
{
 | 
			
		||||
	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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue