
From: "Antonino A. Daplas" <adaplas@hotpop.com>

Do a symbol_put() for each symbol_get() in savagefb.

Signed-off-by: Antonino Daplas <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/video/savage/savagefb-i2c.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletion(-)

diff -puN drivers/video/savage/savagefb-i2c.c~fbdev-do-a-symbol_put-for-each-symbol_get-in-savagefb drivers/video/savage/savagefb-i2c.c
--- 25/drivers/video/savage/savagefb-i2c.c~fbdev-do-a-symbol_put-for-each-symbol_get-in-savagefb	Thu Dec 23 14:11:12 2004
+++ 25-akpm/drivers/video/savage/savagefb-i2c.c	Thu Dec 23 14:11:12 2004
@@ -163,12 +163,15 @@ static int savage_setup_i2c_bus(struct s
 		udelay(20);
 
 		rc = add_bus(&chan->adapter);
+
 		if (rc == 0)
 			dev_dbg(&chan->par->pcidev->dev,
 				"I2C bus %s registered.\n", name);
 		else
 			dev_warn(&chan->par->pcidev->dev,
 				 "Failed to register I2C bus %s.\n", name);
+
+		symbol_put(i2c_bit_add_bus);
 	} else
 		chan->par = NULL;
 
@@ -212,8 +215,10 @@ void savagefb_delete_i2c_busses(struct f
 	int (*del_bus)(struct i2c_adapter *) =
 		symbol_get(i2c_bit_del_bus);
 
-	if (del_bus && par->chan.par)
+	if (del_bus && par->chan.par) {
 		del_bus(&par->chan.adapter);
+		symbol_put(i2c_bit_del_bus);
+	}
 
 	par->chan.par = NULL;
 }
@@ -239,6 +244,7 @@ static u8 *savage_do_probe_i2c_edid(stru
 
 	if (transfer && chan->par) {
 		buf = kmalloc(EDID_LENGTH, GFP_KERNEL);
+
 		if (buf) {
 			msgs[1].buf = buf;
 
@@ -249,6 +255,8 @@ static u8 *savage_do_probe_i2c_edid(stru
 				buf = NULL;
 			}
 		}
+
+		symbol_put(i2c_transfer);
 	}
 
 	return buf;
_
