require that the DMA receive buffers be aligned. The driver was
deliberately mis-aligning by 2 bytes, to force the layer-2/3
headers to 32-bit alignment.
Workaround: if chip is a 5701, and is in PCI-X mode, leave the DMA
buffers aligned. If the host CPU requires alignment, copy the buffer
after reception to force aligment.
Tested on an i386 in PCI-X bus, with __NO_STRICT_ALIGNMENT forced off.
Patch and comments reworked to minimize drift from
FreeBSD if_bge.c rev 1.14.
trying to include grep in the miniroot currently causes a build
failure, ref. PR#20431.
Also correct a typo/inconsistency "no disk label" -> "no disklabel"
(the disklabel program is not consistent in it's use...), here we
just compensate.
Reviewed by Steve Woodford.
current incarnation causes a build failure for the miniroot.
Use awk instead; this also eliminates the need to include "cut" in
the mac68k miniroot.
Reviewed by Scott Reynolds (except for the "cut" eviction).
caused by bad interaction of sbp2_free() and sbp2_abort().
sbp2_abort() requires that its argument ORB is on the
"active" list, and it puts it onto the freelist - sometimes.
So we had 2 causes of corruption:
-removing the ORB from a list which it isn't on
-free()ing recycleable items on the ORB freelist
-minor cosmetics
This reveals some ugly points in the sd driver, as
the PQUIRK_ONLYBIG flag (there are 6, 10, 12 and 16 byte
CDBs for r/w) and the handling of small/big mode
select/sense. This should be cleaned up.
Also the "long" struct disk_parms.disksize is worth
a thought...
computers, by appending appropriate boot file systems to the image and
then creating a disklabel using sunlabel(8).
Inspired by distrib/utils/mksunbootcd, except that this is a shell script
instead of being a C program that would have needed to become a host tool.
(*mulsi3_compare0, *mulsi_compare0_scratch, *mulsi3addsi_compare0,
*mulsi3addsi_compare0_scratch): Predicate on !arm_is_xscale.
(mulhisi3, *mulhisi3addsi, *mulhidi3adddi): New patterns, predicated
on arm_is_xscale.