PERFORCE change 160624 for review
Marko Zec
zec at FreeBSD.org
Tue Apr 14 11:17:37 PDT 2009
http://perforce.freebsd.org/chv.cgi?CH=160624
Change 160624 by zec at zec_amdx2 on 2009/04/14 18:16:50
IFC @ 160621
Affected files ...
.. //depot/projects/vimage/src/sys/amd64/amd64/busdma_machdep.c#9 integrate
.. //depot/projects/vimage/src/sys/arm/arm/busdma_machdep.c#14 integrate
.. //depot/projects/vimage/src/sys/boot/i386/libi386/biosdisk.c#6 integrate
.. //depot/projects/vimage/src/sys/boot/sparc64/loader/main.c#10 integrate
.. //depot/projects/vimage/src/sys/dev/agp/agp.c#8 integrate
.. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ah.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c#2 integrate
.. //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/ath/ath_rate/sample/sample.c#11 integrate
.. //depot/projects/vimage/src/sys/dev/ath/if_ath.c#34 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_em.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_em.h#3 integrate
.. //depot/projects/vimage/src/sys/dev/e1000/if_igb.c#7 integrate
.. //depot/projects/vimage/src/sys/dev/joy/joy.c#3 integrate
.. //depot/projects/vimage/src/sys/dev/pccard/pccarddevs#13 integrate
.. //depot/projects/vimage/src/sys/dev/powermac_nvram/powermac_nvram.c#6 integrate
.. //depot/projects/vimage/src/sys/dev/tdfx/tdfx_pci.c#4 integrate
.. //depot/projects/vimage/src/sys/dev/twa/tw_osl_freebsd.c#9 integrate
.. //depot/projects/vimage/src/sys/dev/twe/twe_freebsd.c#4 integrate
.. //depot/projects/vimage/src/sys/i386/i386/busdma_machdep.c#11 integrate
.. //depot/projects/vimage/src/sys/ia64/ia64/busdma_machdep.c#7 integrate
.. //depot/projects/vimage/src/sys/kern/vfs_vnops.c#22 integrate
.. //depot/projects/vimage/src/sys/net/if.c#76 integrate
.. //depot/projects/vimage/src/sys/net/if_var.h#31 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_node.c#21 integrate
.. //depot/projects/vimage/src/sys/net80211/ieee80211_tdma.c#6 integrate
.. //depot/projects/vimage/src/sys/netinet/sctp_indata.c#33 integrate
.. //depot/projects/vimage/src/sys/nfsclient/nfs_socket.c#16 integrate
.. //depot/projects/vimage/src/sys/powerpc/aim/trap_subr.S#8 integrate
Differences ...
==== //depot/projects/vimage/src/sys/amd64/amd64/busdma_machdep.c#9 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.88 2009/02/09 18:03:31 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/amd64/amd64/busdma_machdep.c,v 1.89 2009/04/13 19:20:32 kib Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -606,7 +606,10 @@
vendaddr = (vm_offset_t)buf + buflen;
while (vaddr < vendaddr) {
- paddr = pmap_kextract(vaddr);
+ if (pmap)
+ paddr = pmap_extract(pmap, vaddr);
+ else
+ paddr = pmap_kextract(vaddr);
if (run_filter(dmat, paddr) != 0)
map->pagesneeded++;
vaddr += (PAGE_SIZE - ((vm_offset_t)vaddr & PAGE_MASK));
==== //depot/projects/vimage/src/sys/arm/arm/busdma_machdep.c#14 (text+ko) ====
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.44 2009/02/09 18:03:31 cognet Exp $");
+__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.45 2009/04/13 19:20:32 kib Exp $");
/*
* ARM bus dma support routines
@@ -669,8 +669,8 @@
}
static int
-_bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
- bus_size_t buflen, int flags)
+_bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dmamap_t map, pmap_t pmap,
+ void *buf, bus_size_t buflen, int flags)
{
vm_offset_t vaddr;
vm_offset_t vendaddr;
@@ -689,7 +689,10 @@
vendaddr = (vm_offset_t)buf + buflen;
while (vaddr < vendaddr) {
- paddr = pmap_kextract(vaddr);
+ if (pmap != NULL)
+ paddr = pmap_extract(pmap, vaddr);
+ else
+ paddr = pmap_kextract(vaddr);
if (((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
run_filter(dmat, paddr) != 0)
map->pagesneeded++;
@@ -745,7 +748,8 @@
bmask = ~(dmat->boundary - 1);
if ((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) {
- error = _bus_dmamap_count_pages(dmat, map, buf, buflen, flags);
+ error = _bus_dmamap_count_pages(dmat, map, pmap, buf, buflen,
+ flags);
if (error)
return (error);
}
==== //depot/projects/vimage/src/sys/boot/i386/libi386/biosdisk.c#6 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.58 2009/03/12 20:41:52 jhb Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/i386/libi386/biosdisk.c,v 1.59 2009/04/14 14:19:18 jhb Exp $");
/*
* BIOS disk device handling.
@@ -83,7 +83,7 @@
int od_cyl; /* BIOS geometry */
int od_hds;
int od_sec;
- int od_boff; /* block offset from beginning of BIOS disk */
+ daddr_t od_boff; /* block offset from beginning of BIOS disk */
int od_flags;
#define BD_MODEINT13 0x0000
#define BD_MODEEDD1 0x0001
==== //depot/projects/vimage/src/sys/boot/sparc64/loader/main.c#10 (text+ko) ====
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.40 2009/02/10 21:48:42 marius Exp $");
+__FBSDID("$FreeBSD: src/sys/boot/sparc64/loader/main.c,v 1.41 2009/04/13 19:43:37 marius Exp $");
/*
* FreeBSD/sparc64 kernel loader - machine dependent part
@@ -472,7 +472,7 @@
reg = rdpr(pstate);
wrpr(pstate, reg & ~PSTATE_IE, 0);
stxa(AA_DMMU_TAR, ASI_DMMU,
- TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
+ TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
stxa(0, ASI_DTLB_DATA_IN_REG, data);
membar(Sync);
wrpr(pstate, reg, 0);
@@ -497,7 +497,7 @@
continue;
stxa(AA_IMMU_TAR, ASI_IMMU,
- TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
+ TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
stxa(TLB_DAR_SLOT(i), ASI_ITLB_DATA_ACCESS_REG, data);
flush(PROMBASE);
break;
@@ -509,7 +509,7 @@
}
stxa(AA_IMMU_TAR, ASI_IMMU,
- TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
+ TLB_TAR_VA(vpn) | TLB_TAR_CTX(TLB_CTX_KERNEL));
stxa(0, ASI_ITLB_DATA_IN_REG, data);
flush(PROMBASE);
wrpr(pstate, reg, 0);
==== //depot/projects/vimage/src/sys/dev/agp/agp.c#8 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/agp/agp.c,v 1.64 2009/03/20 18:30:20 rnoland Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/agp/agp.c,v 1.65 2009/04/14 13:11:34 ed Exp $");
#include "opt_agp.h"
#include "opt_bus.h"
@@ -81,7 +81,6 @@
};
static devclass_t agp_devclass;
-#define KDEV2DEV(kdev) devclass_get_device(agp_devclass, dev2unit(kdev))
/* Helper functions for implementing chipset mini drivers. */
@@ -254,11 +253,8 @@
sc->as_nextid = 1;
sc->as_devnode = make_dev(&agp_cdevsw,
- device_get_unit(dev),
- UID_ROOT,
- GID_WHEEL,
- 0600,
- "agpgart");
+ 0, UID_ROOT, GID_WHEEL, 0600, "agpgart");
+ sc->as_devnode->si_drv1 = dev;
return 0;
}
@@ -802,7 +798,7 @@
static int
agp_open(struct cdev *kdev, int oflags, int devtype, struct thread *td)
{
- device_t dev = KDEV2DEV(kdev);
+ device_t dev = kdev->si_drv1;
struct agp_softc *sc = device_get_softc(dev);
if (!sc->as_isopen) {
@@ -816,7 +812,7 @@
static int
agp_close(struct cdev *kdev, int fflag, int devtype, struct thread *td)
{
- device_t dev = KDEV2DEV(kdev);
+ device_t dev = kdev->si_drv1;
struct agp_softc *sc = device_get_softc(dev);
struct agp_memory *mem;
@@ -839,7 +835,7 @@
static int
agp_ioctl(struct cdev *kdev, u_long cmd, caddr_t data, int fflag, struct thread *td)
{
- device_t dev = KDEV2DEV(kdev);
+ device_t dev = kdev->si_drv1;
switch (cmd) {
case AGPIOC_INFO:
@@ -874,7 +870,7 @@
static int
agp_mmap(struct cdev *kdev, vm_offset_t offset, vm_paddr_t *paddr, int prot)
{
- device_t dev = KDEV2DEV(kdev);
+ device_t dev = kdev->si_drv1;
struct agp_softc *sc = device_get_softc(dev);
if (offset > AGP_GET_APERTURE(dev))
==== //depot/projects/vimage/src/sys/dev/ath/ath_hal/ah.c#7 (text+ko) ====
@@ -14,7 +14,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $FreeBSD: src/sys/dev/ath/ath_hal/ah.c,v 1.8 2009/03/12 00:09:29 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ah.c,v 1.9 2009/04/13 21:01:08 sam Exp $
*/
#include "opt_ah.h"
@@ -287,8 +287,7 @@
+ (numSymbols * OFDM_QUARTER_SYMBOL_TIME);
break;
case IEEE80211_T_TURBO:
- /* we still save OFDM rates in kbps - so double them */
- bitsPerSymbol = ((kbps << 1) * TURBO_SYMBOL_TIME) / 1000;
+ bitsPerSymbol = (kbps * TURBO_SYMBOL_TIME) / 1000;
HALASSERT(bitsPerSymbol != 0);
numBits = TURBO_PLCP_BITS + (frameLen << 3);
==== //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c#2 (text+ko) ====
@@ -14,7 +14,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: ar5210_phy.c,v 1.3 2008/11/10 01:19:37 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5210/ar5210_phy.c,v 1.2 2009/04/13 21:01:08 sam Exp $
*/
#include "opt_ah.h"
@@ -50,14 +50,14 @@
{
/* short ctrl */
/* valid rateCode Preamble dot11Rate Rate */
-/* 6 Mb */ { AH_TRUE, TURBO, 6000, 0x0b, 0x00, (0x80|12), 0 },
-/* 9 Mb */ { AH_TRUE, TURBO, 9000, 0x0f, 0x00, 18, 0 },
-/* 12 Mb */ { AH_TRUE, TURBO, 12000, 0x0a, 0x00, (0x80|24), 2 },
-/* 18 Mb */ { AH_TRUE, TURBO, 18000, 0x0e, 0x00, 36, 2 },
-/* 24 Mb */ { AH_TRUE, TURBO, 24000, 0x09, 0x00, (0x80|48), 4 },
-/* 36 Mb */ { AH_TRUE, TURBO, 36000, 0x0d, 0x00, 72, 4 },
-/* 48 Mb */ { AH_TRUE, TURBO, 48000, 0x08, 0x00, 96, 4 },
-/* 54 Mb */ { AH_TRUE, TURBO, 54000, 0x0c, 0x00, 108, 4 }
+/* 6 Mb */ { AH_TRUE, TURBO, 12000, 0x0b, 0x00, (0x80|12), 0 },
+/* 9 Mb */ { AH_TRUE, TURBO, 18000, 0x0f, 0x00, 18, 0 },
+/* 12 Mb */ { AH_TRUE, TURBO, 24000, 0x0a, 0x00, (0x80|24), 2 },
+/* 18 Mb */ { AH_TRUE, TURBO, 36000, 0x0e, 0x00, 36, 2 },
+/* 24 Mb */ { AH_TRUE, TURBO, 48000, 0x09, 0x00, (0x80|48), 4 },
+/* 36 Mb */ { AH_TRUE, TURBO, 72000, 0x0d, 0x00, 72, 4 },
+/* 48 Mb */ { AH_TRUE, TURBO, 96000, 0x08, 0x00, 96, 4 },
+/* 54 Mb */ { AH_TRUE, TURBO, 108000, 0x0c, 0x00, 108, 4 }
},
};
==== //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c#2 (text+ko) ====
@@ -14,7 +14,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $Id: ar5211_phy.c,v 1.3 2008/11/10 01:19:37 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5211/ar5211_phy.c,v 1.2 2009/04/13 21:01:08 sam Exp $
*/
#include "opt_ah.h"
@@ -51,14 +51,14 @@
{
/* short ctrl */
/* valid rateCode Preamble dot11Rate Rate */
-/* 6 Mb */ { AH_TRUE, TURBO, 6000, 0x0b, 0x00, (0x80|12), 0 },
-/* 9 Mb */ { AH_TRUE, TURBO, 9000, 0x0f, 0x00, 18, 0 },
-/* 12 Mb */ { AH_TRUE, TURBO, 12000, 0x0a, 0x00, (0x80|24), 2 },
-/* 18 Mb */ { AH_TRUE, TURBO, 18000, 0x0e, 0x00, 36, 2 },
-/* 24 Mb */ { AH_TRUE, TURBO, 24000, 0x09, 0x00, (0x80|48), 4 },
-/* 36 Mb */ { AH_TRUE, TURBO, 36000, 0x0d, 0x00, 72, 4 },
-/* 48 Mb */ { AH_TRUE, TURBO, 48000, 0x08, 0x00, 96, 4 },
-/* 54 Mb */ { AH_TRUE, TURBO, 54000, 0x0c, 0x00, 108, 4 }
+/* 6 Mb */ { AH_TRUE, TURBO, 12000, 0x0b, 0x00, (0x80|12), 0 },
+/* 9 Mb */ { AH_TRUE, TURBO, 18000, 0x0f, 0x00, 18, 0 },
+/* 12 Mb */ { AH_TRUE, TURBO, 24000, 0x0a, 0x00, (0x80|24), 2 },
+/* 18 Mb */ { AH_TRUE, TURBO, 36000, 0x0e, 0x00, 36, 2 },
+/* 24 Mb */ { AH_TRUE, TURBO, 48000, 0x09, 0x00, (0x80|48), 4 },
+/* 36 Mb */ { AH_TRUE, TURBO, 72000, 0x0d, 0x00, 72, 4 },
+/* 48 Mb */ { AH_TRUE, TURBO, 96000, 0x08, 0x00, 96, 4 },
+/* 54 Mb */ { AH_TRUE, TURBO, 108000, 0x0c, 0x00, 108, 4 }
},
};
==== //depot/projects/vimage/src/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c#3 (text+ko) ====
@@ -14,7 +14,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c,v 1.2 2009/02/19 04:24:22 sam Exp $
+ * $FreeBSD: src/sys/dev/ath/ath_hal/ar5212/ar5212_phy.c,v 1.3 2009/04/13 21:01:08 sam Exp $
*/
#include "opt_ah.h"
@@ -87,13 +87,13 @@
{
/* short ctrl */
/* valid rateCode Preamble dot11Rate Rate */
-/* 6 Mb */ { AH_TRUE, TURBO, 6000, 0x0b, 0x00, (0x80|12), 0 },
-/* 12 Mb */ { AH_TRUE, TURBO, 12000, 0x0a, 0x00, (0x80|24), 2 },
-/* 18 Mb */ { AH_TRUE, TURBO, 18000, 0x0e, 0x00, 36, 2 },
-/* 24 Mb */ { AH_TRUE, TURBO, 24000, 0x09, 0x00, (0x80|48), 3 },
-/* 36 Mb */ { AH_TRUE, TURBO, 36000, 0x0d, 0x00, 72, 3 },
-/* 48 Mb */ { AH_TRUE, TURBO, 48000, 0x08, 0x00, 96, 3 },
-/* 54 Mb */ { AH_TRUE, TURBO, 54000, 0x0c, 0x00, 108, 3 }
+/* 6 Mb */ { AH_TRUE, TURBO, 12000, 0x0b, 0x00, (0x80|12), 0 },
+/* 12 Mb */ { AH_TRUE, TURBO, 24000, 0x0a, 0x00, (0x80|24), 1 },
+/* 18 Mb */ { AH_TRUE, TURBO, 36000, 0x0e, 0x00, 36, 1 },
+/* 24 Mb */ { AH_TRUE, TURBO, 48000, 0x09, 0x00, (0x80|48), 2 },
+/* 36 Mb */ { AH_TRUE, TURBO, 72000, 0x0d, 0x00, 72, 2 },
+/* 48 Mb */ { AH_TRUE, TURBO, 96000, 0x08, 0x00, 96, 2 },
+/* 54 Mb */ { AH_TRUE, TURBO, 108000, 0x0c, 0x00, 108, 2 }
},
};
@@ -103,14 +103,14 @@
{
/* short ctrl */
/* valid rateCode Preamble dot11Rate Rate */
-/* 6 Mb */ { AH_TRUE, TURBO, 6000, 0x0b, 0x00, (0x80|12), 0 },
-/* 9 Mb */ { AH_TRUE, TURBO, 9000, 0x0f, 0x00, 18, 0 },
-/* 12 Mb */ { AH_TRUE, TURBO, 12000, 0x0a, 0x00, (0x80|24), 2 },
-/* 18 Mb */ { AH_TRUE, TURBO, 18000, 0x0e, 0x00, 36, 2 },
-/* 24 Mb */ { AH_TRUE, TURBO, 24000, 0x09, 0x00, (0x80|48), 4 },
-/* 36 Mb */ { AH_TRUE, TURBO, 36000, 0x0d, 0x00, 72, 4 },
-/* 48 Mb */ { AH_TRUE, TURBO, 48000, 0x08, 0x00, 96, 4 },
-/* 54 Mb */ { AH_TRUE, TURBO, 54000, 0x0c, 0x00, 108, 4 }
+/* 6 Mb */ { AH_TRUE, TURBO, 12000, 0x0b, 0x00, (0x80|12), 0 },
+/* 9 Mb */ { AH_TRUE, TURBO, 18000, 0x0f, 0x00, 18, 0 },
+/* 12 Mb */ { AH_TRUE, TURBO, 24000, 0x0a, 0x00, (0x80|24), 2 },
+/* 18 Mb */ { AH_TRUE, TURBO, 36000, 0x0e, 0x00, 36, 2 },
+/* 24 Mb */ { AH_TRUE, TURBO, 48000, 0x09, 0x00, (0x80|48), 4 },
+/* 36 Mb */ { AH_TRUE, TURBO, 72000, 0x0d, 0x00, 72, 4 },
+/* 48 Mb */ { AH_TRUE, TURBO, 96000, 0x08, 0x00, 96, 4 },
+/* 54 Mb */ { AH_TRUE, TURBO, 108000, 0x0c, 0x00, 108, 4 }
},
};
==== //depot/projects/vimage/src/sys/dev/ath/ath_rate/sample/sample.c#11 (text+ko) ====
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.29 2009/01/07 23:30:26 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/ath_rate/sample/sample.c,v 1.30 2009/04/13 20:54:08 sam Exp $");
/*
* John Bicket's SampleRate control algorithm.
@@ -766,6 +766,15 @@
sn->static_rix = sc->sc_rixmap[tp->ucastrate];
break;
}
+#ifdef IEEE80211_DEBUG
+ if (sn->static_rix == -1) {
+ IEEE80211_NOTE(ni->ni_vap,
+ IEEE80211_MSG_RATECTL, ni,
+ "%s: ucastrate %u not found, nrates %u",
+ __func__, tp->ucastrate,
+ ni->ni_rates.rs_nrates);
+ }
+#endif
}
/*
==== //depot/projects/vimage/src/sys/dev/ath/if_ath.c#34 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.246 2009/04/13 03:20:21 sam Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/ath/if_ath.c,v 1.248 2009/04/13 20:58:47 sam Exp $");
/*
* Driver for the Atheros Wireless LAN controller.
@@ -4773,8 +4773,8 @@
m0->m_nextpkt = NULL;
if (IFF_DUMPPKTS(sc, ATH_DEBUG_XMIT))
- ieee80211_dump_pkt(ic, mtod(m0, caddr_t), m0->m_len,
- sc->sc_hwmap[rix].ieeerate, -1);
+ ieee80211_dump_pkt(ic, mtod(m0, const uint8_t *), m0->m_len,
+ sc->sc_hwmap[rix].ieeerate, -1);
if (bpf_peers_present(ifp->if_bpf)) {
u_int64_t tsf = ath_hal_gettsf64(ah);
@@ -5118,8 +5118,8 @@
ath_printtxbuf(sc, bf, txq->axq_qnum, ix,
ath_hal_txprocdesc(ah, bf->bf_desc,
&bf->bf_status.ds_txstat) == HAL_OK);
- ieee80211_dump_pkt(ic, mtod(bf->bf_m, caddr_t),
- bf->bf_m->m_len, 0, -1);
+ ieee80211_dump_pkt(ic, mtod(bf->bf_m, const uint8_t *),
+ bf->bf_m->m_len, 0, -1);
}
#endif /* ATH_DEBUG */
bus_dmamap_unload(sc->sc_dmat, bf->bf_dmamap);
@@ -5187,8 +5187,9 @@
ath_printtxbuf(sc, bf, sc->sc_bhalq, 0,
ath_hal_txprocdesc(ah, bf->bf_desc,
&bf->bf_status.ds_txstat) == HAL_OK);
- ieee80211_dump_pkt(ifp->if_l2com, mtod(bf->bf_m, caddr_t),
- bf->bf_m->m_len, 0, -1);
+ ieee80211_dump_pkt(ifp->if_l2com,
+ mtod(bf->bf_m, const uint8_t *), bf->bf_m->m_len,
+ 0, -1);
}
}
#endif /* ATH_DEBUG */
@@ -6783,7 +6784,7 @@
if (IFF_DUMPPKTS(sc, ATH_DEBUG_XMIT))
ieee80211_dump_pkt(ic, mtod(m0, caddr_t), m0->m_len,
- sc->sc_hwmap[rix].ieeerate, -1);
+ sc->sc_hwmap[rix].ieeerate, -1);
if (bpf_peers_present(ifp->if_bpf)) {
u_int64_t tsf = ath_hal_gettsf64(ah);
@@ -7120,6 +7121,8 @@
const struct ieee80211_tdma_state *ts = vap->iv_tdma;
ath_tdma_bintvalsetup(sc, ts);
+ if (changed & TDMA_UPDATE_SLOTLEN)
+ ath_wme_update(ic);
DPRINTF(sc, ATH_DEBUG_TDMA,
"%s: adopt slot %u slotcnt %u slotlen %u us "
@@ -7127,7 +7130,6 @@
ts->tdma_slot, ts->tdma_slotcnt, ts->tdma_slotlen,
sc->sc_tdmabintval);
- ath_beaconq_config(sc);
/* XXX right? */
ath_hal_intrset(ah, sc->sc_imask);
/* NB: beacon timers programmed below */
==== //depot/projects/vimage/src/sys/dev/e1000/if_em.c#6 (text+ko) ====
@@ -30,7 +30,7 @@
POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/if_em.c,v 1.5 2009/04/10 00:05:46 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/if_em.c,v 1.6 2009/04/14 03:36:59 kmacy Exp $*/
#ifdef HAVE_KERNEL_OPTION_HEADERS
#include "opt_device_polling.h"
@@ -39,6 +39,7 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/buf_ring.h>
#include <sys/bus.h>
#include <sys/endian.h>
#include <sys/kernel.h>
@@ -897,6 +898,9 @@
bus_generic_detach(dev);
if_free(ifp);
+#ifdef IFNET_BUF_RING
+ drbr_free(adapter->br, M_DEVBUF);
+#endif
em_free_transmit_structures(adapter);
em_free_receive_structures(adapter);
@@ -991,6 +995,69 @@
* the packet is requeued.
**********************************************************************/
+#ifdef IFNET_BUF_RING
+static int
+em_transmit_locked(struct ifnet *ifp, struct mbuf *m)
+{
+ struct adapter *adapter = ifp->if_softc;
+ int error;
+
+ EM_TX_LOCK_ASSERT(adapter);
+ if (((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) !=
+ IFF_DRV_RUNNING)
+ || (!adapter->link_active)) {
+ error = drbr_enqueue(ifp, adapter->br, m);
+ return (error);
+ }
+
+ if (ADAPTER_RING_EMPTY(adapter) &&
+ (adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)) {
+ if (em_xmit(adapter, &m)) {
+ if (m && (error = drbr_enqueue(ifp, adapter->br, m)) != 0) {
+ return (error);
+ }
+ } else{
+ /* Send a copy of the frame to the BPF listener */
+ ETHER_BPF_MTAP(ifp, m);
+ }
+ } else if ((error = drbr_enqueue(ifp, adapter->br, m)) != 0)
+ return (error);
+
+ if (!ADAPTER_RING_EMPTY(adapter))
+ em_start_locked(ifp);
+
+ return (0);
+}
+
+static int
+em_transmit(struct ifnet *ifp, struct mbuf *m)
+{
+
+ struct adapter *adapter = ifp->if_softc;
+ int error = 0;
+
+ if(EM_TX_TRYLOCK(adapter)) {
+ if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ error = em_transmit_locked(ifp, m);
+ EM_TX_UNLOCK(adapter);
+ } else
+ error = drbr_enqueue(ifp, adapter->br, m);
+
+ return (error);
+}
+
+static void
+em_qflush(struct ifnet *ifp)
+{
+ struct mbuf *m;
+ struct adapter *adapter = (struct adapter *)ifp->if_softc;
+
+ EM_TX_LOCK(adapter);
+ while ((m = buf_ring_dequeue_sc(adapter->br)) != NULL)
+ m_freem(m);
+ EM_TX_UNLOCK(adapter);
+}
+
static void
em_start_locked(struct ifnet *ifp)
{
@@ -1005,6 +1072,47 @@
if (!adapter->link_active)
return;
+ while ((adapter->num_tx_desc_avail > EM_TX_OP_THRESHOLD)
+ && (!ADAPTER_RING_EMPTY(adapter))) {
+
+ m_head = buf_ring_dequeue_sc(adapter->br);
+ if (m_head == NULL)
+ break;
+ /*
+ * Encapsulation can modify our pointer, and or make it
+ * NULL on failure. In that event, we can't requeue.
+ */
+ if (em_xmit(adapter, &m_head)) {
+ if (m_head == NULL)
+ break;
+ break;
+ }
+
+ /* Send a copy of the frame to the BPF listener */
+ ETHER_BPF_MTAP(ifp, m_head);
+
+ /* Set timeout in case hardware has problems transmitting. */
+ adapter->watchdog_timer = EM_TX_TIMEOUT;
+ }
+ if ((adapter->num_tx_desc_avail <= EM_TX_OP_THRESHOLD))
+ ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+
+}
+#else
+static void
+em_start_locked(struct ifnet *ifp)
+{
+ struct adapter *adapter = ifp->if_softc;
+ struct mbuf *m_head;
+
+ EM_TX_LOCK_ASSERT(adapter);
+
+ if ((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) !=
+ IFF_DRV_RUNNING)
+ return;
+ if (!adapter->link_active)
+ return;
+
while (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) {
IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head);
@@ -1030,6 +1138,8 @@
}
}
+#endif
+
static void
em_start(struct ifnet *ifp)
{
@@ -1603,7 +1713,7 @@
EM_TX_LOCK(adapter);
em_txeof(adapter);
- if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+ if (!ADAPTER_RING_EMPTY(adapter))
em_start_locked(ifp);
EM_TX_UNLOCK(adapter);
}
@@ -1658,7 +1768,7 @@
out:
EM_CORE_UNLOCK(adapter);
if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
- !IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+ !ADAPTER_RING_EMPTY(adapter))
em_start(ifp);
}
@@ -1697,7 +1807,7 @@
EM_TX_LOCK(adapter);
em_txeof(adapter);
- if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+ if (!ADAPTER_RING_EMPTY(adapter))
em_start_locked(ifp);
EM_TX_UNLOCK(adapter);
}
@@ -1853,9 +1963,15 @@
struct ifnet *ifp = adapter->ifp;
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+#ifdef IFNET_BUF_RING
+ if (!EM_TX_TRYLOCK(adapter))
+ return;
+#else
EM_TX_LOCK(adapter);
+#endif
+
em_txeof(adapter);
- if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+ if (!ADAPTER_RING_EMPTY(adapter))
em_start_locked(ifp);
EM_TX_UNLOCK(adapter);
}
@@ -2075,22 +2191,14 @@
error = bus_dmamap_load_mbuf_sg(adapter->txtag, map,
*m_headp, segs, &nsegs, BUS_DMA_NOWAIT);
- if (error == ENOMEM) {
- adapter->no_tx_dma_setup++;
- return (error);
- } else if (error != 0) {
+ if (error) {
adapter->no_tx_dma_setup++;
m_freem(*m_headp);
*m_headp = NULL;
return (error);
}
- } else if (error == ENOMEM) {
- adapter->no_tx_dma_setup++;
- return (error);
} else if (error != 0) {
adapter->no_tx_dma_setup++;
- m_freem(*m_headp);
- *m_headp = NULL;
return (error);
}
@@ -2531,6 +2639,8 @@
EM_CORE_LOCK_ASSERT(adapter);
+ taskqueue_enqueue(adapter->tq,
+ &adapter->rxtx_task);
em_update_link_status(adapter);
em_update_stats_counters(adapter);
@@ -3126,6 +3236,11 @@
ifp->if_capabilities = ifp->if_capenable = 0;
+#ifdef IFNET_BUF_RING
+ ifp->if_transmit = em_transmit;
+ ifp->if_qflush = em_qflush;
+ adapter->br = buf_ring_alloc(2048, M_DEVBUF, M_WAITOK, &adapter->tx_mtx);
+#endif
if (adapter->hw.mac.type >= e1000_82543) {
int version_cap;
#if __FreeBSD_version < 700000
==== //depot/projects/vimage/src/sys/dev/e1000/if_em.h#3 (text+ko) ====
@@ -30,12 +30,13 @@
POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/if_em.h,v 1.2 2008/11/26 23:57:23 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/if_em.h,v 1.3 2009/04/14 03:36:59 kmacy Exp $*/
#ifndef _EM_H_DEFINED_
#define _EM_H_DEFINED_
+#define IFNET_BUF_RING
/* Tunables */
/*
@@ -301,6 +302,9 @@
/* Our adapter structure */
struct adapter {
struct ifnet *ifp;
+#ifdef IFNET_BUF_RING
+ struct buf_ring *br;
+#endif
struct e1000_hw hw;
/* FreeBSD operating-system-specific structures. */
@@ -482,6 +486,7 @@
#define EM_RX_LOCK_DESTROY(_sc) mtx_destroy(&(_sc)->rx_mtx)
#define EM_CORE_LOCK(_sc) mtx_lock(&(_sc)->core_mtx)
#define EM_TX_LOCK(_sc) mtx_lock(&(_sc)->tx_mtx)
+#define EM_TX_TRYLOCK(_sc) mtx_trylock(&(_sc)->tx_mtx)
#define EM_RX_LOCK(_sc) mtx_lock(&(_sc)->rx_mtx)
#define EM_CORE_UNLOCK(_sc) mtx_unlock(&(_sc)->core_mtx)
#define EM_TX_UNLOCK(_sc) mtx_unlock(&(_sc)->tx_mtx)
@@ -489,4 +494,9 @@
#define EM_CORE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->core_mtx, MA_OWNED)
#define EM_TX_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->tx_mtx, MA_OWNED)
+#ifdef IFNET_BUF_RING
+#define ADAPTER_RING_EMPTY(adapter) drbr_empty((adapter)->ifp, (adapter)->br)
+#else
+#define ADAPTER_RING_EMPTY(adapter) IFQ_DRV_IS_EMPTY(&((adapter)->ifp->if_snd))
+#endif
#endif /* _EM_H_DEFINED_ */
==== //depot/projects/vimage/src/sys/dev/e1000/if_igb.c#7 (text+ko) ====
@@ -30,7 +30,7 @@
POSSIBILITY OF SUCH DAMAGE.
******************************************************************************/
-/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.10 2009/04/10 05:26:14 jfv Exp $*/
+/*$FreeBSD: src/sys/dev/e1000/if_igb.c,v 1.11 2009/04/14 17:14:35 jfv Exp $*/
#ifdef HAVE_KERNEL_OPTION_HEADERS
#include "opt_device_polling.h"
@@ -94,7 +94,7 @@
/*********************************************************************
* Driver version:
*********************************************************************/
-char igb_driver_version[] = "version - 1.5.2";
+char igb_driver_version[] = "version - 1.5.3";
/*********************************************************************
@@ -4002,7 +4002,7 @@
accept_frame = 1;
hlen = plen = len_adj = 0;
sendmp = mh = mp = NULL;
- ptype = (u16)cur->wb.lower.lo_dword.data;
+ ptype = (u16)(cur->wb.lower.lo_dword.data >> 4);
/* Sync the buffers */
bus_dmamap_sync(rxr->rxtag, rxr->rx_buffers[i].map,
@@ -4103,16 +4103,16 @@
rxr->lmp = mh->m_next;
}
} else {
+ /* Adjust for CRC frag */
+ if (len_adj) {
+ rxr->lmp->m_len -= len_adj;
+ rxr->fmp->m_pkthdr.len -= len_adj;
+ }
/* Chain mbuf's together */
mh->m_flags &= ~M_PKTHDR;
rxr->lmp->m_next = mh;
rxr->lmp = rxr->lmp->m_next;
rxr->fmp->m_pkthdr.len += mh->m_len;
- /* Adjust for CRC frag */
- if (len_adj) {
- rxr->lmp->m_len -= len_adj;
- rxr->fmp->m_pkthdr.len -= len_adj;
- }
}
if (eop) {
@@ -4256,7 +4256,7 @@
#endif
/* Did it pass? */
if (!(errors & E1000_RXD_ERR_TCPE)) {
- mp->m_pkthdr.csum_flags = type;
+ mp->m_pkthdr.csum_flags |= type;
if (!sctp)
mp->m_pkthdr.csum_data = htons(0xffff);
}
==== //depot/projects/vimage/src/sys/dev/joy/joy.c#3 (text+ko) ====
@@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/joy/joy.c,v 1.55 2008/09/27 08:51:18 ed Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/joy/joy.c,v 1.56 2009/04/14 11:23:09 ed Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -55,14 +55,10 @@
*/
#define joypart(d) (dev2unit(d)&1)
-#define UNIT(d) ((dev2unit(d)>>1)&3)
#ifndef JOY_TIMEOUT
#define JOY_TIMEOUT 2000 /* 2 milliseconds */
#endif
-#define JOY_SOFTC(unit) (struct joy_softc *) \
- devclass_get_softc(joy_devclass,(unit))
-
static d_open_t joyopen;
static d_close_t joyclose;
static d_read_t joyread;
@@ -111,6 +107,7 @@
joy->port = rman_get_bushandle(joy->res);
joy->timeout[0] = joy->timeout[1] = 0;
joy->d = make_dev(&joy_cdevsw, unit, 0, 0, 0600, "joy%d", unit);
+ joy->d->si_drv1 = joy;
return (0);
}
@@ -131,7 +128,7 @@
joyopen(struct cdev *dev, int flags, int fmt, struct thread *td)
{
int i = joypart (dev);
- struct joy_softc *joy = JOY_SOFTC(UNIT(dev));
+ struct joy_softc *joy = dev->si_drv1;
if (joy->timeout[i])
return (EBUSY);
@@ -144,7 +141,7 @@
joyclose(struct cdev *dev, int flags, int fmt, struct thread *td)
{
int i = joypart (dev);
- struct joy_softc *joy = JOY_SOFTC(UNIT(dev));
+ struct joy_softc *joy = dev->si_drv1;
joy->timeout[i] = 0;
return (0);
@@ -153,7 +150,7 @@
static int
joyread(struct cdev *dev, struct uio *uio, int flag)
{
- struct joy_softc *joy = JOY_SOFTC(UNIT(dev));
+ struct joy_softc *joy = dev->si_drv1;
bus_space_handle_t port = joy->port;
bus_space_tag_t bt = joy->bt;
struct timespec t, start, end;
@@ -217,7 +214,7 @@
static int
joyioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
{
- struct joy_softc *joy = JOY_SOFTC(UNIT(dev));
+ struct joy_softc *joy = dev->si_drv1;
int i = joypart (dev);
int x;
==== //depot/projects/vimage/src/sys/dev/pccard/pccarddevs#13 (text+ko) ====
@@ -1,4 +1,4 @@
-$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.143 2009/04/07 05:57:56 imp Exp $
+$FreeBSD: src/sys/dev/pccard/pccarddevs,v 1.144 2009/04/14 03:13:05 imp Exp $
/* $NetBSD: pcmciadevs,v 1.226 2008/06/19 18:20:33 imp Exp $ */
/* $OpenBSD: pcmciadevs,v 1.93 2002/06/21 08:31:10 henning Exp $ */
@@ -671,6 +671,7 @@
vendor FUTUREDOMAIN -1 FutureDomain
vendor FREECOM -1 Freecom
vendor GEMTEK -1 Gem Tek
+vendor GVC -1 GVC
vendor ICOM -1 ICOM Inc
vendor INTERSIL2 -1 Intersil
vendor IODATA3 -1 I-O DATA
@@ -740,6 +741,7 @@
product FUJITSU2 ITCFJ182A { "FUJITSU", "LAN&spCard(ITCFJ182)", "Ver.01", NULL } FUJITSU ITCFJ182A CompactCard
product FUTUREDOMAIN SCSI2GO { "Future&spDomain&spCorporation", "SCSI&spPCMCIA&spCredit&spCard&spController", NULL, NULL } Future Domain SCSI2GO
product GEMTEK WLAN { "Intersil", "PRISM&sp2_5&spPCMCIA&spADAPTER", "ISL37300P", "Eval-RevA" } GEMTEK Prism2_5 WaveLAN Card
+product GVC NIC_2000P { "GVC", "NIC-2000p", "ETHERNET", NULL } GVC PCMCIA Ethernet Adapeter
product IBM SCSICARD { "IBM&spCorp.", "SCSI&spPCMCIA&spCard", NULL, NULL } IBM SCSI PCMCIA Card
product ICOM SL200 { "Icom", "SL-200", NULL, NULL } Icom SL-200
product INTERSIL2 PRISM2 { "INTERSIL", "HFA384x/IEEE", "Version&sp01.02", NULL } Intersil Prism II
==== //depot/projects/vimage/src/sys/dev/powermac_nvram/powermac_nvram.c#6 (text+ko) ====
@@ -23,7 +23,7 @@
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/dev/powermac_nvram/powermac_nvram.c,v 1.5 2009/04/04 00:22:44 nwhitehorn Exp $
+ * $FreeBSD: src/sys/dev/powermac_nvram/powermac_nvram.c,v 1.6 2009/04/14 13:18:39 ed Exp $
*/
#include <sys/param.h>
@@ -89,10 +89,6 @@
* Cdev methods.
*/
-#define NVRAM_UNIT(dev) dev2unit(dev)
-#define NVRAM_SOFTC(unit) ((struct powermac_nvram_softc *) \
- devclass_get_softc(powermac_nvram_devclass, unit))
-
static d_open_t powermac_nvram_open;
static d_close_t powermac_nvram_close;
static d_read_t powermac_nvram_read;
@@ -169,6 +165,7 @@
sc->sc_cdev = make_dev(&powermac_nvram_cdevsw, 0, 0, 0, 0600,
"powermac_nvram");
+ sc->sc_cdev->si_drv1 = sc;
return 0;
}
@@ -192,9 +189,8 @@
static int
powermac_nvram_open(struct cdev *dev, int flags, int fmt, struct thread *td)
{
- struct powermac_nvram_softc *sc;
+ struct powermac_nvram_softc *sc = dev->si_drv1;
- sc = NVRAM_SOFTC(NVRAM_UNIT(dev));
if (sc->sc_isopen)
return EBUSY;
sc->sc_isopen = 1;
@@ -205,12 +201,10 @@
static int
powermac_nvram_close(struct cdev *dev, int fflag, int devtype, struct thread *td)
{
- struct powermac_nvram_softc *sc;
+ struct powermac_nvram_softc *sc = dev->si_drv1;
struct core99_header *header;
vm_offset_t bank;
- sc = NVRAM_SOFTC(NVRAM_UNIT(dev));
-
if (sc->sc_wpos != sizeof(sc->sc_data)) {
/* Short write, restore in-memory copy */
bcopy((void *)sc->sc_bank, (void *)sc->sc_data, NVRAM_SIZE);
@@ -246,10 +240,8 @@
powermac_nvram_read(struct cdev *dev, struct uio *uio, int ioflag)
{
int rv, amnt, data_available;
- struct powermac_nvram_softc *sc;
+ struct powermac_nvram_softc *sc = dev->si_drv1;
- sc = NVRAM_SOFTC(NVRAM_UNIT(dev));
-
rv = 0;
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list