fdc and callout_*()

Matthew Dillon dillon at apollo.backplane.com
Tue Oct 12 11:24:38 PDT 2004


:doing a fdformat, with ACPI off to even get fdc0 to work, I get:
:
:callout_reset(0xc14f0054) from 0xc02ecdea: callout was not initialized
:callout_reset(c03111c0,c14f0054,c02ecdea,c14f0054) at callout_reset+0x2d
:callout_reset(c14f0054,c,c02ec3ec,c14effb8,c14effb8) at callout_reset+0x2d
:fdstate(c14effb8) at fdstate+0x886
:fdc_intr(c14effb8,68c440,0,18,cf45fd84) at fdc_intr+0xe
:intr_mux(c03c9178) at intr_mux+0x21
:ithread_handler(6,0,0,0,0) at ithread_handler+0x7a
:lwkt_exit() at lwkt_exit
:
:-- 
:Jeroen Ruigrok van der Werven <asmodai(at)wxs.nl> / asmodai / kita no mono
:Free Tibet! http://www.savetibet.org/ | http://ashemedai.deviantart.com/

    Try this patch, tell me if it works.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

Index: fd.c
===================================================================
RCS file: /cvs/src/sys/dev/disk/fd/fd.c,v
retrieving revision 1.19
diff -u -r1.19 fd.c
--- fd.c	19 Sep 2004 00:36:37 -0000	1.19
+++ fd.c	12 Oct 2004 18:22:29 -0000
@@ -543,6 +543,7 @@
 	ispcmcia = (fdc->flags & FDC_ISPCMCIA) != 0;
 	fdc->rid_ioport = fdc->rid_irq = fdc->rid_drq = 0;
 	fdc->res_ioport = fdc->res_irq = fdc->res_drq = 0;
+	callout_init(&fdc->pseudointr_ch);
 
 	/*
 	 * On standard ISA, we don't just use an 8 port range
@@ -642,6 +643,7 @@
 {
 	device_t dev;
 
+	callout_stop(&fdc->pseudointr_ch);
 	dev = fdc->fdc_dev;
 	if (fdc->res_irq != 0) {
 		bus_deactivate_resource(dev, SYS_RES_IRQ, fdc->rid_irq,





More information about the Bugs mailing list