From owner-cvs-sys Thu Sep 11 08:30:49 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id IAA27982 for cvs-sys-outgoing; Thu, 11 Sep 1997 08:30:49 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id IAA27949; Thu, 11 Sep 1997 08:30:32 -0700 (PDT) From: Peter Wemm Received: (from peter@localhost) by freefall.freebsd.org (8.8.6/8.8.5) id IAA14529; Thu, 11 Sep 1997 08:27:35 -0700 (PDT) Date: Thu, 11 Sep 1997 08:27:35 -0700 (PDT) Message-Id: <199709111527.IAA14529@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/pci if_de.c if_devar.h Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk peter 1997/09/11 08:27:35 PDT Modified files: sys/pci if_de.c if_devar.h Log: malloc() the rx and tx descriptors seperately rather than as part of the large (over 4KB) softc struct. The descriptor array is accessed by busmaster dma and must be physically contiguous in memory. malloc() of a block greater than a page is only virtually contiguous, and not necessarily physically contigious. contigmalloc() could do this, but that is a bit on the overkill side. I'm not sure of the origins of the problem report and diagnosis, I learned of the problem via mail forwarded from Jim Shankland . Jim said that Matt Thomas's workaround was to reduce the number of transmit descriptors from 128 to 32, but I was concerned that it might cost performance. Anyway, this change is my fault, not Jim's. :-) Reviewed by: davidg Revision Changes Path 1.68 +11 -1 src/sys/pci/if_de.c 1.2 +90 -6 src/sys/pci/if_devar.h