From owner-freebsd-bugs Wed Dec 9 09:10:03 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA03010 for freebsd-bugs-outgoing; Wed, 9 Dec 1998 09:10:03 -0800 (PST) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA02951 for ; Wed, 9 Dec 1998 09:10:00 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: (from Unknown UID 563@localhost) by freefall.freebsd.org (8.8.8/8.8.5) id JAA06063; Wed, 9 Dec 1998 09:10:01 -0800 (PST) Date: Wed, 9 Dec 1998 09:10:01 -0800 (PST) Message-Id: <199812091710.JAA06063@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.ORG From: Nate Williams Subject: Re: kern/9030: DMPno2 - PCCards are not being recognised on insertion after system startup Reply-To: Nate Williams Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/9030; it has been noted by GNATS. From: Nate Williams To: David Pick Cc: Nate Williams , FreeBSD-gnats-submit@FreeBSD.ORG Subject: Re: kern/9030: DMPno2 - PCCards are not being recognised on insertion after system startup Date: Wed, 9 Dec 1998 10:05:19 -0700 > >> >Number: 9030 > >> >Category: kern > >> >Synopsis: DMPno2 - PCCards are not being recognised on insertion afte > >r system startup > >> >Confidential: no > >> >Severity: serious > >> >Priority: high > >> >Responsible: freebsd-bugs > >> >State: open > >> >Quarter: > >> >Keywords: > >> >Date-Required: > >> >Class: sw-bug > >> >Submitter-Id: current-users > >> >Arrival-Date: Wed Dec 9 03:30:01 PST 1998 > >> >Last-Modified: > >> >Originator: David Pick > >> >Organization: > >> >Release: FreeBSD 3.0-RELEASE i386 > >> >Environment: > >> > >> FreeBSD 3.0 installed from Walnut Creek CDROM onto a > >> Toshiba Libretto 50CT. > >> > >> >Description: > >> > >> PCCards are not being recognised on insertion. > > > >Here's a quick fix for the problem. The correct fix is to configure > >your PCIC controller quickly. The reason this hasn't been done is > >no-one with the ability to do it has the time to do it. > > > >On line 816 of /sys/pcic.c: > > if (validslots && pcic_irq <= 0) > >Change this to: > > if (validslots) > > > >And it will work. However, you're wasting an IRQ for the PCIC > >controller that is doing nothing for you. > > And indeed it *did* work. Many thanks. I must admit to some > curiosity about how/why this causes an IRQ to be wasted, and > if the code you advised removing was there only to prevent an > IRQ from being wasted; but I guess I'll have to read the code > to find out why/what is happening ( ;-) - and if I understand > it fix it myself ( ;-) (!) The issue is that the PCIC is assigned an interrupt to inform the kernel of insertion/removal events. However, this interrupt is not being generated by these events, so in effect the asignment of the interrupt to the controller is 'wasting' an interrupt since it doesn't work. The code in question above causes the kernel to 'poll' for insertion/removal events, thus eliminating the need for the kernel to get interrupts for the events. The reason this isn't the default is because the 'interrupt' code (hopefully) reduces the race condition that occurs when hardware is removed out from under a software driver. Whether or not this is the case is unknown, but it's something to be Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message