Remove the internal driver use_count in ds.c, as the reference counting
is done in the module core anyways, and that reference count is available
for cardmgr's usage by a call to module_refcount. And if
!CONFIG_MODULE_UNLOAD, rmmod is useless anyways, so avoid that call by
cardmgr at all.

Signed-off-by: Dominik Brodowski <linux@brodo.de>
Index: 2.6.10-rc3/drivers/pcmcia/ds.c
===================================================================
--- 2.6.10-rc3.orig/drivers/pcmcia/ds.c	2004-12-13 15:57:55.263233940 +0100
+++ 2.6.10-rc3/drivers/pcmcia/ds.c	2004-12-13 15:59:07.844165082 +0100
@@ -285,7 +285,6 @@
 	if (!driver)
 		return -EINVAL;
 
- 	driver->use_count = 0;
 	driver->drv.bus = &pcmcia_bus_type;
 
 	return driver_register(&driver->drv);
@@ -307,10 +306,16 @@
 static int proc_read_drivers_callback(struct device_driver *driver, void *d)
 {
 	char **p = d;
-	struct pcmcia_driver *p_dev = container_of(driver, 
+	struct pcmcia_driver *p_drv = container_of(driver,
 						   struct pcmcia_driver, drv);
 
-	*p += sprintf(*p, "%-24.24s 1 %d\n", driver->name, p_dev->use_count);
+	*p += sprintf(*p, "%-24.24s 1 %d\n", p_drv->drv.name,
+#ifdef CONFIG_MODULE_UNLOAD
+		      (p_drv->owner) ? module_refcount(p_drv->owner) : 1
+#else
+		      1
+#endif
+	);
 	d = (void *) p;
 
 	return 0;
@@ -593,7 +598,6 @@
 	/* finally here the parent client is registered */
 	s->parent->clients = client;
 
-	p_drv->use_count++;
 	if (p_drv->attach) {
 		p_dev->instance = p_drv->attach();
 		if (!p_dev->instance) {
@@ -727,7 +731,6 @@
 			/* detach the "instance" */
 			p_drv = to_pcmcia_drv(p_dev->dev.driver);
 			if (p_drv) {
-				p_drv->use_count--;
 				if ((p_drv->detach) && (p_dev->instance))
 					p_drv->detach(p_dev->instance);
 				module_put(p_drv->owner);
Index: 2.6.10-rc3/include/pcmcia/ds.h
===================================================================
--- 2.6.10-rc3.orig/include/pcmcia/ds.h	2004-12-13 15:56:08.055133414 +0100
+++ 2.6.10-rc3/include/pcmcia/ds.h	2004-12-13 15:59:07.845164942 +0100
@@ -132,7 +132,6 @@
 extern struct bus_type pcmcia_bus_type;
 
 struct pcmcia_driver {
-	int			use_count;
 	dev_link_t		*(*attach)(void);
 	void			(*detach)(dev_link_t *);
 	struct module		*owner;