CVSROOT: /cvs
Module name: src
Changes by: [email protected] 2025/10/10 05:56:48
Modified files:
sys/dev/pci : if_ice.c
Log message:
Fix various errors on big-endian systems. With this ice(4) works on sparc64.
In ice_copy_rxq_ctx_to_hw() the buffer passed in is already in little
endian and so one needs to call bus_space_write_raw_4(). Wrap that into
ICE_WRITE_RAW() to be consistent.
In ice_txeof() the calculation of dtype was all messed up. The 64bit
descriptor word cmd_type_offset_bsz needs to be converted to host byte
order and then all the masking and shifting can happen. Also there is
no need to byte swap ICE_TX_DESC_DTYPE_DESC_DONE since dtype is already
in host byte order.
On code inspection another unneeded byte swap was found in
ice_tx_setup_offload(). The vlan tag needs to be shifted into position
unswapped and the full word is swapped at the end.
OK stsp@