NetBSD Problem Report #11242

Received: (qmail 6968 invoked from network); 16 Oct 2000 10:22:30 -0000
Message-Id: <20001016102225.3F3BE1A2A5@kafka.testbed.era.ericsson.se>
Date: Mon, 16 Oct 2000 12:22:25 +0200 (CEST)
From: eramore@era-t.ericsson.se
Sender: mer@kafka.testbed.era.ericsson.se
Reply-To: eramore@era-t.ericsson.se
To: gnats-bugs@gnats.netbsd.org
Cc: eramore@era-t.ericsson.se
Subject: cnw causes fatal page fault
X-Send-Pr-Version: 3.95

>Number:         11242
>Category:       kern
>Synopsis:       cnw causes fatal page fault
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Oct 16 10:23:01 +0000 2000
>Closed-Date:    Mon Oct 16 10:27:04 +0000 2000
>Last-Modified:  Mon Oct 16 10:27:04 +0000 2000
>Originator:     Michael Eriksson
>Release:        1.5 ALPHA2 (the bug is in -current too)
>Organization:
Ericsson Radio Systems AB
>Environment:
System: NetBSD kafka 1.5_ALPHA2 NetBSD 1.5_ALPHA2 (KAFKA) #0: Fri Oct 13 13:43:06 CEST 2000 mer@kafka:/usr/src/sys/arch/i386/compile/KAFKA i386

>Description:

The cnw driver allocates less device memory than it actually maps and
uses. This causes a fatal page fault at device initialization when
used with the TI PCI1450 PCI-CardBus Bridge in my IBM Thinkpad 570E.
(For some reason, it works if I use the 1450 in PCIC emulation mode.)

>How-To-Repeat:

Try to use a Xircom Netwave card with a CardBus bridge.

>Fix:

Index: if_cnw.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/pcmcia/if_cnw.c,v
retrieving revision 1.11.2.1
diff -u -r1.11.2.1 if_cnw.c
--- if_cnw.c	2000/07/07 07:31:29	1.11.2.1
+++ if_cnw.c	2000/10/16 10:01:07
@@ -539,15 +539,15 @@
 	sc->sc_ioh = sc->sc_pcioh.ioh;
 	sc->sc_resource |= CNW_RES_IO;
 #endif
-	if (pcmcia_mem_alloc(sc->sc_pf, CNW_MEM_SIZE, &sc->sc_pcmemh) != 0) {
-		printf(": can't allocate memory\n");
-		goto fail;
-	}
 #ifndef MEMORY_MAPPED
 	memsize = CNW_MEM_SIZE;
 #else
 	memsize = CNW_MEM_SIZE + CNW_IOM_SIZE;
 #endif
+	if (pcmcia_mem_alloc(sc->sc_pf, memsize, &sc->sc_pcmemh) != 0) {
+		printf(": can't allocate memory\n");
+		goto fail;
+	}
 	if (pcmcia_mem_map(sc->sc_pf, PCMCIA_WIDTH_MEM8|PCMCIA_MEM_COMMON,
 	    CNW_MEM_ADDR, memsize, &sc->sc_pcmemh, &sc->sc_memoff,
 	    &sc->sc_memwin) != 0) {

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: itojun 
State-Changed-When: Mon Oct 16 03:26:52 PDT 2000 
State-Changed-Why:  
thanks fixed. 
>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.