wifipineapple-openwrt/target/linux/generic/patches-3.6
Felix Fietkau 16f14cc21f kernel: align the skb padding to power of two
The skb is usually started by a padding which allows the protocols in the
network stack to add their headers in front of the payload. The skb can be
reallocated in case the preallocated padding is not large enough. This can for
example happen in the function __skb_cow which will check the requested extra
headroom and allocate more buffer when the requested headroom is bigger than
the available one. The extra buffer is aligned again to the multiple of the
NET_SKB_PAD of the target architecture.

The macro used to create the multiple of the NET_SKB_PAD is written in a way
which allows only values power two as alignment parameter. The currently used
value of 48 bytes can not be written as n ** 2 but as 2 ** 4 + 2 ** 5. The
extra buffer is therefore not always the multiple of 48 but can be 16, 64, 80,
128, 144 and so on. The generated values are also not monotonic (48 requested
bytes are mapped to 80 allocated bytes and 49 requested bytes are mapped to 64
allocated bytes).

These unexpected small values result in more reallocations of the buffer. This
was noticed prominently during tests between two QCA9558 720 MHz devices which
were connected via ethernet to PCs and had a HT40 802.11n 3x3 link between each
other. The throughput PC-to-PC during iperf TCP runs increased reliable from
186 Mibit/s to 214 Mibit/s in one direction and from 195 Mibit/s to 220 Mibit/s
in the other direction. This is a performance increase of ~14% just by reducing
the amount of reallocations.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37948 3c298f89-4303-0410-b956-a3cf2f4a3e73
2013-09-11 14:30:15 +00:00
..
001-usb-host-ehci-platform-BUG_ON-to-WARN_ON-on-probe.patch generic/3.6: add platform specific power callbacks to {e,o}hci_platform drivers 2012-12-22 12:11:06 +00:00
002-usb-host-ohci-platform-BUG_ON-to-WARN_ON-on-probe.patch generic/3.6: add platform specific power callbacks to {e,o}hci_platform drivers 2012-12-22 12:11:06 +00:00
003-usb-host-ehci-platform-add-platform-specific-power-c.patch generic/3.6: add platform specific power callbacks to {e,o}hci_platform drivers 2012-12-22 12:11:06 +00:00
004-usb-host-ohci-platform-add-platform-specific-power-c.patch generic/3.6: add platform specific power callbacks to {e,o}hci_platform drivers 2012-12-22 12:11:06 +00:00
007-hso-Earlier-catch-of-error-condition.patch kernel: fix arch-dependent bug in hso module 2013-09-10 13:47:44 +00:00
008-hso-Fix-stack-corruption-on-some-architectures.patch kernel: fix arch-dependent bug in hso module 2013-09-10 13:47:44 +00:00
010-mtd_mp25p80_add_gd25q32_gd25q64.patch linux/3.6: refresh patches 2013-02-01 17:30:15 +00:00
020-ssb_update.patch kernel: update bcma and ssb to version from wireless-testing/master tag master-2013-07-18 2013-07-19 12:02:34 +00:00
025-bcma_backport.patch kernel: update bcma and ssb to version from wireless-testing/master tag master-2013-07-18 2013-07-19 12:02:34 +00:00
026-bcma_pcie_up_down.patch kernel: fix DMA error when BCM4331 is connected to BCM4706 2013-08-05 16:17:05 +00:00
060-hso_devices.patch kernel: update linux 3.6 to 3.6.5 2012-10-31 20:09:39 +00:00
060-tcp-ecn-dont-delay-ACKS-after-CE.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
061-arm_xz_decompressor_build_fix.patch [kernel] ARM: fix XZ decompressor stub build failure on strstr() 2012-10-24 15:57:31 +00:00
062-mips_decompressor_build_fix.patch generic: refresh 3.6 patches 2012-11-13 20:57:13 +00:00
065-8139cp-fixes.patch generic: fix 8139cp patch for 3.6 2012-12-12 08:37:27 +00:00
084-perf_mkstemp_build_fix.patch generic: refresh patches 2012-12-14 08:47:39 +00:00
084-x86_fix_perf_uclibc_build.patch generic: refresh patches 2012-12-14 08:47:39 +00:00
090-CVE-2013-1763.patch kernel: fix CVE-2013-1763 in older kernels 2013-05-12 10:55:12 +00:00
100-overlayfs.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
102-ehci_hcd_ignore_oc.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
110-fix_mtd_include.patch
131-atm-fixes.patch Update linux-atm fixes to reflect the final upstream pull request 2012-12-02 13:04:04 +00:00
132-solos-dma.patch kernel: add solos-pci patches from 3.8 for new hardware 2012-12-20 17:14:57 +00:00
200-fix_localversion.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
201-extra_optimization.patch build: unify target independent optimization options 2013-07-29 09:38:29 +00:00
202-reduce_module_size.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
210-darwin_scripts_include.patch kernel: patch in a working copy of elf.h instead of using relative path based hackery in #include statements 2012-12-02 15:26:19 +00:00
211-stddef_include.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
212-byteshift_portability.patch linux-3.6: fix portability of some includes files in tools/ used on the host 2012-11-04 17:01:15 +00:00
220-module_exports.patch kernel: fix stripping symbol exports 2012-12-02 17:42:17 +00:00
230-openwrt_lzma_options.patch
250-netfilter_depends.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
251-sound_kconfig.patch kernel: make SND_COMPRESS_OFFLOAD symbol visible for selection (#13193) 2013-03-19 14:13:39 +00:00
252-mv_cesa_depends.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
253-ssb_b43_default_on.patch
254-textsearch_kconfig_hacks.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
255-lib80211_kconfig_hacks.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
256-crypto_add_kconfig_prompts.patch
257-wireless_ext_kconfig_hack.patch
258-netfilter_netlink_kconfig_hack.patch
259-compressor_kconfig_hack.patch kernel: make zlib and lzo modules selectable 2013-05-09 20:50:07 +00:00
260-move_bcm963xx_tag.patch Revert "target specific patches have nothing to do in generic.." 2012-11-19 12:38:26 +00:00
270-regmap_dynamic.patch kernel: set regmap-core module license 2013-03-17 19:45:48 +00:00
300-mips_expose_boot_raw.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
301-mips_image_cmdline_hack.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
302-mips_no_branch_likely.patch mips: use -mno-branch-likely for kernel and userspace, saves ~11k kernel size after lzma and ~12k squashfs size in the default configuration 2012-12-28 19:17:19 +00:00
303-mips_fix_kexec.patch
304-mips_disable_fpu.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
305-mips_module_reloc.patch mips: use -mno-branch-likely for kernel and userspace, saves ~11k kernel size after lzma and ~12k squashfs size in the default configuration 2012-12-28 19:17:19 +00:00
306-mips_mem_functions_performance.patch
308-mips-show-correct-cpu-name-for-24KEc.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
309-mips_fuse_workaround.patch
310-arm_module_unresolved_weak_sym.patch
320-ppc4xx_optimization.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
321-powerpc_crtsavres_prereq.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
322-ppc4xx-crypto-compile-fix.patch
330-mips-add-crash-and-kdump-support.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
331-mips-kexec-enhanche-the-support.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
332-mips-kexec-init-the-arguments-for-the-new-kernel-image.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
333-mips-kexec-get-kernel-parameters-from-kexec-tools.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
334-mips-fix-compiling-failure-of-relocate_kernel.patch
335-mips-kexec-cleanup-kexec-tools-parameter-handling.patch generic: fix build failure in MIPS kexec code if SMP is enabled 2013-01-29 09:44:58 +00:00
340-module_alloc_size_check.patch kernel: update linux 3.6 to 3.6.8 2012-11-29 07:42:19 +00:00
400-rootfs_split.patch linux: generic: fix split_squashfs for 3.6 2012-11-06 00:48:21 +00:00
401-partial_eraseblock_write.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
410-mtd_info_move_forward_decl.patch
420-redboot_space.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
430-mtd_myloader_partition_parser.patch
440-block2mtd_init.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
441-block2mtd_refresh.patch kernel: fixing a potential deadlock in block2mtd for kernel 3.6/3.8/3.9 2013-08-26 17:47:14 +00:00
442-block2mtd_probe.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
450-mtd_plat_nand_chip_fixup.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
451-mtd_fix_nand_correct_data_return_code.patch
460-cfi_cmdset_0002_no_erase_suspend.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
470-mtd_m25p80_add_pm25lv_flash_support.patch linux/3.6: refresh patches 2013-02-01 17:30:15 +00:00
473-mtd_m25p80_add_w25q128.patch linux/3.6: refresh patches 2013-02-01 17:30:15 +00:00
474-mtd_mp25p80_add_pm25lq032.patch kernel: add missing bcma defines and header file for bcrmfmac 2013-04-28 11:10:42 +00:00
475-mtd_cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
476-mtd-m25p80-allow-to-disable-small-sector-erase.patch kernel: add missing bcma defines and header file for bcrmfmac 2013-04-28 11:10:42 +00:00
477-mtd-m25p80-add-support-for-the-EON-EN25Q64-chip.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
478-mtd-partial_eraseblock_unlock.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
500-yaffs-Kbuild-integration.patch generic: rename yaffs patches 2012-10-30 21:16:21 +00:00
501-yaffs-Fix-directory-unlinking-in-yaffs1-mode.patch generic: replace yaffs symlink fix patch 2012-10-30 21:16:23 +00:00
502-yaffs-Switch-from-semaphores-to-mutexes.patch generic: replace yaffs mutex_fix patch 2012-10-30 21:16:24 +00:00
503-yaffs-Replace-yaffs_dir_llseek-with-Linux-generic-ll.patch generic: replace yaffs-2.6.39 patch 2012-10-31 15:12:45 +00:00
504-yaffs-Mods-for-Linux-3.0-and-fix-a-typo.patch generic: replace yaffs-2.6.39 patch 2012-10-31 15:12:45 +00:00
505-yaffs-3.2-use-MTD_OPS_AUTO_OOB.patch generic: split yaffs-3.2-fix patch 2012-10-31 19:33:12 +00:00
506-yaffs-3.2-dont-use-i_nlink-directly.patch generic: split yaffs-3.2-fix patch 2012-10-31 19:33:12 +00:00
507-yaffs-3.3_fix.patch generic: split yaffs-3.2-fix patch 2012-10-31 19:33:12 +00:00
508-yaffs-3.3-use-mtd_-helpers.patch generic: use mtd_* helpers in the yaffs code 2012-10-31 21:17:30 +00:00
509-yaffs-3.4-add-underscore-to-mtd-internal-names.patch generic: make yaffs work on 3.6 2012-11-01 11:07:23 +00:00
510-yaffs-3.4-use-d_make_root.patch generic: make yaffs work on 3.6 2012-11-01 11:07:23 +00:00
511-yaffs-3.5-use-clear_inode.patch generic: make yaffs work on 3.6 2012-11-01 11:07:23 +00:00
512-yaffs-3.5-convert-to-use-kuid_t-kgid_t.patch generic: convert yaffs to use kuid_t and kgid_t on 3.6+ 2012-11-20 17:45:24 +00:00
513-yaffs-3.6-fix-dir_inode-ops.patch generic: convert yaffs to use kuid_t and kgid_t on 3.6+ 2012-11-20 17:45:24 +00:00
514-yaffs-3.6-use-delayed-work-instead-of-write_super.patch generic: convert yaffs to use kuid_t and kgid_t on 3.6+ 2012-11-20 17:45:24 +00:00
520-squashfs_update_xz_comp_opts.patch
530-jffs2_make_lzma_available.patch generic: rename jffs2 patches 2012-11-01 11:07:16 +00:00
531-debloat_lzma.patch generic: rename jffs2 patches 2012-11-01 11:07:16 +00:00
532-jffs2_eofdetect.patch generic: rename jffs2 patches 2012-11-01 11:07:16 +00:00
540-crypto-xz-decompression-support.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
541-ubifs-xz-decompression-support.patch generic: fix UBIFS build error if XZ compression is disabled 2013-01-02 08:53:07 +00:00
550-ubifs-symlink-xattr-support.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
600-netfilter_layer7_2.22.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
601-netfilter_layer7_pktmatch.patch
602-netfilter_layer7_match.patch
603-netfilter_layer7_2.6.36_fix.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
604-netfilter_conntrack_flush.patch linux/3.6: refresh patches 2013-02-01 17:30:15 +00:00
610-netfilter_match_bypass_default_checks.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
611-netfilter_match_bypass_default_table.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
612-netfilter_match_reduce_memory_access.patch
613-netfilter_optional_tcp_window_check.patch generic: fix tcp_window_check patch for 3.6 2012-10-27 15:42:25 +00:00
620-sched_esfq.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
621-sched_act_connmark.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
630-packet_socket_type.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
640-bridge_no_eap_forward.patch
641-bridge_always_accept_eap.patch
642-bridge_port_isolate.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
643-bridge_remove_ipv6_dependency.patch kernel: update linux 3.6 to 3.6.4 2012-10-28 18:59:39 +00:00
644-bridge_optimize_netfilter_hooks.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
650-pppoe_header_pad.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
651-wireless_mesh_header.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
652-atm_header_changes.patch
653-disable_netlink_trim.patch kernel: update linux 3.6 to 3.6.7 2012-11-18 08:41:31 +00:00
655-increase_skb_pad.patch kernel: align the skb padding to power of two 2013-09-11 14:30:15 +00:00
700-swconfig.patch generic: export include/linux/switch.h on 3.3, 3.6 2012-12-14 12:11:48 +00:00
701-phy_extension.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
702-phy_add_aneg_done_function.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
703-phy-add-detach-callback-to-struct-phy_driver.patch generic: add detach callback to struct phy_driver 2013-02-07 15:18:24 +00:00
710-phy-add-mdio_register_board_info.patch generic: add detach callback to struct phy_driver 2013-02-07 15:18:24 +00:00
720-phy_adm6996.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
721-phy_packets.patch kernel: allow __netdev_alloc_skb_ip_align to be called with dev = NULL 2013-04-22 15:01:36 +00:00
722-phy_mvswitch.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
723-phy_ip175c.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
724-phy_ar8216.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
725-phy_rtl8306.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
726-phy_rtl8366.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
727-phy-rtl8367.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
728-phy-micrel.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
729-phy-rtl8367b.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
729-phy-tantos.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
730-phy_b53.patch generic: add b53 swconfig switch driver 2013-01-23 10:12:33 +00:00
750-hostap_txpower.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
800-usb-ohci-multiple-platform-driver-fix.patch generic: add EHCI|OHCI platform driver fix to 3.[36] 2013-01-17 13:54:14 +00:00
801-usb-ehci-multiple-platform-driver-fix.patch generic: add EHCI|OHCI platform driver fix to 3.[36] 2013-01-17 13:54:14 +00:00
810-pci_disable_common_quirks.patch kernel: disable more pci quirks to save space on platforms that don't need them 2012-12-03 10:33:47 +00:00
811-pci_disable_usb_common_quirks.patch generic: update pci_disable_usb_common_quirks patch 2012-12-14 08:32:56 +00:00
820-usb_add_usb_find_device_by_name.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
830-ledtrig_morse.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
831-ledtrig_netdev.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
832-ledtrig_usbdev.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
840-rtc7301.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
841-rtc_pt7c4338.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
861-04_spi_gpio_implement_spi_delay.patch
862-gpio_spi_driver.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
863-gpiommc.patch strict_strtoul is obsolete, use kstrtoul instead 2013-07-27 09:23:18 +00:00
864-gpiommc_configfs_locking.patch strict_strtoul is obsolete, use kstrtoul instead 2013-07-27 09:23:18 +00:00
870-hifn795x_byteswap.patch
880-gateworks_system_controller.patch kernel: fix broken depends syntax introduced in r37933 2013-09-11 12:45:24 +00:00
900-slab_maxsize.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
901-debloat_sock_diag.patch kernel: update linux 3.6 to 3.6.11 2012-12-18 14:41:16 +00:00
902-debloat_proc.patch kernel: do not strip /proc/net/ip_mr_* in the /proc debloat patch, it is used by iproute2 2013-05-02 15:59:57 +00:00
903-debloat_direct_io.patch kernel: fix a warning in the O_DIRECT debloat patch 2012-12-17 20:55:49 +00:00
910-kobject_uevent.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
911-kobject_add_broadcast_uevent.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
921-use_preinit_as_init.patch kernel: update linux 3.6 to 3.6.5 2012-10-31 20:09:39 +00:00
922-always-create-console-node-in-initramfs.patch kernel: ensure that /dev/console exists in initramfs 2013-08-27 12:02:54 +00:00
930-crashlog.patch kernel: crashlog: Avoid out-of-bounds write 2013-08-21 20:59:25 +00:00
940-ocf_kbuild_integration.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
941-ocf_20120127.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
950-vm_exports.patch kernel: add missing bcma defines and header file for bcrmfmac 2013-04-28 11:10:42 +00:00
960-decompress_unlzo_fix.patch
970-remove-unsane-filenames-from-deps_initramfs-list.patch generic: sanitize deps_initramfs list 2012-11-09 09:07:29 +00:00
980-arm_openwrt_machtypes.patch [ixp4xx:] add support for the Tonze AP-422/425 2012-11-11 21:04:30 +00:00
992-mpcore_wdt_fix_watchdog_counter_loading.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
993-mpcore_wdt_fix_wdioc_setoptions_handling.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
994-mpcore_wdt_fix_timer_mode_setup.patch [kernel] make all 3.6 patches apply and build 2012-10-24 13:05:22 +00:00
a02-swconfig-revert-portid-snd_portid-usage.patch kernel: backport switch user API changes after r36283 2013-04-09 15:47:01 +00:00
a03-swconfig-revert-UAPI-disintegration.patch kernel: backport switch user API changes after r36283 2013-04-09 15:47:01 +00:00