I posted a few weeks ago that I could reboot my Pinebook by doing:
% cat /dev/video0 > foo.jpg
I have now got it to drop into DDB and found that it is triggering an
assertion in sys/arch/arm/arm32/bus_dma.c:_bus_dmamap_sync().
KASSERTMSG(len > 0 && offset + len <= map->dm_mapsize,
"len %lu offset %lu mapsize %lu",
len, offset, map->dm_mapsize);
with len = 0.
I'm guessing that the video camera is returning bad USB packets.
Could we put some more checking into the USB stack to ignore zero length
frames and not try to do cache synchronization operations for them ?
The traceback is:
_bus_dmamap_sync()
usb_transfer_complete()
ehci_softintr()
usb_soft_intr()
softint_dispatch()
cpu_switchto_softint()
Don't have a core dump as the ARM images only have a small swap
partition.
Robert Swindells