On 2018/08/18 08:38, Stefan Sperling wrote: > Thank you for taking care of axen(4). > The problems with this driver have been known for some time. > > On Tue, Aug 07, 2018 at 02:04:24PM +0000, sc.dy...@gmail.com wrote: >> - header: fix comments >> - header: fix unused L3 type mask definition >> - rxeof: Avoid allocating mbuf if checksum errors are detected. >> - rxeof: Avoid loop to extract packets if pkt_count is 0. >> - rxeof: Add more sanity checks. >> - rxeof: Increament if_ierror in some error paths. >> - qctrl: Apply queuing control parameters from FreeBSD axge(4). >> - qctrl: Set qctrl in miireg_statchg dynamically, not statically. >> - Use DMA buffer aligned at 64KB boundary to avoid xhci bug. > > You're actually switching to a 64KB buffer size as well, not only to > 64KB alignment. That is a relatively large size. The previous code > was using 8KB, 16KB, and 24KB buffers. Do I understand correctly > that the qctrl configuration allows hardware to provide only up > to 0x18*1024 = 24KB bytes of packet data per Rx interrupt?
Currently patched axen uses 64kB RX buffer. If axen works with 24kB RX buffer, 24kB should be used. The original code of FreeBSD axge used 24kB buffer but has incleased to 64kB buf. I don't know why. log of rev 268582 says: > - The maximum RX buffer was incorrectly set. Increase it to 64K for > now, until the exact limit is understood. > > Regardless, in my opinion your diff improves this driver which > has not seen any regular maintainance in a long time. > If another developer (remi? mlarkin?) provides an OK I will commit it. > The patch around axen_alloc_buffer() is avoid the xhci bug. I don't recommand to commit this part into the tree. The xhci.c should be fixed first.