Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/pci Set ONES (must be ones) bits in tmd1 of tx descr...



details:   https://anonhg.NetBSD.org/src/rev/6e3992ae21d6
branches:  trunk
changeset: 518282:6e3992ae21d6
user:      onoe <onoe%NetBSD.org@localhost>
date:      Tue Nov 27 13:49:03 2001 +0000

description:
Set ONES (must be ones) bits in tmd1 of tx descriptors.
This fix avoids VMware 3.0/WinXP to crash.

diffstat:

 sys/dev/pci/if_pcn.c |  22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

diffs (50 lines):

diff -r 2c23de166c98 -r 6e3992ae21d6 sys/dev/pci/if_pcn.c
--- a/sys/dev/pci/if_pcn.c      Tue Nov 27 12:23:31 2001 +0000
+++ b/sys/dev/pci/if_pcn.c      Tue Nov 27 13:49:03 2001 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_pcn.c,v 1.5 2001/11/13 07:48:44 lukem Exp $ */
+/*     $NetBSD: if_pcn.c,v 1.6 2001/11/27 13:49:03 onoe Exp $  */
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -65,7 +65,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_pcn.c,v 1.5 2001/11/13 07:48:44 lukem Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_pcn.c,v 1.6 2001/11/27 13:49:03 onoe Exp $");
 
 #include "bpfilter.h"
 
@@ -1000,11 +1000,10 @@
                                sc->sc_txdescs[nexttx].tmd2 =
                                    htole32(dmamap->dm_segs[seg].ds_addr);
                                sc->sc_txdescs[nexttx].tmd1 =
-                                   ((nexttx == sc->sc_txnext) ? 0 :
-                                    htole32(LE_T1_OWN)) |
-                                   htole32((LE_BCNT(dmamap->dm_segs[
-                                                               seg].ds_len) &
-                                            LE_T1_BCNT_MASK));
+                                   htole32(LE_T1_ONES |
+                                   (nexttx == sc->sc_txnext ? 0 : LE_T1_OWN) |
+                                   (LE_BCNT(dmamap->dm_segs[seg].ds_len) &
+                                    LE_T1_BCNT_MASK));
                                lasttx = nexttx;
                        }
                } else {
@@ -1021,11 +1020,10 @@
                                    htole32(dmamap->dm_segs[seg].ds_addr);
                                sc->sc_txdescs[nexttx].tmd2 = 0;
                                sc->sc_txdescs[nexttx].tmd1 =
-                                   ((nexttx == sc->sc_txnext) ? 0 :
-                                    htole32(LE_T1_OWN)) |
-                                   htole32((LE_BCNT(dmamap->dm_segs[
-                                                               seg].ds_len) &
-                                            LE_T1_BCNT_MASK));
+                                   htole32(LE_T1_ONES |
+                                   (nexttx == sc->sc_txnext ? 0 : LE_T1_OWN) |
+                                   (LE_BCNT(dmamap->dm_segs[seg].ds_len) &
+                                    LE_T1_BCNT_MASK));
                                lasttx = nexttx;
                        }
                }



Home | Main Index | Thread Index | Old Index