diff options
-rw-r--r-- | sys/dev/cardbus/if_dc_cardbus.c | 5 | ||||
-rw-r--r-- | sys/dev/ic/dc.c | 6 | ||||
-rw-r--r-- | sys/dev/pci/if_dc_pci.c | 3 |
3 files changed, 9 insertions, 5 deletions
diff --git a/sys/dev/cardbus/if_dc_cardbus.c b/sys/dev/cardbus/if_dc_cardbus.c index d21ea5e132e..3c2f10f0692 100644 --- a/sys/dev/cardbus/if_dc_cardbus.c +++ b/sys/dev/cardbus/if_dc_cardbus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_dc_cardbus.c,v 1.15 2004/10/07 21:16:59 brad Exp $ */ +/* $OpenBSD: if_dc_cardbus.c,v 1.16 2005/01/14 15:04:52 brad Exp $ */ #include <sys/param.h> #include <sys/systm.h> @@ -145,7 +145,8 @@ dc_cardbus_attach(parent, self, aux) if (PCI_PRODUCT(ca->ca_id) == PCI_PRODUCT_XIRCOM_X3201_3_21143) { sc->dc_type = DC_TYPE_XIRCOM; - sc->dc_flags |= DC_TX_INTR_ALWAYS|DC_TX_COALESCE; + sc->dc_flags |= DC_TX_INTR_ALWAYS|DC_TX_COALESCE | + DC_TX_ALIGN; sc->dc_pmode = DC_PMODE_MII; bcopy(ca->ca_cis.funce.network.netid, diff --git a/sys/dev/ic/dc.c b/sys/dev/ic/dc.c index b8bd247de92..42101cb715c 100644 --- a/sys/dev/ic/dc.c +++ b/sys/dev/ic/dc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dc.c,v 1.78 2005/01/08 06:02:59 brad Exp $ */ +/* $OpenBSD: dc.c,v 1.79 2005/01/14 15:04:51 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -2739,7 +2739,9 @@ dc_start(ifp) if (m_head == NULL) break; - if (sc->dc_flags & DC_TX_COALESCE) { + if (sc->dc_flags & DC_TX_COALESCE && + (m_head->m_next != NULL || + sc->dc_flags & DC_TX_ALIGN)) { #ifdef ALTQ /* note: dc_coal breaks the poll-and-dequeue rule. * if dc_coal fails, we lose the packet. diff --git a/sys/dev/pci/if_dc_pci.c b/sys/dev/pci/if_dc_pci.c index f839eb92286..84053ad78ae 100644 --- a/sys/dev/pci/if_dc_pci.c +++ b/sys/dev/pci/if_dc_pci.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_dc_pci.c,v 1.46 2005/01/08 06:02:59 brad Exp $ */ +/* $OpenBSD: if_dc_pci.c,v 1.47 2005/01/14 15:04:52 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999 @@ -318,6 +318,7 @@ void dc_pci_attach(parent, self, aux) sc->dc_type = DC_TYPE_DM9102; sc->dc_flags |= DC_TX_COALESCE|DC_TX_INTR_ALWAYS; sc->dc_flags |= DC_REDUCED_MII_POLL|DC_TX_STORENFWD; + sc->dc_flags |= DC_TX_ALIGN; sc->dc_pmode = DC_PMODE_MII; /* Increase the latency timer value. */ |