AArch64 is capable of 128-bit memory accesses without alignment restrictions, which makes it both possible and highly practical to slurp up a typical 20-byte IP header in just 2 loads. Implement our own version of ip_fast_checksum() to take advantage of that, resulting in considerably fewer instructions and memory accesses than the generic version. We can also get more optimal code generation for csum_fold() by defining it a slightly different way round from the generic version, so throw that into the mix too. Suggested-by: Luke Starrett <luke.starrett@broadcom.com> Acked-by: Luke Starrett <luke.starrett@broadcom.com> Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
55 lines
1.2 KiB
Makefile
55 lines
1.2 KiB
Makefile
generic-y += bug.h
|
|
generic-y += bugs.h
|
|
generic-y += clkdev.h
|
|
generic-y += cputime.h
|
|
generic-y += current.h
|
|
generic-y += delay.h
|
|
generic-y += div64.h
|
|
generic-y += dma.h
|
|
generic-y += dma-contiguous.h
|
|
generic-y += early_ioremap.h
|
|
generic-y += emergency-restart.h
|
|
generic-y += errno.h
|
|
generic-y += ftrace.h
|
|
generic-y += hw_irq.h
|
|
generic-y += ioctl.h
|
|
generic-y += ioctls.h
|
|
generic-y += ipcbuf.h
|
|
generic-y += irq_regs.h
|
|
generic-y += kdebug.h
|
|
generic-y += kmap_types.h
|
|
generic-y += kvm_para.h
|
|
generic-y += local.h
|
|
generic-y += local64.h
|
|
generic-y += mcs_spinlock.h
|
|
generic-y += mm-arch-hooks.h
|
|
generic-y += mman.h
|
|
generic-y += msgbuf.h
|
|
generic-y += msi.h
|
|
generic-y += mutex.h
|
|
generic-y += pci.h
|
|
generic-y += poll.h
|
|
generic-y += preempt.h
|
|
generic-y += resource.h
|
|
generic-y += rwsem.h
|
|
generic-y += sections.h
|
|
generic-y += segment.h
|
|
generic-y += sembuf.h
|
|
generic-y += serial.h
|
|
generic-y += shmbuf.h
|
|
generic-y += simd.h
|
|
generic-y += sizes.h
|
|
generic-y += socket.h
|
|
generic-y += sockios.h
|
|
generic-y += swab.h
|
|
generic-y += switch_to.h
|
|
generic-y += termbits.h
|
|
generic-y += termios.h
|
|
generic-y += topology.h
|
|
generic-y += trace_clock.h
|
|
generic-y += types.h
|
|
generic-y += unaligned.h
|
|
generic-y += user.h
|
|
generic-y += vga.h
|
|
generic-y += xor.h
|