diff options
| -rw-r--r-- | usr/src/uts/sun4v/io/vnet_rxdring.c | 16 | ||||
| -rw-r--r-- | usr/src/uts/sun4v/io/vsw_rxdring.c | 16 |
2 files changed, 26 insertions, 6 deletions
diff --git a/usr/src/uts/sun4v/io/vnet_rxdring.c b/usr/src/uts/sun4v/io/vnet_rxdring.c index 085a79492e..3e893c1829 100644 --- a/usr/src/uts/sun4v/io/vnet_rxdring.c +++ b/usr/src/uts/sun4v/io/vnet_rxdring.c @@ -20,9 +20,9 @@ */ /* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ + #include <sys/types.h> #include <sys/errno.h> #include <sys/sysmacros.h> @@ -113,7 +113,7 @@ extern boolean_t vgen_inject_error(vgen_ldc_t *ldcp, int error); int vgen_create_rx_dring(vgen_ldc_t *ldcp) { - int i; + int i, j; int rv; uint32_t ncookies; ldc_mem_info_t minfo; @@ -207,6 +207,16 @@ vgen_create_rx_dring(vgen_ldc_t *ldcp) } ldcp->rx_data_ncookies = ncookies; + for (j = 1; j < ncookies; j++) { + rv = ldc_mem_nextcookie(ldcp->rx_data_handle, + &(ldcp->rx_data_cookie[j])); + if (rv != 0) { + DERR(vgenp, ldcp, "ldc_mem_nextcookie " + "failed rv (%d)", rv); + goto fail; + } + } + /* * Successful in binding the handle to rx data area. Now setup mblks * around each data buffer and setup the descriptors to point to these diff --git a/usr/src/uts/sun4v/io/vsw_rxdring.c b/usr/src/uts/sun4v/io/vsw_rxdring.c index 8ddc7743dc..0e3867e194 100644 --- a/usr/src/uts/sun4v/io/vsw_rxdring.c +++ b/usr/src/uts/sun4v/io/vsw_rxdring.c @@ -20,9 +20,9 @@ */ /* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. */ + #include <sys/types.h> #include <sys/errno.h> #include <sys/sysmacros.h> @@ -247,7 +247,7 @@ fail: static int vsw_setup_rx_dring(vsw_ldc_t *ldcp, dring_info_t *dp) { - int i; + int i, j; int rv; size_t data_sz; vio_mblk_t *vmp; @@ -315,6 +315,16 @@ vsw_setup_rx_dring(vsw_ldc_t *ldcp, dring_info_t *dp) } dp->data_ncookies = ncookies; + for (j = 1; j < ncookies; j++) { + rv = ldc_mem_nextcookie(dp->data_handle, + &(dp->data_cookie[j])); + if (rv != 0) { + DERR(vswp, "%s: ldc_mem_nextcookie " + "failed rv (%d)", name, rv); + goto fail; + } + } + /* * Successful in binding the handle to rx data area. Now setup mblks * around each data buffer and setup the descriptors to point to these |
