svn commit: r358698 - head/sys/dev/ixl
Leandro Lupori
luporl at FreeBSD.org
Fri Mar 6 12:37:05 UTC 2020
Author: luporl
Date: Fri Mar 6 12:37:04 2020
New Revision: 358698
URL: https://svnweb.freebsd.org/changeset/base/358698
Log:
ixl: Add missing conversions from/to LE16
This fixes some errors on PPC64, during attach and when trying to assign an IP
to an interface. With this change, basic operation of X710 NICs is now
possible.
This also fixes builds with IXL_DEBUG enabled
Reviewed by: erj
Sponsored by: Eldorado Research Institute (eldorado.org.br)
Differential Revision: https://reviews.freebsd.org/D23975
Modified:
head/sys/dev/ixl/if_ixl.c
head/sys/dev/ixl/ixl_pf_main.c
Modified: head/sys/dev/ixl/if_ixl.c
==============================================================================
--- head/sys/dev/ixl/if_ixl.c Fri Mar 6 12:02:42 2020 (r358697)
+++ head/sys/dev/ixl/if_ixl.c Fri Mar 6 12:37:04 2020 (r358698)
@@ -398,11 +398,11 @@ ixl_if_attach_pre(if_ctx_t ctx)
enum i40e_status_code status;
int error = 0;
- INIT_DBG_DEV(dev, "begin");
-
dev = iflib_get_dev(ctx);
pf = iflib_get_softc(ctx);
+ INIT_DBG_DEV(dev, "begin");
+
vsi = &pf->vsi;
vsi->back = pf;
pf->dev = dev;
@@ -588,10 +588,11 @@ ixl_if_attach_post(if_ctx_t ctx)
int error = 0;
enum i40e_status_code status;
- INIT_DBG_DEV(dev, "begin");
-
dev = iflib_get_dev(ctx);
pf = iflib_get_softc(ctx);
+
+ INIT_DBG_DEV(dev, "begin");
+
vsi = &pf->vsi;
vsi->ifp = iflib_get_ifp(ctx);
hw = &pf->hw;
Modified: head/sys/dev/ixl/ixl_pf_main.c
==============================================================================
--- head/sys/dev/ixl/ixl_pf_main.c Fri Mar 6 12:02:42 2020 (r358697)
+++ head/sys/dev/ixl/ixl_pf_main.c Fri Mar 6 12:37:04 2020 (r358698)
@@ -1123,20 +1123,22 @@ ixl_switch_config(struct ixl_pf *pf)
if (pf->dbg_mask & IXL_DBG_SWITCH_INFO) {
device_printf(dev,
"Switch config: header reported: %d in structure, %d total\n",
- sw_config->header.num_reported, sw_config->header.num_total);
- for (int i = 0; i < sw_config->header.num_reported; i++) {
+ LE16_TO_CPU(sw_config->header.num_reported),
+ LE16_TO_CPU(sw_config->header.num_total));
+ for (int i = 0;
+ i < LE16_TO_CPU(sw_config->header.num_reported); i++) {
device_printf(dev,
"-> %d: type=%d seid=%d uplink=%d downlink=%d\n", i,
sw_config->element[i].element_type,
- sw_config->element[i].seid,
- sw_config->element[i].uplink_seid,
- sw_config->element[i].downlink_seid);
+ LE16_TO_CPU(sw_config->element[i].seid),
+ LE16_TO_CPU(sw_config->element[i].uplink_seid),
+ LE16_TO_CPU(sw_config->element[i].downlink_seid));
}
}
/* Simplified due to a single VSI */
- vsi->uplink_seid = sw_config->element[0].uplink_seid;
- vsi->downlink_seid = sw_config->element[0].downlink_seid;
- vsi->seid = sw_config->element[0].seid;
+ vsi->uplink_seid = LE16_TO_CPU(sw_config->element[0].uplink_seid);
+ vsi->downlink_seid = LE16_TO_CPU(sw_config->element[0].downlink_seid);
+ vsi->seid = LE16_TO_CPU(sw_config->element[0].seid);
return (ret);
}
@@ -2058,12 +2060,14 @@ ixl_add_hw_filters(struct ixl_vsi *vsi, int flags, int
bcopy(f->macaddr, b->mac_addr, ETHER_ADDR_LEN);
if (f->vlan == IXL_VLAN_ANY) {
b->vlan_tag = 0;
- b->flags = I40E_AQC_MACVLAN_ADD_IGNORE_VLAN;
+ b->flags = CPU_TO_LE16(
+ I40E_AQC_MACVLAN_ADD_IGNORE_VLAN);
} else {
- b->vlan_tag = f->vlan;
+ b->vlan_tag = CPU_TO_LE16(f->vlan);
b->flags = 0;
}
- b->flags |= I40E_AQC_MACVLAN_ADD_PERFECT_MATCH;
+ b->flags |= CPU_TO_LE16(
+ I40E_AQC_MACVLAN_ADD_PERFECT_MATCH);
f->flags &= ~IXL_FILTER_ADD;
j++;
More information about the svn-src-head
mailing list