patch-2.4.0-test8 linux/drivers/pcmcia/yenta.c

Next file: linux/drivers/pnp/isapnp.c
Previous file: linux/drivers/pcmcia/rsrc_mgr.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test7/linux/drivers/pcmcia/yenta.c linux/drivers/pcmcia/yenta.c
@@ -438,7 +438,7 @@
 	u8 csc;
 	u32 cb_event;
 	unsigned int events;
-	
+
 	/* Clear interrupt status for the event */
 	cb_event = cb_readl(socket, CB_SOCKET_EVENT);
 	cb_writel(socket, CB_SOCKET_EVENT, cb_event);
@@ -552,6 +552,12 @@
 	daemonize();
 	strcpy(current->comm, "CardBus Watcher");
 
+	if (request_irq(socket->cb_irq, yenta_interrupt, SA_SHIRQ, socket->dev->name, socket)) {
+		printk ("Yenta: unable to register irq %d\n", socket->cb_irq);
+		MOD_DEC_USE_COUNT;
+		return (1);
+	}
+
 	/* Figure out what the dang thing can do for the PCMCIA layer... */
 	yenta_get_socket_capabilities(socket, isa_interrupts);
 	printk("Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));
@@ -808,8 +814,7 @@
 	/* Set up the bridge regions.. */
 	yenta_allocate_resources(socket);
 
-	if (dev->irq && !request_irq(dev->irq, yenta_interrupt, SA_SHIRQ, dev->name, socket))
-		socket->cb_irq = dev->irq;
+	socket->cb_irq = dev->irq;
 
 	/* Do we have special options for the device? */
 	for (i = 0; i < NR_OVERRIDES; i++) {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)