svn commit: r261150 - head/sys/dev/virtio/network

Bryan Venteicher bryanv at FreeBSD.org
Sat Jan 25 07:13:48 UTC 2014


Author: bryanv
Date: Sat Jan 25 07:13:47 2014
New Revision: 261150
URL: http://svnweb.freebsd.org/changeset/base/261150

Log:
  Read and write the MAC address in the config space byte by byte

Modified:
  head/sys/dev/virtio/network/if_vtnet.c

Modified: head/sys/dev/virtio/network/if_vtnet.c
==============================================================================
--- head/sys/dev/virtio/network/if_vtnet.c	Sat Jan 25 07:01:51 2014	(r261149)
+++ head/sys/dev/virtio/network/if_vtnet.c	Sat Jan 25 07:13:47 2014	(r261150)
@@ -3485,6 +3485,7 @@ static void
 vtnet_set_hwaddr(struct vtnet_softc *sc)
 {
 	device_t dev;
+	int i;
 
 	dev = sc->vtnet_dev;
 
@@ -3492,9 +3493,11 @@ vtnet_set_hwaddr(struct vtnet_softc *sc)
 		if (vtnet_ctrl_mac_cmd(sc, sc->vtnet_hwaddr) != 0)
 			device_printf(dev, "unable to set MAC address\n");
 	} else if (sc->vtnet_flags & VTNET_FLAG_MAC) {
-		virtio_write_device_config(dev,
-		    offsetof(struct virtio_net_config, mac),
-		    sc->vtnet_hwaddr, ETHER_ADDR_LEN);
+		for (i = 0; i < ETHER_ADDR_LEN; i++) {
+			virtio_write_dev_config_1(dev,
+			    offsetof(struct virtio_net_config, mac) + i,
+			    sc->vtnet_hwaddr[i]);
+		}
 	}
 }
 
@@ -3502,6 +3505,7 @@ static void
 vtnet_get_hwaddr(struct vtnet_softc *sc)
 {
 	device_t dev;
+	int i;
 
 	dev = sc->vtnet_dev;
 
@@ -3519,8 +3523,10 @@ vtnet_get_hwaddr(struct vtnet_softc *sc)
 		return;
 	}
 
-	virtio_read_device_config(dev, offsetof(struct virtio_net_config, mac),
-	    sc->vtnet_hwaddr, ETHER_ADDR_LEN);
+	for (i = 0; i < ETHER_ADDR_LEN; i++) {
+		sc->vtnet_hwaddr[i] = virtio_read_dev_config_1(dev,
+		    offsetof(struct virtio_net_config, mac) + i);
+	}
 }
 
 static void


More information about the svn-src-head mailing list