]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
kernel: split patches folder up into backport, pending and hack folders
authorJohn Crispin <john@phrozen.org>
Sun, 25 Dec 2016 19:11:34 +0000 (20:11 +0100)
committerJohn Crispin <john@phrozen.org>
Sat, 5 Aug 2017 06:46:36 +0000 (08:46 +0200)
* properly format/comment all patches
* merge debloat patches
* merge Kconfig patches
* merge swconfig patches
* merge hotplug patches
* drop 200-fix_localversion.patch - upstream
* drop 222-arm_zimage_none.patch - unused
* drop 252-mv_cesa_depends.patch - no longer required
* drop 410-mtd-move-forward-declaration-of-struct-mtd_info.patch - unused
* drop 661-fq_codel_keep_dropped_stats.patch - outdated
* drop 702-phy_add_aneg_done_function.patch - upstream
* drop 840-rtc7301.patch - unused
* drop 841-rtc_pt7c4338.patch - upstream
* drop 921-use_preinit_as_init.patch - unused
* drop spio-gpio-old and gpio-mmc - unused

Signed-off-by: John Crispin <john@phrozen.org>
747 files changed:
include/kernel-build.mk
include/quilt.mk
include/target.mk
target/linux/generic/backport-4.9/010-Kbuild-don-t-hardcode-path-to-awk-in-scripts-ld-vers.patch [moved from target/linux/generic/patches-4.9/010-Kbuild-don-t-hardcode-path-to-awk-in-scripts-ld-vers.patch with 60% similarity]
target/linux/generic/backport-4.9/011-kbuild-export-SUBARCH.patch [moved from target/linux/generic/patches-4.9/011-kbuild-export-SUBARCH.patch with 52% similarity]
target/linux/generic/backport-4.9/020-backport_netfilter_rtcache.patch [moved from target/linux/generic/patches-4.9/020-backport_netfilter_rtcache.patch with 90% similarity]
target/linux/generic/backport-4.9/021-bridge-multicast-to-unicast.patch [moved from target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch with 99% similarity]
target/linux/generic/backport-4.9/022-net-add-devm-version-of-alloc_etherdev_mqs-function.patch [moved from target/linux/generic/patches-4.9/022-net-add-devm-version-of-alloc_etherdev_mqs-function.patch with 100% similarity]
target/linux/generic/backport-4.9/023-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.9/023-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/backport-4.9/023-2-smsc75xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.9/023-2-smsc75xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/backport-4.9/023-3-cx82310_eth-use-skb_cow_head-to-deal-with-cloned-skb.patch [moved from target/linux/generic/patches-4.9/023-3-cx82310_eth-use-skb_cow_head-to-deal-with-cloned-skb.patch with 100% similarity]
target/linux/generic/backport-4.9/023-4-sr9700-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.9/023-4-sr9700-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/backport-4.9/023-5-lan78xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.9/023-5-lan78xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/backport-4.9/023-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.9/023-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/backport-4.9/023-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.9/023-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/backport-4.9/030-01-ubifs-Drop-softlimit-and-delta-fields-from-struct-ub.patch [moved from target/linux/generic/patches-4.9/030-01-ubifs-Drop-softlimit-and-delta-fields-from-struct-ub.patch with 100% similarity]
target/linux/generic/backport-4.9/030-02-ubifs-Use-dirty_writeback_interval-value-for-wbuf-ti.patch [moved from target/linux/generic/patches-4.9/030-02-ubifs-Use-dirty_writeback_interval-value-for-wbuf-ti.patch with 100% similarity]
target/linux/generic/backport-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch [moved from target/linux/generic/patches-4.9/050-usb-dwc2-Remove-unnecessary-kfree.patch with 100% similarity]
target/linux/generic/backport-4.9/060-0002-mtd-bcm47xxsflash-use-platform_-set-get-_drvdata.patch [moved from target/linux/generic/patches-4.9/060-0002-mtd-bcm47xxsflash-use-platform_-set-get-_drvdata.patch with 100% similarity]
target/linux/generic/backport-4.9/060-0003-mtd-bcm47xxsflash-support-reading-flash-out-of-mappi.patch [moved from target/linux/generic/patches-4.9/060-0003-mtd-bcm47xxsflash-support-reading-flash-out-of-mappi.patch with 100% similarity]
target/linux/generic/backport-4.9/060-0004-mtd-bcm47xxpart-move-TRX-parsing-code-to-separated-f.patch [moved from target/linux/generic/patches-4.9/060-0004-mtd-bcm47xxpart-move-TRX-parsing-code-to-separated-f.patch with 100% similarity]
target/linux/generic/backport-4.9/060-0005-mtd-bcm47xxpart-support-layouts-with-multiple-TRX-pa.patch [moved from target/linux/generic/patches-4.9/060-0005-mtd-bcm47xxpart-support-layouts-with-multiple-TRX-pa.patch with 100% similarity]
target/linux/generic/backport-4.9/061-v4.10-0001-mtd-spi-nor-add-Macronix-mx25u25635f-to-list-of-know.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0001-mtd-spi-nor-add-Macronix-mx25u25635f-to-list-of-know.patch with 100% similarity]
target/linux/generic/backport-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch with 94% similarity]
target/linux/generic/backport-4.9/061-v4.10-0003-mtd-spi-nor-fix-flags-for-s25fl128s.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0003-mtd-spi-nor-fix-flags-for-s25fl128s.patch with 100% similarity]
target/linux/generic/backport-4.9/061-v4.10-0004-mtd-spi-nor-add-support-for-s25fl208k.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0004-mtd-spi-nor-add-support-for-s25fl208k.patch with 100% similarity]
target/linux/generic/backport-4.9/061-v4.10-0005-mtd-spi-nor-Add-at25df321-spi-nor-flash-support.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0005-mtd-spi-nor-Add-at25df321-spi-nor-flash-support.patch with 100% similarity]
target/linux/generic/backport-4.9/061-v4.10-0006-mtd-spi-nor-Add-support-for-N25Q016A.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0006-mtd-spi-nor-Add-support-for-N25Q016A.patch with 100% similarity]
target/linux/generic/backport-4.9/061-v4.10-0007-mtd-spi-nor-Add-support-for-mr25h40.patch [moved from target/linux/generic/patches-4.9/061-v4.10-0007-mtd-spi-nor-Add-support-for-mr25h40.patch with 100% similarity]
target/linux/generic/backport-4.9/062-v4.11-0001-mtd-spi-nor-Add-support-for-S3AN-spi-nor-devices.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0001-mtd-spi-nor-Add-support-for-S3AN-spi-nor-devices.patch with 98% similarity]
target/linux/generic/backport-4.9/062-v4.11-0002-mtd-spi-nor-improve-macronix_quad_enable.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0002-mtd-spi-nor-improve-macronix_quad_enable.patch with 100% similarity]
target/linux/generic/backport-4.9/062-v4.11-0003-mtd-spi-nor-remove-WARN_ONCE-message-in-spi_nor_writ.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0003-mtd-spi-nor-remove-WARN_ONCE-message-in-spi_nor_writ.patch with 100% similarity]
target/linux/generic/backport-4.9/062-v4.11-0004-mtd-spi-nor-rename-SPINOR_OP_-macros-of-the-4-byte-a.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0004-mtd-spi-nor-rename-SPINOR_OP_-macros-of-the-4-byte-a.patch with 99% similarity]
target/linux/generic/backport-4.9/062-v4.11-0005-mtd-spi-nor-add-a-stateless-method-to-support-memory.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0005-mtd-spi-nor-add-a-stateless-method-to-support-memory.patch with 98% similarity]
target/linux/generic/backport-4.9/062-v4.11-0006-mtd-spi-nor-Add-lock-unlock-support-for-f25l32pa.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0006-mtd-spi-nor-Add-lock-unlock-support-for-f25l32pa.patch with 100% similarity]
target/linux/generic/backport-4.9/062-v4.11-0007-mtd-spi-nor-Fix-S3AN-addressing-calculation.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0007-mtd-spi-nor-Fix-S3AN-addressing-calculation.patch with 100% similarity]
target/linux/generic/backport-4.9/062-v4.11-0008-mtd-spi-nor-Add-support-for-gd25q16.patch [moved from target/linux/generic/patches-4.9/062-v4.11-0008-mtd-spi-nor-Add-support-for-gd25q16.patch with 100% similarity]
target/linux/generic/backport-4.9/063-mtd-spi-nor-enable-stateless-4b-op-codes-for-mx25u25.patch [moved from target/linux/generic/patches-4.9/063-mtd-spi-nor-enable-stateless-4b-op-codes-for-mx25u25.patch with 100% similarity]
target/linux/generic/backport-4.9/064-v4.11-0001-mtd-introduce-function-max_bad_blocks.patch [moved from target/linux/generic/patches-4.9/064-v4.11-0001-mtd-introduce-function-max_bad_blocks.patch with 100% similarity]
target/linux/generic/backport-4.9/064-v4.11-0002-mtd-Add-partition-device-node-to-mtd-partition-devic.patch [moved from target/linux/generic/patches-4.9/064-v4.11-0002-mtd-Add-partition-device-node-to-mtd-partition-devic.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0001-mtd-handle-partitioning-on-devices-with-0-erasesize.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0001-mtd-handle-partitioning-on-devices-with-0-erasesize.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0002-mtd-partitions-factor-out-code-calling-parser.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0002-mtd-partitions-factor-out-code-calling-parser.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0003-mtd-partitions-add-helper-for-deleting-partition.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0003-mtd-partitions-add-helper-for-deleting-partition.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0004-mtd-partitions-remove-sysfs-files-when-deleting-all-.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0004-mtd-partitions-remove-sysfs-files-when-deleting-all-.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0005-mtd-partitions-rename-master-to-the-parent-where-app.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0005-mtd-partitions-rename-master-to-the-parent-where-app.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0006-mtd-partitions-add-support-for-subpartitions.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0006-mtd-partitions-add-support-for-subpartitions.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0007-mtd-partitions-add-support-for-partition-parsers.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0007-mtd-partitions-add-support-for-partition-parsers.patch with 100% similarity]
target/linux/generic/backport-4.9/065-v4.13-0008-mtd-extract-TRX-parser-out-of-bcm47xxpart-into-a-sep.patch [moved from target/linux/generic/patches-4.9/065-v4.13-0008-mtd-extract-TRX-parser-out-of-bcm47xxpart-into-a-sep.patch with 100% similarity]
target/linux/generic/backport-4.9/070-bcma-from-4.11.patch [moved from target/linux/generic/patches-4.9/070-bcma-from-4.11.patch with 100% similarity]
target/linux/generic/backport-4.9/071-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch [moved from target/linux/generic/patches-4.9/071-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch with 100% similarity]
target/linux/generic/backport-4.9/071-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch [moved from target/linux/generic/patches-4.9/071-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch with 100% similarity]
target/linux/generic/backport-4.9/071-v4.10-0003-net-bgmac-use-PHY-subsystem-for-initializing-PHY.patch [moved from target/linux/generic/patches-4.9/071-v4.10-0003-net-bgmac-use-PHY-subsystem-for-initializing-PHY.patch with 100% similarity]
target/linux/generic/backport-4.9/072-bcma-from-4.12.patch [moved from target/linux/generic/patches-4.9/072-bcma-from-4.12.patch with 100% similarity]
target/linux/generic/backport-4.9/075-v4.10-0001-net-phy-broadcom-Update-Auxiliary-Control-Register-m.patch [moved from target/linux/generic/patches-4.9/075-v4.10-0001-net-phy-broadcom-Update-Auxiliary-Control-Register-m.patch with 100% similarity]
target/linux/generic/backport-4.9/075-v4.10-0002-net-phy-broadcom-Add-support-for-BCM54612E.patch [moved from target/linux/generic/patches-4.9/075-v4.10-0002-net-phy-broadcom-Add-support-for-BCM54612E.patch with 100% similarity]
target/linux/generic/backport-4.9/075-v4.10-0003-net-phy-broadcom-add-bcm54xx_auxctl_read.patch [moved from target/linux/generic/patches-4.9/075-v4.10-0003-net-phy-broadcom-add-bcm54xx_auxctl_read.patch with 100% similarity]
target/linux/generic/backport-4.9/075-v4.10-0004-net-phy-broadcom-Add-BCM54810-PHY-entry.patch [moved from target/linux/generic/patches-4.9/075-v4.10-0004-net-phy-broadcom-Add-BCM54810-PHY-entry.patch with 100% similarity]
target/linux/generic/backport-4.9/075-v4.10-0005-net-phy-broadcom-Move-bcm54xx_auxctl_-read-write-to-.patch [moved from target/linux/generic/patches-4.9/075-v4.10-0005-net-phy-broadcom-Move-bcm54xx_auxctl_-read-write-to-.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0001-net-phy-broadcom-Allow-enabling-or-disabling-of-EEE.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0001-net-phy-broadcom-Allow-enabling-or-disabling-of-EEE.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0002-net-phy-broadcom-Add-support-code-for-reading-PHY-co.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0002-net-phy-broadcom-Add-support-code-for-reading-PHY-co.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0003-net-phy-bcm7xxx-Add-entry-for-BCM7278.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0003-net-phy-bcm7xxx-Add-entry-for-BCM7278.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0004-net-phy-bcm7xxx-Implement-EGPHY-workaround-for-7278.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0004-net-phy-bcm7xxx-Implement-EGPHY-workaround-for-7278.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0005-net-phy-broadcom-use-auxctl-reading-helper-in-BCM546.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0005-net-phy-broadcom-use-auxctl-reading-helper-in-BCM546.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0006-net-phy-broadcom-add-support-for-BCM54210E.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0006-net-phy-broadcom-add-support-for-BCM54210E.patch with 100% similarity]
target/linux/generic/backport-4.9/076-v4.11-0007-net-phy-broadcom-rehook-BCM54612E-specific-init.patch [moved from target/linux/generic/patches-4.9/076-v4.11-0007-net-phy-broadcom-rehook-BCM54612E-specific-init.patch with 100% similarity]
target/linux/generic/backport-4.9/080-0001-leds-core-add-OF-variants-of-LED-registering-functio.patch [moved from target/linux/generic/patches-4.9/080-0001-leds-core-add-OF-variants-of-LED-registering-functio.patch with 100% similarity]
target/linux/generic/backport-4.9/080-0002-leds-gpio-use-OF-variant-of-LED-registering-function.patch [moved from target/linux/generic/patches-4.9/080-0002-leds-gpio-use-OF-variant-of-LED-registering-function.patch with 100% similarity]
target/linux/generic/backport-4.9/081-0001-thermal-bcm2835-add-thermal-driver-for-bcm2835-SoC.patch [moved from target/linux/generic/patches-4.9/081-0001-thermal-bcm2835-add-thermal-driver-for-bcm2835-SoC.patch with 100% similarity]
target/linux/generic/backport-4.9/081-0002-thermal-broadcom-add-Northstar-thermal-driver.patch [moved from target/linux/generic/patches-4.9/081-0002-thermal-broadcom-add-Northstar-thermal-driver.patch with 100% similarity]
target/linux/generic/backport-4.9/082-0001-usb-core-read-USB-ports-from-DT-in-the-usbport-LED-t.patch [moved from target/linux/generic/patches-4.9/082-0001-usb-core-read-USB-ports-from-DT-in-the-usbport-LED-t.patch with 100% similarity]
target/linux/generic/backport-4.9/087-regmap-make-LZO-cache-optional.patch [moved from target/linux/generic/patches-4.4/087-regmap-make-LZO-cache-optional.patch with 100% similarity]
target/linux/generic/hack-4.9/202-reduce_module_size.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/204-module_strip.patch [moved from target/linux/generic/patches-4.9/204-module_strip.patch with 79% similarity]
target/linux/generic/hack-4.9/207-disable-modorder.patch [moved from target/linux/generic/patches-4.9/207-disable-modorder.patch with 58% similarity]
target/linux/generic/hack-4.9/210-darwin_scripts_include.patch [moved from target/linux/generic/patches-4.9/210-darwin_scripts_include.patch with 99% similarity]
target/linux/generic/hack-4.9/211-host_tools_portability.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/212-byteshift_portability.patch [moved from target/linux/generic/patches-4.9/212-byteshift_portability.patch with 52% similarity]
target/linux/generic/hack-4.9/214-spidev_h_portability.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/220-gc_sections.patch [moved from target/linux/generic/patches-4.9/220-gc_sections.patch with 89% similarity]
target/linux/generic/hack-4.9/221-module_exports.patch [moved from target/linux/generic/patches-4.9/221-module_exports.patch with 73% similarity]
target/linux/generic/hack-4.9/230-openwrt_lzma_options.patch [moved from target/linux/generic/patches-4.9/230-openwrt_lzma_options.patch with 68% similarity]
target/linux/generic/hack-4.9/250-netfilter_depends.patch [moved from target/linux/generic/patches-4.9/250-netfilter_depends.patch with 61% similarity]
target/linux/generic/hack-4.9/251-sound_kconfig.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/259-regmap_dynamic.patch [moved from target/linux/generic/patches-4.9/259-regmap_dynamic.patch with 68% similarity]
target/linux/generic/hack-4.9/260-crypto_test_dependencies.patch [moved from target/linux/generic/patches-4.9/260-crypto_test_dependencies.patch with 66% similarity]
target/linux/generic/hack-4.9/280-rfkill-stubs.patch [moved from target/linux/generic/patches-4.9/280-rfkill-stubs.patch with 70% similarity]
target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/321-powerpc_crtsavres_prereq.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/531-debloat_lzma.patch [moved from target/linux/generic/patches-4.9/531-debloat_lzma.patch with 87% similarity]
target/linux/generic/hack-4.9/640-bridge-only-accept-EAP-locally.patch [moved from target/linux/generic/patches-4.9/640-bridge-only-accept-EAP-locally.patch with 56% similarity]
target/linux/generic/hack-4.9/641-bridge_port_isolate.patch [moved from target/linux/generic/patches-4.9/641-bridge_port_isolate.patch with 61% similarity]
target/linux/generic/hack-4.9/651-wireless_mesh_header.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/660-fq_codel_defaults.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/661-use_fq_codel_by_default.patch [moved from target/linux/generic/patches-4.9/661-use_fq_codel_by_default.patch with 62% similarity]
target/linux/generic/hack-4.9/662-remove_pfifo_fast.patch [moved from target/linux/generic/patches-4.9/662-remove_pfifo_fast.patch with 86% similarity]
target/linux/generic/hack-4.9/700-swconfig_switch_drivers.patch [moved from target/linux/generic/patches-4.9/700-swconfig_switch_drivers.patch with 82% similarity]
target/linux/generic/hack-4.9/710-phy-add-mdio_register_board_info.patch [moved from target/linux/generic/patches-4.9/710-phy-add-mdio_register_board_info.patch with 100% similarity]
target/linux/generic/hack-4.9/721-phy_packets.patch [moved from target/linux/generic/patches-4.9/721-phy_packets.patch with 68% similarity]
target/linux/generic/hack-4.9/773-bgmac-add-srab-switch.patch [moved from target/linux/generic/patches-4.9/773-bgmac-add-srab-switch.patch with 66% similarity]
target/linux/generic/hack-4.9/835-misc-owl_loader.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/901-debloat_sock_diag.patch [moved from target/linux/generic/patches-4.9/901-debloat_sock_diag.patch with 61% similarity]
target/linux/generic/hack-4.9/902-debloat_proc.patch [moved from target/linux/generic/patches-4.9/902-debloat_proc.patch with 68% similarity]
target/linux/generic/hack-4.9/904-debloat_dma_buf.patch [moved from target/linux/generic/patches-4.9/904-debloat_dma_buf.patch with 59% similarity]
target/linux/generic/hack-4.9/910-kobject_uevent.patch [new file with mode: 0644]
target/linux/generic/hack-4.9/911-kobject_add_broadcast_uevent.patch [moved from target/linux/generic/patches-4.9/911-kobject_add_broadcast_uevent.patch with 57% similarity]
target/linux/generic/hack-4.9/921-always-create-console-node-in-initramfs.patch [moved from target/linux/generic/patches-4.9/921-always-create-console-node-in-initramfs.patch with 56% similarity]
target/linux/generic/hack-4.9/930-crashlog.patch [moved from target/linux/generic/patches-4.9/930-crashlog.patch with 80% similarity]
target/linux/generic/patches-4.9/200-fix_localversion.patch [deleted file]
target/linux/generic/patches-4.9/201-extra_optimization.patch [deleted file]
target/linux/generic/patches-4.9/202-reduce_module_size.patch [deleted file]
target/linux/generic/patches-4.9/211-host_tools_portability.patch [deleted file]
target/linux/generic/patches-4.9/214-spidev_h_portability.patch [deleted file]
target/linux/generic/patches-4.9/222-arm_zimage_none.patch [deleted file]
target/linux/generic/patches-4.9/251-sound_kconfig.patch [deleted file]
target/linux/generic/patches-4.9/252-mv_cesa_depends.patch [deleted file]
target/linux/generic/patches-4.9/253-ssb_b43_default_on.patch [deleted file]
target/linux/generic/patches-4.9/254-textsearch_kconfig_hacks.patch [deleted file]
target/linux/generic/patches-4.9/255-lib80211_kconfig_hacks.patch [deleted file]
target/linux/generic/patches-4.9/256-crypto_add_kconfig_prompts.patch [deleted file]
target/linux/generic/patches-4.9/257-wireless_ext_kconfig_hack.patch [deleted file]
target/linux/generic/patches-4.9/258-netfilter_netlink_kconfig_hack.patch [deleted file]
target/linux/generic/patches-4.9/261-enable_wilink_platform_without_drivers.patch [deleted file]
target/linux/generic/patches-4.9/301-mips_image_cmdline_hack.patch [deleted file]
target/linux/generic/patches-4.9/302-mips_no_branch_likely.patch [deleted file]
target/linux/generic/patches-4.9/307-mips_highmem_offset.patch [deleted file]
target/linux/generic/patches-4.9/310-arm_module_unresolved_weak_sym.patch [deleted file]
target/linux/generic/patches-4.9/321-powerpc_crtsavres_prereq.patch [deleted file]
target/linux/generic/patches-4.9/410-mtd-move-forward-declaration-of-struct-mtd_info.patch [deleted file]
target/linux/generic/patches-4.9/412-mtd-partial_eraseblock_unlock.patch [deleted file]
target/linux/generic/patches-4.9/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch [deleted file]
target/linux/generic/patches-4.9/465-m25p80-mx-disable-software-protection.patch [deleted file]
target/linux/generic/patches-4.9/616-net_optimize_xfrm_calls.patch [deleted file]
target/linux/generic/patches-4.9/650-pppoe_header_pad.patch [deleted file]
target/linux/generic/patches-4.9/651-wireless_mesh_header.patch [deleted file]
target/linux/generic/patches-4.9/655-increase_skb_pad.patch [deleted file]
target/linux/generic/patches-4.9/660-fq_codel_defaults.patch [deleted file]
target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch [deleted file]
target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch [deleted file]
target/linux/generic/patches-4.9/831-ledtrig_netdev.patch [deleted file]
target/linux/generic/patches-4.9/835-misc-owl_loader.patch [deleted file]
target/linux/generic/patches-4.9/840-rtc7301.patch [deleted file]
target/linux/generic/patches-4.9/841-rtc_pt7c4338.patch [deleted file]
target/linux/generic/patches-4.9/890-uart_optional_sysrq.patch [deleted file]
target/linux/generic/patches-4.9/910-kobject_uevent.patch [deleted file]
target/linux/generic/pending-3.18/001-mtdsplit_backport.patch [moved from target/linux/generic/patches-3.18/001-mtdsplit_backport.patch with 100% similarity]
target/linux/generic/pending-3.18/002-phy_drivers_backport.patch [moved from target/linux/generic/patches-3.18/002-phy_drivers_backport.patch with 100% similarity]
target/linux/generic/pending-3.18/003-myloader_backport.patch [moved from target/linux/generic/patches-3.18/003-myloader_backport.patch with 100% similarity]
target/linux/generic/pending-3.18/020-ssb_update.patch [moved from target/linux/generic/patches-3.18/020-ssb_update.patch with 100% similarity]
target/linux/generic/pending-3.18/021-ssb_sprom.patch [moved from target/linux/generic/patches-3.18/021-ssb_sprom.patch with 100% similarity]
target/linux/generic/pending-3.18/025-bcma_backport.patch [moved from target/linux/generic/patches-3.18/025-bcma_backport.patch with 100% similarity]
target/linux/generic/pending-3.18/026-bcma-from-3.20.patch [moved from target/linux/generic/patches-3.18/026-bcma-from-3.20.patch with 100% similarity]
target/linux/generic/pending-3.18/027-bcma-from-4.1.patch [moved from target/linux/generic/patches-3.18/027-bcma-from-4.1.patch with 100% similarity]
target/linux/generic/pending-3.18/028-bcma-from-4.2.patch [moved from target/linux/generic/patches-3.18/028-bcma-from-4.2.patch with 100% similarity]
target/linux/generic/pending-3.18/029-bcma-from-4.4.patch [moved from target/linux/generic/patches-3.18/029-bcma-from-4.4.patch with 100% similarity]
target/linux/generic/pending-3.18/030-backport_bcm47xx_nvram.patch [moved from target/linux/generic/patches-3.18/030-backport_bcm47xx_nvram.patch with 100% similarity]
target/linux/generic/pending-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch [moved from target/linux/generic/patches-3.18/030-nl80211-Allow-set-network-namespace-by-fd.patch with 100% similarity]
target/linux/generic/pending-3.18/031-bcma-from-4.5.patch [moved from target/linux/generic/patches-3.18/031-bcma-from-4.5.patch with 100% similarity]
target/linux/generic/pending-3.18/032-bcma-from-4.6.patch [moved from target/linux/generic/patches-3.18/032-bcma-from-4.6.patch with 100% similarity]
target/linux/generic/pending-3.18/040-mtd-bcm47xxpart-backports-from-3.19.patch [moved from target/linux/generic/patches-3.18/040-mtd-bcm47xxpart-backports-from-3.19.patch with 100% similarity]
target/linux/generic/pending-3.18/041-mtd-bcm47xxpart-backports-from-3.20.patch [moved from target/linux/generic/patches-3.18/041-mtd-bcm47xxpart-backports-from-3.20.patch with 100% similarity]
target/linux/generic/pending-3.18/043-mtd_GD25Q128B_support_backport_from_3.19.patch [moved from target/linux/generic/patches-3.18/043-mtd_GD25Q128B_support_backport_from_3.19.patch with 100% similarity]
target/linux/generic/pending-3.18/044-backport-m25p80-jedec-probe.patch [moved from target/linux/generic/patches-3.18/044-backport-m25p80-jedec-probe.patch with 100% similarity]
target/linux/generic/pending-3.18/050-backport_netfilter_rtcache.patch [moved from target/linux/generic/patches-3.18/050-backport_netfilter_rtcache.patch with 100% similarity]
target/linux/generic/pending-3.18/051-02-bridge-allow-setting-hash_max-multicast_router-if-in.patch [moved from target/linux/generic/patches-3.18/051-02-bridge-allow-setting-hash_max-multicast_router-if-in.patch with 100% similarity]
target/linux/generic/pending-3.18/060-mips_decompressor_memmove.patch [moved from target/linux/generic/patches-3.18/060-mips_decompressor_memmove.patch with 100% similarity]
target/linux/generic/pending-3.18/070-bgmac-register-napi-before-the-device.patch [moved from target/linux/generic/patches-3.18/070-bgmac-register-napi-before-the-device.patch with 100% similarity]
target/linux/generic/pending-3.18/071-bgmac-activate-irqs-only-if-there-is-nothing-to-poll.patch [moved from target/linux/generic/patches-3.18/071-bgmac-activate-irqs-only-if-there-is-nothing-to-poll.patch with 100% similarity]
target/linux/generic/pending-3.18/072-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch [moved from target/linux/generic/patches-3.18/072-bgmac-fix-device-initialization-on-Northstar-SoCs-co.patch with 100% similarity]
target/linux/generic/pending-3.18/073-bgmac-Clean-warning-messages.patch [moved from target/linux/generic/patches-3.18/073-bgmac-Clean-warning-messages.patch with 100% similarity]
target/linux/generic/pending-3.18/074-bgmac-register-fixed-PHY-for-ARM-BCM470X-BCM5301X-ch.patch [moved from target/linux/generic/patches-3.18/074-bgmac-register-fixed-PHY-for-ARM-BCM470X-BCM5301X-ch.patch with 100% similarity]
target/linux/generic/pending-3.18/075-bgmac-allow-enabling-on-ARCH_BCM_5301X.patch [moved from target/linux/generic/patches-3.18/075-bgmac-allow-enabling-on-ARCH_BCM_5301X.patch with 100% similarity]
target/linux/generic/pending-3.18/076-net-phy-export-fixed_phy_register.patch [moved from target/linux/generic/patches-3.18/076-net-phy-export-fixed_phy_register.patch with 100% similarity]
target/linux/generic/pending-3.18/077-01-bgmac-fix-descriptor-frame-start-end-definitions.patch [moved from target/linux/generic/patches-3.18/077-01-bgmac-fix-descriptor-frame-start-end-definitions.patch with 100% similarity]
target/linux/generic/pending-3.18/077-02-bgmac-implement-GRO-and-use-build_skb.patch [moved from target/linux/generic/patches-3.18/077-02-bgmac-implement-GRO-and-use-build_skb.patch with 100% similarity]
target/linux/generic/pending-3.18/077-03-bgmac-implement-scatter-gather-support.patch [moved from target/linux/generic/patches-3.18/077-03-bgmac-implement-scatter-gather-support.patch with 100% similarity]
target/linux/generic/pending-3.18/077-04-bgmac-simplify-tx-ring-index-handling.patch [moved from target/linux/generic/patches-3.18/077-04-bgmac-simplify-tx-ring-index-handling.patch with 100% similarity]
target/linux/generic/pending-3.18/077-05-bgmac-leave-interrupts-disabled-as-long-as-there-is-.patch [moved from target/linux/generic/patches-3.18/077-05-bgmac-leave-interrupts-disabled-as-long-as-there-is-.patch with 100% similarity]
target/linux/generic/pending-3.18/077-06-bgmac-set-received-skb-headroom-to-NET_SKB_PAD.patch [moved from target/linux/generic/patches-3.18/077-06-bgmac-set-received-skb-headroom-to-NET_SKB_PAD.patch with 100% similarity]
target/linux/generic/pending-3.18/077-07-bgmac-simplify-rx-DMA-error-handling.patch [moved from target/linux/generic/patches-3.18/077-07-bgmac-simplify-rx-DMA-error-handling.patch with 100% similarity]
target/linux/generic/pending-3.18/077-08-bgmac-add-check-for-oversized-packets.patch [moved from target/linux/generic/patches-3.18/077-08-bgmac-add-check-for-oversized-packets.patch with 100% similarity]
target/linux/generic/pending-3.18/077-09-bgmac-increase-rx-ring-size-from-511-to-512.patch [moved from target/linux/generic/patches-3.18/077-09-bgmac-increase-rx-ring-size-from-511-to-512.patch with 100% similarity]
target/linux/generic/pending-3.18/077-10-bgmac-simplify-dma-init-cleanup.patch [moved from target/linux/generic/patches-3.18/077-10-bgmac-simplify-dma-init-cleanup.patch with 100% similarity]
target/linux/generic/pending-3.18/077-11-bgmac-fix-DMA-rx-corruption.patch [moved from target/linux/generic/patches-3.18/077-11-bgmac-fix-DMA-rx-corruption.patch with 100% similarity]
target/linux/generic/pending-3.18/077-12-bgmac-drop-ring-num_slots.patch [moved from target/linux/generic/patches-3.18/077-12-bgmac-drop-ring-num_slots.patch with 100% similarity]
target/linux/generic/pending-3.18/078-bgmac-reset-enable-Ethernet-core-before-using-it.patch [moved from target/linux/generic/patches-3.18/078-bgmac-reset-enable-Ethernet-core-before-using-it.patch with 100% similarity]
target/linux/generic/pending-3.18/079-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch [moved from target/linux/generic/patches-3.18/079-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch with 100% similarity]
target/linux/generic/pending-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch [moved from target/linux/generic/patches-3.18/080-00-fib_trie-Fix-proc-net-fib_trie-when-CONFIG_IP_MULTIP.patch with 100% similarity]
target/linux/generic/pending-3.18/080-01-fib_trie-Fix-trie-balancing-issue-if-new-node-pushes.patch [moved from target/linux/generic/patches-3.18/080-01-fib_trie-Fix-trie-balancing-issue-if-new-node-pushes.patch with 100% similarity]
target/linux/generic/pending-3.18/080-02-fib_trie-Update-usage-stats-to-be-percpu-instead-of-.patch [moved from target/linux/generic/patches-3.18/080-02-fib_trie-Update-usage-stats-to-be-percpu-instead-of-.patch with 100% similarity]
target/linux/generic/pending-3.18/080-03-fib_trie-Make-leaf-and-tnode-more-uniform.patch [moved from target/linux/generic/patches-3.18/080-03-fib_trie-Make-leaf-and-tnode-more-uniform.patch with 100% similarity]
target/linux/generic/pending-3.18/080-04-fib_trie-Merge-tnode_free-and-leaf_free-into-node_fr.patch [moved from target/linux/generic/patches-3.18/080-04-fib_trie-Merge-tnode_free-and-leaf_free-into-node_fr.patch with 100% similarity]
target/linux/generic/pending-3.18/080-05-fib_trie-Merge-leaf-into-tnode.patch [moved from target/linux/generic/patches-3.18/080-05-fib_trie-Merge-leaf-into-tnode.patch with 100% similarity]
target/linux/generic/pending-3.18/080-06-fib_trie-Optimize-fib_table_lookup-to-avoid-wasting-.patch [moved from target/linux/generic/patches-3.18/080-06-fib_trie-Optimize-fib_table_lookup-to-avoid-wasting-.patch with 100% similarity]
target/linux/generic/pending-3.18/080-07-fib_trie-Optimize-fib_find_node.patch [moved from target/linux/generic/patches-3.18/080-07-fib_trie-Optimize-fib_find_node.patch with 100% similarity]
target/linux/generic/pending-3.18/080-08-fib_trie-Optimize-fib_table_insert.patch [moved from target/linux/generic/patches-3.18/080-08-fib_trie-Optimize-fib_table_insert.patch with 100% similarity]
target/linux/generic/pending-3.18/080-09-fib_trie-Update-meaning-of-pos-to-represent-unchecke.patch [moved from target/linux/generic/patches-3.18/080-09-fib_trie-Update-meaning-of-pos-to-represent-unchecke.patch with 100% similarity]
target/linux/generic/pending-3.18/080-10-fib_trie-Use-unsigned-long-for-anything-dealing-with.patch [moved from target/linux/generic/patches-3.18/080-10-fib_trie-Use-unsigned-long-for-anything-dealing-with.patch with 100% similarity]
target/linux/generic/pending-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch [moved from target/linux/generic/patches-3.18/080-11-fib_trie-Push-rcu_read_lock-unlock-to-callers.patch with 100% similarity]
target/linux/generic/pending-3.18/080-12-fib_trie-Move-resize-to-after-inflate-halve.patch [moved from target/linux/generic/patches-3.18/080-12-fib_trie-Move-resize-to-after-inflate-halve.patch with 100% similarity]
target/linux/generic/pending-3.18/080-13-fib_trie-Add-functions-should_inflate-and-should_hal.patch [moved from target/linux/generic/patches-3.18/080-13-fib_trie-Add-functions-should_inflate-and-should_hal.patch with 100% similarity]
target/linux/generic/pending-3.18/080-14-fib_trie-Push-assignment-of-child-to-parent-down-int.patch [moved from target/linux/generic/patches-3.18/080-14-fib_trie-Push-assignment-of-child-to-parent-down-int.patch with 100% similarity]
target/linux/generic/pending-3.18/080-15-fib_trie-Push-tnode-flushing-down-to-inflate-halve.patch [moved from target/linux/generic/patches-3.18/080-15-fib_trie-Push-tnode-flushing-down-to-inflate-halve.patch with 100% similarity]
target/linux/generic/pending-3.18/080-16-fib_trie-inflate-halve-nodes-in-a-more-RCU-friendly-.patch [moved from target/linux/generic/patches-3.18/080-16-fib_trie-inflate-halve-nodes-in-a-more-RCU-friendly-.patch with 100% similarity]
target/linux/generic/pending-3.18/080-17-fib_trie-Remove-checks-for-index-tnode_child_length-.patch [moved from target/linux/generic/patches-3.18/080-17-fib_trie-Remove-checks-for-index-tnode_child_length-.patch with 100% similarity]
target/linux/generic/pending-3.18/080-18-fib_trie-Add-tracking-value-for-suffix-length.patch [moved from target/linux/generic/patches-3.18/080-18-fib_trie-Add-tracking-value-for-suffix-length.patch with 100% similarity]
target/linux/generic/pending-3.18/080-19-fib_trie-Use-index-0ul-n-bits-instead-of-index-n-bit.patch [moved from target/linux/generic/patches-3.18/080-19-fib_trie-Use-index-0ul-n-bits-instead-of-index-n-bit.patch with 100% similarity]
target/linux/generic/pending-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch [moved from target/linux/generic/patches-3.18/080-20-fib_trie-Fix-RCU-bug-and-merge-similar-bits-of-infla.patch with 100% similarity]
target/linux/generic/pending-3.18/080-21-fib_trie-Fall-back-to-slen-update-on-inflate-halve-f.patch [moved from target/linux/generic/patches-3.18/080-21-fib_trie-Fall-back-to-slen-update-on-inflate-halve-f.patch with 100% similarity]
target/linux/generic/pending-3.18/080-22-fib_trie-Add-collapse-and-should_collapse-to-resize.patch [moved from target/linux/generic/patches-3.18/080-22-fib_trie-Add-collapse-and-should_collapse-to-resize.patch with 100% similarity]
target/linux/generic/pending-3.18/080-23-fib_trie-Use-empty_children-instead-of-counting-empt.patch [moved from target/linux/generic/patches-3.18/080-23-fib_trie-Use-empty_children-instead-of-counting-empt.patch with 100% similarity]
target/linux/generic/pending-3.18/080-24-fib_trie-Move-fib_find_alias-to-file-where-it-is-use.patch [moved from target/linux/generic/patches-3.18/080-24-fib_trie-Move-fib_find_alias-to-file-where-it-is-use.patch with 100% similarity]
target/linux/generic/pending-3.18/080-25-fib_trie-Various-clean-ups-for-handling-slen.patch [moved from target/linux/generic/patches-3.18/080-25-fib_trie-Various-clean-ups-for-handling-slen.patch with 100% similarity]
target/linux/generic/pending-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch [moved from target/linux/generic/patches-3.18/081-01-pppoe-Use-workqueue-to-die-properly-when-a-PADT-is-r.patch with 100% similarity]
target/linux/generic/pending-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch [moved from target/linux/generic/patches-3.18/081-02-pppoe-Lacks-DST-MAC-address-check.patch with 100% similarity]
target/linux/generic/pending-3.18/081-03-pppoe-drop-pppoe-device-in-pppoe_unbind_sock_work.patch [moved from target/linux/generic/patches-3.18/081-03-pppoe-drop-pppoe-device-in-pppoe_unbind_sock_work.patch with 100% similarity]
target/linux/generic/pending-3.18/081-06-ppp-don-t-set-sk_state-to-PPPOX_ZOMBIE-in-pppoe_disc.patch [moved from target/linux/generic/patches-3.18/081-06-ppp-don-t-set-sk_state-to-PPPOX_ZOMBIE-in-pppoe_disc.patch with 100% similarity]
target/linux/generic/pending-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch [moved from target/linux/generic/patches-3.18/081-07-ppp-remove-PPPOX_ZOMBIE-socket-state.patch with 100% similarity]
target/linux/generic/pending-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch [moved from target/linux/generic/patches-3.18/081-08-pppoe-fix-memory-corruption-in-padt-work-structure.patch with 100% similarity]
target/linux/generic/pending-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch [moved from target/linux/generic/patches-3.18/082-ipv6-ip6_fragment-fix-headroom-tests-and-skb-leak.patch with 100% similarity]
target/linux/generic/pending-3.18/083-solos-pci-Increase-headroom-on-received-packets.patch [moved from target/linux/generic/patches-3.18/083-solos-pci-Increase-headroom-on-received-packets.patch with 100% similarity]
target/linux/generic/pending-3.18/087-regmap-make-LZO-cache-optional.patch [moved from target/linux/generic/patches-3.18/087-regmap-make-LZO-cache-optional.patch with 100% similarity]
target/linux/generic/pending-3.18/090-overlayfs-fallback-to-readonly-when-full.patch [moved from target/linux/generic/patches-3.18/090-overlayfs-fallback-to-readonly-when-full.patch with 100% similarity]
target/linux/generic/pending-3.18/091-mtd-spi-nor-add-support-Spansion_S25FL164K.patch [moved from target/linux/generic/patches-3.18/091-mtd-spi-nor-add-support-Spansion_S25FL164K.patch with 100% similarity]
target/linux/generic/pending-3.18/092-01-spi-Check-to-see-if-the-device-is-processing-a-messa.patch [moved from target/linux/generic/patches-3.18/092-01-spi-Check-to-see-if-the-device-is-processing-a-messa.patch with 100% similarity]
target/linux/generic/pending-3.18/092-02-spi-Pump-transfers-inside-calling-context-for-spi_sy.patch [moved from target/linux/generic/patches-3.18/092-02-spi-Pump-transfers-inside-calling-context-for-spi_sy.patch with 100% similarity]
target/linux/generic/pending-3.18/092-03-spi-Only-idle-the-message-pump-in-the-worker-kthread.patch [moved from target/linux/generic/patches-3.18/092-03-spi-Only-idle-the-message-pump-in-the-worker-kthread.patch with 100% similarity]
target/linux/generic/pending-3.18/095-api-fix-compatibility-of-linux-in.h-with-netinet-in..patch [moved from target/linux/generic/patches-3.18/095-api-fix-compatibility-of-linux-in.h-with-netinet-in..patch with 100% similarity]
target/linux/generic/pending-3.18/097-mm-remove-gup_flags-FOLL_WRITE-games-from-__get_user.patch [moved from target/linux/generic/patches-3.18/097-mm-remove-gup_flags-FOLL_WRITE-games-from-__get_user.patch with 100% similarity]
target/linux/generic/pending-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch [moved from target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch with 100% similarity]
target/linux/generic/pending-3.18/102-ehci_hcd_ignore_oc.patch [moved from target/linux/generic/patches-3.18/102-ehci_hcd_ignore_oc.patch with 100% similarity]
target/linux/generic/pending-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch [moved from target/linux/generic/patches-3.18/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch with 100% similarity]
target/linux/generic/pending-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch [moved from target/linux/generic/patches-3.18/111-jffs2-add-RENAME_EXCHANGE-support.patch with 100% similarity]
target/linux/generic/pending-3.18/120-bridge_allow_receiption_on_disabled_port.patch [moved from target/linux/generic/patches-3.18/120-bridge_allow_receiption_on_disabled_port.patch with 100% similarity]
target/linux/generic/pending-3.18/132-mips_inline_dma_ops.patch [moved from target/linux/generic/patches-3.18/132-mips_inline_dma_ops.patch with 100% similarity]
target/linux/generic/pending-3.18/133-MIPS-UAPI-Ignore-__arch_swab-16-32-64-when-using-MIP.patch [moved from target/linux/generic/patches-3.18/133-MIPS-UAPI-Ignore-__arch_swab-16-32-64-when-using-MIP.patch with 100% similarity]
target/linux/generic/pending-3.18/140-mtd-part-add-generic-parsing-of-linux-part-probe.patch [moved from target/linux/generic/patches-3.18/140-mtd-part-add-generic-parsing-of-linux-part-probe.patch with 100% similarity]
target/linux/generic/pending-3.18/141-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch [moved from target/linux/generic/patches-3.18/141-mtd-bcm47xxpart-limit-scanned-flash-area-on-BCM47XX-.patch with 100% similarity]
target/linux/generic/pending-3.18/142-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch [moved from target/linux/generic/patches-3.18/142-mtd-bcm47xxpart-don-t-fail-because-of-bit-flips.patch with 100% similarity]
target/linux/generic/pending-3.18/180-usb-xhci-make-USB_XHCI_PLATFORM-selectable.patch [moved from target/linux/generic/patches-3.18/180-usb-xhci-make-USB_XHCI_PLATFORM-selectable.patch with 100% similarity]
target/linux/generic/pending-3.18/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch [moved from target/linux/generic/patches-3.18/190-cdc_ncm_add_support_for_moving_ndp_to_end_of_ncm_frame.patch with 100% similarity]
target/linux/generic/pending-3.18/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch [moved from target/linux/generic/patches-3.18/191-usb-ehci-orion-fix-probe-for-GENERIC_PHY.patch with 100% similarity]
target/linux/generic/pending-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch [moved from target/linux/generic/patches-3.18/192-USB-qcserial-Add-support-for-Quectel-EC20-Mini-PCIe-.patch with 100% similarity]
target/linux/generic/pending-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch [moved from target/linux/generic/patches-3.18/193-USB-qmi_wwan-Add-quirk-for-Quectel-EC20-Mini-PCIe-mo.patch with 100% similarity]
target/linux/generic/pending-3.18/200-fix_localversion.patch [moved from target/linux/generic/patches-3.18/200-fix_localversion.patch with 100% similarity]
target/linux/generic/pending-3.18/201-extra_optimization.patch [moved from target/linux/generic/patches-3.18/201-extra_optimization.patch with 100% similarity]
target/linux/generic/pending-3.18/202-reduce_module_size.patch [moved from target/linux/generic/patches-3.18/202-reduce_module_size.patch with 100% similarity]
target/linux/generic/pending-3.18/203-kallsyms_uncompressed.patch [moved from target/linux/generic/patches-3.18/203-kallsyms_uncompressed.patch with 100% similarity]
target/linux/generic/pending-3.18/204-module_strip.patch [moved from target/linux/generic/patches-3.18/204-module_strip.patch with 100% similarity]
target/linux/generic/pending-3.18/205-backtrace_module_info.patch [moved from target/linux/generic/patches-3.18/205-backtrace_module_info.patch with 100% similarity]
target/linux/generic/pending-3.18/210-darwin_scripts_include.patch [moved from target/linux/generic/patches-3.18/210-darwin_scripts_include.patch with 100% similarity]
target/linux/generic/pending-3.18/212-byteshift_portability.patch [moved from target/linux/generic/patches-3.18/212-byteshift_portability.patch with 100% similarity]
target/linux/generic/pending-3.18/213-x86_vdso_portability.patch [moved from target/linux/generic/patches-3.18/213-x86_vdso_portability.patch with 100% similarity]
target/linux/generic/pending-3.18/214-spidev_h_portability.patch [moved from target/linux/generic/patches-3.18/214-spidev_h_portability.patch with 100% similarity]
target/linux/generic/pending-3.18/220-gc_sections.patch [moved from target/linux/generic/patches-3.18/220-gc_sections.patch with 100% similarity]
target/linux/generic/pending-3.18/221-module_exports.patch [moved from target/linux/generic/patches-3.18/221-module_exports.patch with 100% similarity]
target/linux/generic/pending-3.18/230-openwrt_lzma_options.patch [moved from target/linux/generic/patches-3.18/230-openwrt_lzma_options.patch with 100% similarity]
target/linux/generic/pending-3.18/250-netfilter_depends.patch [moved from target/linux/generic/patches-3.18/250-netfilter_depends.patch with 100% similarity]
target/linux/generic/pending-3.18/251-sound_kconfig.patch [moved from target/linux/generic/patches-3.18/251-sound_kconfig.patch with 100% similarity]
target/linux/generic/pending-3.18/252-mv_cesa_depends.patch [moved from target/linux/generic/patches-3.18/252-mv_cesa_depends.patch with 100% similarity]
target/linux/generic/pending-3.18/253-ssb_b43_default_on.patch [moved from target/linux/generic/patches-3.18/253-ssb_b43_default_on.patch with 100% similarity]
target/linux/generic/pending-3.18/254-textsearch_kconfig_hacks.patch [moved from target/linux/generic/patches-3.18/254-textsearch_kconfig_hacks.patch with 100% similarity]
target/linux/generic/pending-3.18/255-lib80211_kconfig_hacks.patch [moved from target/linux/generic/patches-3.18/255-lib80211_kconfig_hacks.patch with 100% similarity]
target/linux/generic/pending-3.18/256-crypto_add_kconfig_prompts.patch [moved from target/linux/generic/patches-3.18/256-crypto_add_kconfig_prompts.patch with 100% similarity]
target/linux/generic/pending-3.18/257-wireless_ext_kconfig_hack.patch [moved from target/linux/generic/patches-3.18/257-wireless_ext_kconfig_hack.patch with 100% similarity]
target/linux/generic/pending-3.18/258-netfilter_netlink_kconfig_hack.patch [moved from target/linux/generic/patches-3.18/258-netfilter_netlink_kconfig_hack.patch with 100% similarity]
target/linux/generic/pending-3.18/259-regmap_dynamic.patch [moved from target/linux/generic/patches-3.18/259-regmap_dynamic.patch with 100% similarity]
target/linux/generic/pending-3.18/260-crypto_test_dependencies.patch [moved from target/linux/generic/patches-3.18/260-crypto_test_dependencies.patch with 100% similarity]
target/linux/generic/pending-3.18/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch [moved from target/linux/generic/patches-3.18/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch with 100% similarity]
target/linux/generic/pending-3.18/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch [moved from target/linux/generic/patches-3.18/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch with 100% similarity]
target/linux/generic/pending-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch [moved from target/linux/generic/patches-3.18/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch with 100% similarity]
target/linux/generic/pending-3.18/300-mips_expose_boot_raw.patch [moved from target/linux/generic/patches-3.18/300-mips_expose_boot_raw.patch with 100% similarity]
target/linux/generic/pending-3.18/301-mips_image_cmdline_hack.patch [moved from target/linux/generic/patches-3.18/301-mips_image_cmdline_hack.patch with 100% similarity]
target/linux/generic/pending-3.18/302-mips_no_branch_likely.patch [moved from target/linux/generic/patches-3.18/302-mips_no_branch_likely.patch with 100% similarity]
target/linux/generic/pending-3.18/304-mips_disable_fpu.patch [moved from target/linux/generic/patches-3.18/304-mips_disable_fpu.patch with 100% similarity]
target/linux/generic/pending-3.18/305-mips_module_reloc.patch [moved from target/linux/generic/patches-3.18/305-mips_module_reloc.patch with 100% similarity]
target/linux/generic/pending-3.18/306-mips_mem_functions_performance.patch [moved from target/linux/generic/patches-3.18/306-mips_mem_functions_performance.patch with 100% similarity]
target/linux/generic/pending-3.18/307-mips_highmem_offset.patch [moved from target/linux/generic/patches-3.18/307-mips_highmem_offset.patch with 100% similarity]
target/linux/generic/pending-3.18/310-arm_module_unresolved_weak_sym.patch [moved from target/linux/generic/patches-3.18/310-arm_module_unresolved_weak_sym.patch with 100% similarity]
target/linux/generic/pending-3.18/320-ppc4xx_optimization.patch [moved from target/linux/generic/patches-3.18/320-ppc4xx_optimization.patch with 100% similarity]
target/linux/generic/pending-3.18/321-powerpc_crtsavres_prereq.patch [moved from target/linux/generic/patches-3.18/321-powerpc_crtsavres_prereq.patch with 100% similarity]
target/linux/generic/pending-3.18/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch [moved from target/linux/generic/patches-3.18/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch with 100% similarity]
target/linux/generic/pending-3.18/400-mtd-add-rootfs-split-support.patch [moved from target/linux/generic/patches-3.18/400-mtd-add-rootfs-split-support.patch with 100% similarity]
target/linux/generic/pending-3.18/401-mtd-add-support-for-different-partition-parser-types.patch [moved from target/linux/generic/patches-3.18/401-mtd-add-support-for-different-partition-parser-types.patch with 100% similarity]
target/linux/generic/pending-3.18/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch [moved from target/linux/generic/patches-3.18/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch with 100% similarity]
target/linux/generic/pending-3.18/403-mtd-hook-mtdsplit-to-Kbuild.patch [moved from target/linux/generic/patches-3.18/403-mtd-hook-mtdsplit-to-Kbuild.patch with 100% similarity]
target/linux/generic/pending-3.18/404-mtd-add-more-helper-functions.patch [moved from target/linux/generic/patches-3.18/404-mtd-add-more-helper-functions.patch with 100% similarity]
target/linux/generic/pending-3.18/405-mtd-old-firmware-uimage-splitter.patch [moved from target/linux/generic/patches-3.18/405-mtd-old-firmware-uimage-splitter.patch with 100% similarity]
target/linux/generic/pending-3.18/406-mtd-old-rootfs-squashfs-splitter.patch [moved from target/linux/generic/patches-3.18/406-mtd-old-rootfs-squashfs-splitter.patch with 100% similarity]
target/linux/generic/pending-3.18/410-mtd-move-forward-declaration-of-struct-mtd_info.patch [moved from target/linux/generic/patches-3.18/410-mtd-move-forward-declaration-of-struct-mtd_info.patch with 100% similarity]
target/linux/generic/pending-3.18/411-mtd-partial_eraseblock_write.patch [moved from target/linux/generic/patches-3.18/411-mtd-partial_eraseblock_write.patch with 100% similarity]
target/linux/generic/pending-3.18/412-mtd-partial_eraseblock_unlock.patch [moved from target/linux/generic/patches-3.18/412-mtd-partial_eraseblock_unlock.patch with 100% similarity]
target/linux/generic/pending-3.18/420-mtd-redboot_space.patch [moved from target/linux/generic/patches-3.18/420-mtd-redboot_space.patch with 100% similarity]
target/linux/generic/pending-3.18/430-mtd-add-myloader-partition-parser.patch [moved from target/linux/generic/patches-3.18/430-mtd-add-myloader-partition-parser.patch with 100% similarity]
target/linux/generic/pending-3.18/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch [moved from target/linux/generic/patches-3.18/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch with 100% similarity]
target/linux/generic/pending-3.18/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch [moved from target/linux/generic/patches-3.18/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch with 100% similarity]
target/linux/generic/pending-3.18/440-block2mtd_init.patch [moved from target/linux/generic/patches-3.18/440-block2mtd_init.patch with 100% similarity]
target/linux/generic/pending-3.18/441-block2mtd_probe.patch [moved from target/linux/generic/patches-3.18/441-block2mtd_probe.patch with 100% similarity]
target/linux/generic/pending-3.18/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch [moved from target/linux/generic/patches-3.18/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch with 100% similarity]
target/linux/generic/pending-3.18/451-mtd-nand-fix-return-code-of-nand_correct_data-function.patch [moved from target/linux/generic/patches-3.18/451-mtd-nand-fix-return-code-of-nand_correct_data-function.patch with 100% similarity]
target/linux/generic/pending-3.18/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch [moved from target/linux/generic/patches-3.18/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch with 100% similarity]
target/linux/generic/pending-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch [moved from target/linux/generic/patches-3.18/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch with 100% similarity]
target/linux/generic/pending-3.18/472-mtd-m25p80-add-support-for-Winbond-W25X05-flash.patch [moved from target/linux/generic/patches-3.18/472-mtd-m25p80-add-support-for-Winbond-W25X05-flash.patch with 100% similarity]
target/linux/generic/pending-3.18/473-mtd-spi-nor-add-support-for-the-Macronix-MX25L512E-S.patch [moved from target/linux/generic/patches-3.18/473-mtd-spi-nor-add-support-for-the-Macronix-MX25L512E-S.patch with 100% similarity]
target/linux/generic/pending-3.18/474-mtd-spi-nor-add-support-for-the-ISSI-SI25CD512-SPI-f.patch [moved from target/linux/generic/patches-3.18/474-mtd-spi-nor-add-support-for-the-ISSI-SI25CD512-SPI-f.patch with 100% similarity]
target/linux/generic/pending-3.18/475-mtd-spi-nor-add-macronix-mx25u25635f.patch [moved from target/linux/generic/patches-3.18/475-mtd-spi-nor-add-macronix-mx25u25635f.patch with 100% similarity]
target/linux/generic/pending-3.18/480-mtd-set-rootfs-to-be-root-dev.patch [moved from target/linux/generic/patches-3.18/480-mtd-set-rootfs-to-be-root-dev.patch with 100% similarity]
target/linux/generic/pending-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch [moved from target/linux/generic/patches-3.18/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch with 100% similarity]
target/linux/generic/pending-3.18/491-ubi-auto-create-ubiblock-device-for-rootfs.patch [moved from target/linux/generic/patches-3.18/491-ubi-auto-create-ubiblock-device-for-rootfs.patch with 100% similarity]
target/linux/generic/pending-3.18/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch [moved from target/linux/generic/patches-3.18/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch with 100% similarity]
target/linux/generic/pending-3.18/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch [moved from target/linux/generic/patches-3.18/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch with 100% similarity]
target/linux/generic/pending-3.18/494-mtd-ubi-add-EOF-marker-support.patch [moved from target/linux/generic/patches-3.18/494-mtd-ubi-add-EOF-marker-support.patch with 100% similarity]
target/linux/generic/pending-3.18/530-jffs2_make_lzma_available.patch [moved from target/linux/generic/patches-3.18/530-jffs2_make_lzma_available.patch with 100% similarity]
target/linux/generic/pending-3.18/531-debloat_lzma.patch [moved from target/linux/generic/patches-3.18/531-debloat_lzma.patch with 100% similarity]
target/linux/generic/pending-3.18/532-jffs2_eofdetect.patch [moved from target/linux/generic/patches-3.18/532-jffs2_eofdetect.patch with 100% similarity]
target/linux/generic/pending-3.18/550-ubifs-symlink-xattr-support.patch [moved from target/linux/generic/patches-3.18/550-ubifs-symlink-xattr-support.patch with 100% similarity]
target/linux/generic/pending-3.18/551-ubifs-fix-default-compression-selection.patch [moved from target/linux/generic/patches-3.18/551-ubifs-fix-default-compression-selection.patch with 100% similarity]
target/linux/generic/pending-3.18/600-netfilter_conntrack_flush.patch [moved from target/linux/generic/patches-3.18/600-netfilter_conntrack_flush.patch with 100% similarity]
target/linux/generic/pending-3.18/610-netfilter_match_bypass_default_checks.patch [moved from target/linux/generic/patches-3.18/610-netfilter_match_bypass_default_checks.patch with 100% similarity]
target/linux/generic/pending-3.18/611-netfilter_match_bypass_default_table.patch [moved from target/linux/generic/patches-3.18/611-netfilter_match_bypass_default_table.patch with 100% similarity]
target/linux/generic/pending-3.18/612-netfilter_match_reduce_memory_access.patch [moved from target/linux/generic/patches-3.18/612-netfilter_match_reduce_memory_access.patch with 100% similarity]
target/linux/generic/pending-3.18/613-netfilter_optional_tcp_window_check.patch [moved from target/linux/generic/patches-3.18/613-netfilter_optional_tcp_window_check.patch with 100% similarity]
target/linux/generic/pending-3.18/616-net_optimize_xfrm_calls.patch [moved from target/linux/generic/patches-3.18/616-net_optimize_xfrm_calls.patch with 100% similarity]
target/linux/generic/pending-3.18/621-sched_act_connmark.patch [moved from target/linux/generic/patches-3.18/621-sched_act_connmark.patch with 100% similarity]
target/linux/generic/pending-3.18/630-packet_socket_type.patch [moved from target/linux/generic/patches-3.18/630-packet_socket_type.patch with 100% similarity]
target/linux/generic/pending-3.18/640-bridge_no_eap_forward.patch [moved from target/linux/generic/patches-3.18/640-bridge_no_eap_forward.patch with 100% similarity]
target/linux/generic/pending-3.18/641-bridge_always_accept_eap.patch [moved from target/linux/generic/patches-3.18/641-bridge_always_accept_eap.patch with 100% similarity]
target/linux/generic/pending-3.18/642-bridge_port_isolate.patch [moved from target/linux/generic/patches-3.18/642-bridge_port_isolate.patch with 100% similarity]
target/linux/generic/pending-3.18/645-bridge_multicast_to_unicast.patch [moved from target/linux/generic/patches-3.18/645-bridge_multicast_to_unicast.patch with 100% similarity]
target/linux/generic/pending-3.18/650-pppoe_header_pad.patch [moved from target/linux/generic/patches-3.18/650-pppoe_header_pad.patch with 100% similarity]
target/linux/generic/pending-3.18/651-wireless_mesh_header.patch [moved from target/linux/generic/patches-3.18/651-wireless_mesh_header.patch with 100% similarity]
target/linux/generic/pending-3.18/653-disable_netlink_trim.patch [moved from target/linux/generic/patches-3.18/653-disable_netlink_trim.patch with 100% similarity]
target/linux/generic/pending-3.18/655-increase_skb_pad.patch [moved from target/linux/generic/patches-3.18/655-increase_skb_pad.patch with 100% similarity]
target/linux/generic/pending-3.18/656-skb_reduce_truesize-helper.patch [moved from target/linux/generic/patches-3.18/656-skb_reduce_truesize-helper.patch with 100% similarity]
target/linux/generic/pending-3.18/657-qdisc_reduce_truesize.patch [moved from target/linux/generic/patches-3.18/657-qdisc_reduce_truesize.patch with 100% similarity]
target/linux/generic/pending-3.18/660-fq_codel_defaults.patch [moved from target/linux/generic/patches-3.18/660-fq_codel_defaults.patch with 100% similarity]
target/linux/generic/pending-3.18/661-fq_codel_keep_dropped_stats.patch [moved from target/linux/generic/patches-3.18/661-fq_codel_keep_dropped_stats.patch with 100% similarity]
target/linux/generic/pending-3.18/662-use_fq_codel_by_default.patch [moved from target/linux/generic/patches-3.18/662-use_fq_codel_by_default.patch with 100% similarity]
target/linux/generic/pending-3.18/663-remove_pfifo_fast.patch [moved from target/linux/generic/patches-3.18/663-remove_pfifo_fast.patch with 100% similarity]
target/linux/generic/pending-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch [moved from target/linux/generic/patches-3.18/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch with 100% similarity]
target/linux/generic/pending-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch [moved from target/linux/generic/patches-3.18/667-ipv6-Fixed-source-specific-default-route-handling.patch with 100% similarity]
target/linux/generic/pending-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch [moved from target/linux/generic/patches-3.18/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch with 100% similarity]
target/linux/generic/pending-3.18/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch [moved from target/linux/generic/patches-3.18/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch with 100% similarity]
target/linux/generic/pending-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch [moved from target/linux/generic/patches-3.18/680-NET-skip-GRO-for-foreign-MAC-addresses.patch with 100% similarity]
target/linux/generic/pending-3.18/681-NET-add-of_get_mac_address_mtd.patch [moved from target/linux/generic/patches-3.18/681-NET-add-of_get_mac_address_mtd.patch with 100% similarity]
target/linux/generic/pending-3.18/700-swconfig.patch [moved from target/linux/generic/patches-3.18/700-swconfig.patch with 100% similarity]
target/linux/generic/pending-3.18/701-phy_extension.patch [moved from target/linux/generic/patches-3.18/701-phy_extension.patch with 100% similarity]
target/linux/generic/pending-3.18/702-phy_add_aneg_done_function.patch [moved from target/linux/generic/patches-3.18/702-phy_add_aneg_done_function.patch with 100% similarity]
target/linux/generic/pending-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch [moved from target/linux/generic/patches-3.18/703-phy-add-detach-callback-to-struct-phy_driver.patch with 100% similarity]
target/linux/generic/pending-3.18/704-phy-no-genphy-soft-reset.patch [moved from target/linux/generic/patches-3.18/704-phy-no-genphy-soft-reset.patch with 100% similarity]
target/linux/generic/pending-3.18/710-phy-add-mdio_register_board_info.patch [moved from target/linux/generic/patches-3.18/710-phy-add-mdio_register_board_info.patch with 100% similarity]
target/linux/generic/pending-3.18/720-phy_adm6996.patch [moved from target/linux/generic/patches-3.18/720-phy_adm6996.patch with 100% similarity]
target/linux/generic/pending-3.18/721-phy_packets.patch [moved from target/linux/generic/patches-3.18/721-phy_packets.patch with 100% similarity]
target/linux/generic/pending-3.18/722-phy_mvswitch.patch [moved from target/linux/generic/patches-3.18/722-phy_mvswitch.patch with 100% similarity]
target/linux/generic/pending-3.18/723-phy_ip175c.patch [moved from target/linux/generic/patches-3.18/723-phy_ip175c.patch with 100% similarity]
target/linux/generic/pending-3.18/724-phy_ar8216.patch [moved from target/linux/generic/patches-3.18/724-phy_ar8216.patch with 100% similarity]
target/linux/generic/pending-3.18/725-phy_rtl8306.patch [moved from target/linux/generic/patches-3.18/725-phy_rtl8306.patch with 100% similarity]
target/linux/generic/pending-3.18/726-phy_rtl8366.patch [moved from target/linux/generic/patches-3.18/726-phy_rtl8366.patch with 100% similarity]
target/linux/generic/pending-3.18/727-phy-rtl8367.patch [moved from target/linux/generic/patches-3.18/727-phy-rtl8367.patch with 100% similarity]
target/linux/generic/pending-3.18/728-phy-rtl8367b.patch [moved from target/linux/generic/patches-3.18/728-phy-rtl8367b.patch with 100% similarity]
target/linux/generic/pending-3.18/729-phy-tantos.patch [moved from target/linux/generic/patches-3.18/729-phy-tantos.patch with 100% similarity]
target/linux/generic/pending-3.18/730-phy_b53.patch [moved from target/linux/generic/patches-3.18/730-phy_b53.patch with 100% similarity]
target/linux/generic/pending-3.18/732-phy-ar8216-led-support.patch [moved from target/linux/generic/patches-3.18/732-phy-ar8216-led-support.patch with 100% similarity]
target/linux/generic/pending-3.18/733-phy_mvsw61xx.patch [moved from target/linux/generic/patches-3.18/733-phy_mvsw61xx.patch with 100% similarity]
target/linux/generic/pending-3.18/734-net-phy-at803x-allow-to-configure-via-pdata.patch [moved from target/linux/generic/patches-3.18/734-net-phy-at803x-allow-to-configure-via-pdata.patch with 100% similarity]
target/linux/generic/pending-3.18/735-net-phy-at803x-fix-at8033-sgmii-mode.patch [moved from target/linux/generic/patches-3.18/735-net-phy-at803x-fix-at8033-sgmii-mode.patch with 100% similarity]
target/linux/generic/pending-3.18/760-8139cp-fixes-from-4.3.patch [moved from target/linux/generic/patches-3.18/760-8139cp-fixes-from-4.3.patch with 100% similarity]
target/linux/generic/pending-3.18/773-bgmac-add-srab-switch.patch [moved from target/linux/generic/patches-3.18/773-bgmac-add-srab-switch.patch with 100% similarity]
target/linux/generic/pending-3.18/785-hso-support-0af0-9300.patch [moved from target/linux/generic/patches-3.18/785-hso-support-0af0-9300.patch with 100% similarity]
target/linux/generic/pending-3.18/810-pci_disable_common_quirks.patch [moved from target/linux/generic/patches-3.18/810-pci_disable_common_quirks.patch with 100% similarity]
target/linux/generic/pending-3.18/811-pci_disable_usb_common_quirks.patch [moved from target/linux/generic/patches-3.18/811-pci_disable_usb_common_quirks.patch with 100% similarity]
target/linux/generic/pending-3.18/821-usb-dwc2-dualrole.patch [moved from target/linux/generic/patches-3.18/821-usb-dwc2-dualrole.patch with 100% similarity]
target/linux/generic/pending-3.18/831-ledtrig_netdev.patch [moved from target/linux/generic/patches-3.18/831-ledtrig_netdev.patch with 100% similarity]
target/linux/generic/pending-3.18/834-ledtrig-libata.patch [moved from target/linux/generic/patches-3.18/834-ledtrig-libata.patch with 100% similarity]
target/linux/generic/pending-3.18/840-rtc7301.patch [moved from target/linux/generic/patches-3.18/840-rtc7301.patch with 100% similarity]
target/linux/generic/pending-3.18/841-rtc_pt7c4338.patch [moved from target/linux/generic/patches-3.18/841-rtc_pt7c4338.patch with 100% similarity]
target/linux/generic/pending-3.18/861-04_spi_gpio_implement_spi_delay.patch [moved from target/linux/generic/patches-3.18/861-04_spi_gpio_implement_spi_delay.patch with 100% similarity]
target/linux/generic/pending-3.18/862-gpio_spi_driver.patch [moved from target/linux/generic/patches-3.18/862-gpio_spi_driver.patch with 100% similarity]
target/linux/generic/pending-3.18/870-hifn795x_byteswap.patch [moved from target/linux/generic/patches-3.18/870-hifn795x_byteswap.patch with 100% similarity]
target/linux/generic/pending-3.18/890-8250_optional_sysrq.patch [moved from target/linux/generic/patches-3.18/890-8250_optional_sysrq.patch with 100% similarity]
target/linux/generic/pending-3.18/901-debloat_sock_diag.patch [moved from target/linux/generic/patches-3.18/901-debloat_sock_diag.patch with 100% similarity]
target/linux/generic/pending-3.18/902-debloat_proc.patch [moved from target/linux/generic/patches-3.18/902-debloat_proc.patch with 100% similarity]
target/linux/generic/pending-3.18/904-debloat_dma_buf.patch [moved from target/linux/generic/patches-3.18/904-debloat_dma_buf.patch with 100% similarity]
target/linux/generic/pending-3.18/910-kobject_uevent.patch [moved from target/linux/generic/patches-3.18/910-kobject_uevent.patch with 100% similarity]
target/linux/generic/pending-3.18/911-kobject_add_broadcast_uevent.patch [moved from target/linux/generic/patches-3.18/911-kobject_add_broadcast_uevent.patch with 100% similarity]
target/linux/generic/pending-3.18/921-use_preinit_as_init.patch [moved from target/linux/generic/patches-3.18/921-use_preinit_as_init.patch with 100% similarity]
target/linux/generic/pending-3.18/922-always-create-console-node-in-initramfs.patch [moved from target/linux/generic/patches-3.18/922-always-create-console-node-in-initramfs.patch with 100% similarity]
target/linux/generic/pending-3.18/930-crashlog.patch [moved from target/linux/generic/patches-3.18/930-crashlog.patch with 100% similarity]
target/linux/generic/pending-3.18/970-remove-unsane-filenames-from-deps_initramfs-list.patch [moved from target/linux/generic/patches-3.18/970-remove-unsane-filenames-from-deps_initramfs-list.patch with 100% similarity]
target/linux/generic/pending-3.18/980-arm_openwrt_machtypes.patch [moved from target/linux/generic/patches-3.18/980-arm_openwrt_machtypes.patch with 100% similarity]
target/linux/generic/pending-3.18/990-gpio_wdt.patch [moved from target/linux/generic/patches-3.18/990-gpio_wdt.patch with 100% similarity]
target/linux/generic/pending-3.18/995-mangle_bootargs.patch [moved from target/linux/generic/patches-3.18/995-mangle_bootargs.patch with 100% similarity]
target/linux/generic/pending-3.18/997-device_tree_cmdline.patch [moved from target/linux/generic/patches-3.18/997-device_tree_cmdline.patch with 100% similarity]
target/linux/generic/pending-3.18/998-enable_wilink_platform_without_drivers.patch [moved from target/linux/generic/patches-3.18/998-enable_wilink_platform_without_drivers.patch with 100% similarity]
target/linux/generic/pending-3.18/999-seccomp_log.patch [moved from target/linux/generic/patches-3.18/999-seccomp_log.patch with 100% similarity]
target/linux/generic/pending-4.4/001-mtdsplit_backport.patch [moved from target/linux/generic/patches-4.4/001-mtdsplit_backport.patch with 100% similarity]
target/linux/generic/pending-4.4/002-phy_drivers_backport.patch [moved from target/linux/generic/patches-4.4/002-phy_drivers_backport.patch with 100% similarity]
target/linux/generic/pending-4.4/003-myloader_backport.patch [moved from target/linux/generic/patches-4.4/003-myloader_backport.patch with 100% similarity]
target/linux/generic/pending-4.4/010-Kbuild-don-t-hardcode-path-to-awk-in-scripts-ld-vers.patch [moved from target/linux/generic/patches-4.4/010-Kbuild-don-t-hardcode-path-to-awk-in-scripts-ld-vers.patch with 100% similarity]
target/linux/generic/pending-4.4/020-bcma-from-4.5.patch [moved from target/linux/generic/patches-4.4/020-bcma-from-4.5.patch with 100% similarity]
target/linux/generic/pending-4.4/021-bcma-from-4.6.patch [moved from target/linux/generic/patches-4.4/021-bcma-from-4.6.patch with 100% similarity]
target/linux/generic/pending-4.4/022-bcma-from-4.8.patch [moved from target/linux/generic/patches-4.4/022-bcma-from-4.8.patch with 100% similarity]
target/linux/generic/pending-4.4/023-bcma-from-4.9.patch [moved from target/linux/generic/patches-4.4/023-bcma-from-4.9.patch with 100% similarity]
target/linux/generic/pending-4.4/025-bcma-from-4.11.patch [moved from target/linux/generic/patches-4.4/025-bcma-from-4.11.patch with 100% similarity]
target/linux/generic/pending-4.4/026-bcma-from-4.12.patch [moved from target/linux/generic/patches-4.4/026-bcma-from-4.12.patch with 100% similarity]
target/linux/generic/pending-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.4/030-1-smsc95xx-Use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/pending-4.4/030-2-smsc75xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.4/030-2-smsc75xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/pending-4.4/030-3-cx82310_eth-use-skb_cow_head-to-deal-with-cloned-skb.patch [moved from target/linux/generic/patches-4.4/030-3-cx82310_eth-use-skb_cow_head-to-deal-with-cloned-skb.patch with 100% similarity]
target/linux/generic/pending-4.4/030-4-sr9700-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.4/030-4-sr9700-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/pending-4.4/030-5-lan78xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.4/030-5-lan78xx-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/pending-4.4/030-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.4/030-6-ch9200-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/pending-4.4/030-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch [moved from target/linux/generic/patches-4.4/030-7-kaweth-use-skb_cow_head-to-deal-with-cloned-skbs.patch with 100% similarity]
target/linux/generic/pending-4.4/032-fq_codel-add-batch-ability-to-fq_codel_drop.patch [moved from target/linux/generic/patches-4.4/032-fq_codel-add-batch-ability-to-fq_codel_drop.patch with 100% similarity]
target/linux/generic/pending-4.4/033-fq_codel-add-memory-limitation-per-queue.patch [moved from target/linux/generic/patches-4.4/033-fq_codel-add-memory-limitation-per-queue.patch with 100% similarity]
target/linux/generic/pending-4.4/034-fq_codel-fix-memory-limitation-drift.patch [moved from target/linux/generic/patches-4.4/034-fq_codel-fix-memory-limitation-drift.patch with 100% similarity]
target/linux/generic/pending-4.4/035-fq_codel-fix-NET_XMIT_CN-behavior.patch [moved from target/linux/generic/patches-4.4/035-fq_codel-fix-NET_XMIT_CN-behavior.patch with 100% similarity]
target/linux/generic/pending-4.4/041-mtd-spi-nor-include-mtd.h-header-for-struct-mtd_info.patch [moved from target/linux/generic/patches-4.4/041-mtd-spi-nor-include-mtd.h-header-for-struct-mtd_info.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0001-mtd-bcm47xxsflash-use-ioremap_cache-instead-of-KSEG0.patch [moved from target/linux/generic/patches-4.4/042-0001-mtd-bcm47xxsflash-use-ioremap_cache-instead-of-KSEG0.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0002-mtd-add-arch-dependency-for-MTD_BCM47XXSFLASH-symbol.patch [moved from target/linux/generic/patches-4.4/042-0002-mtd-add-arch-dependency-for-MTD_BCM47XXSFLASH-symbol.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0003-mtd-bcm47xxsflash-use-uncached-MMIO-access-for-BCM53.patch [moved from target/linux/generic/patches-4.4/042-0003-mtd-bcm47xxsflash-use-uncached-MMIO-access-for-BCM53.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0005-mtd-bcm47xxsflash-use-platform_-set-get-_drvdata.patch [moved from target/linux/generic/patches-4.4/042-0005-mtd-bcm47xxsflash-use-platform_-set-get-_drvdata.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0006-mtd-bcm47xxsflash-support-reading-flash-out-of-mappi.patch [moved from target/linux/generic/patches-4.4/042-0006-mtd-bcm47xxsflash-support-reading-flash-out-of-mappi.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0007-mtd-bcm47xxpart-move-TRX-parsing-code-to-separated-f.patch [moved from target/linux/generic/patches-4.4/042-0007-mtd-bcm47xxpart-move-TRX-parsing-code-to-separated-f.patch with 100% similarity]
target/linux/generic/pending-4.4/042-0008-mtd-bcm47xxpart-support-layouts-with-multiple-TRX-pa.patch [moved from target/linux/generic/patches-4.4/042-0008-mtd-bcm47xxpart-support-layouts-with-multiple-TRX-pa.patch with 100% similarity]
target/linux/generic/pending-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch [moved from target/linux/generic/patches-4.4/043-mtd-spi-nor-mx25l3205d-mx25l6405d-append-SECT_4K.patch with 100% similarity]
target/linux/generic/pending-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch [moved from target/linux/generic/patches-4.4/045-mtd-devices-m25p80-add-support-for-mmap-read-request.patch with 100% similarity]
target/linux/generic/pending-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch [moved from target/linux/generic/patches-4.4/046-ubifs-silence-error-output-if-MS_SILENT-is-set.patch with 100% similarity]
target/linux/generic/pending-4.4/047-ubifs-silence-early-error-if-MS_SILENT-is-set.patch [moved from target/linux/generic/patches-4.4/047-ubifs-silence-early-error-if-MS_SILENT-is-set.patch with 100% similarity]
target/linux/generic/pending-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch [moved from target/linux/generic/patches-4.4/048-mtd-spi-nor-backport-SPI_NOR_HAS_LOCK-flag.patch with 100% similarity]
target/linux/generic/pending-4.4/050-backport_netfilter_rtcache.patch [moved from target/linux/generic/patches-4.4/050-backport_netfilter_rtcache.patch with 100% similarity]
target/linux/generic/pending-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch [moved from target/linux/generic/patches-4.4/051-0001-ovl-rename-is_merge-to-is_lowest.patch with 100% similarity]
target/linux/generic/pending-4.4/051-0002-ovl-override-creds-with-the-ones-from-the-superblock.patch [moved from target/linux/generic/patches-4.4/051-0002-ovl-override-creds-with-the-ones-from-the-superblock.patch with 100% similarity]
target/linux/generic/pending-4.4/051-0005-ovl-proper-cleanup-of-workdir.patch [moved from target/linux/generic/patches-4.4/051-0005-ovl-proper-cleanup-of-workdir.patch with 100% similarity]
target/linux/generic/pending-4.4/052-01-ubifs-Implement-O_TMPFILE.patch [moved from target/linux/generic/patches-4.4/052-01-ubifs-Implement-O_TMPFILE.patch with 100% similarity]
target/linux/generic/pending-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch [moved from target/linux/generic/patches-4.4/052-02-ubifs-Implement-RENAME_WHITEOUT.patch with 100% similarity]
target/linux/generic/pending-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch [moved from target/linux/generic/patches-4.4/052-03-ubifs-Implement-RENAME_EXCHANGE.patch with 100% similarity]
target/linux/generic/pending-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch [moved from target/linux/generic/patches-4.4/052-04-ubifs-Use-move-variable-in-ubifs_rename.patch with 100% similarity]
target/linux/generic/pending-4.4/053-0001-ubifs-Drop-softlimit-and-delta-fields-from-struct-ub.patch [moved from target/linux/generic/patches-4.4/053-0001-ubifs-Drop-softlimit-and-delta-fields-from-struct-ub.patch with 100% similarity]
target/linux/generic/pending-4.4/053-0002-ubifs-Use-dirty_writeback_interval-value-for-wbuf-ti.patch [moved from target/linux/generic/patches-4.4/053-0002-ubifs-Use-dirty_writeback_interval-value-for-wbuf-ti.patch with 100% similarity]
target/linux/generic/pending-4.4/060-mips_decompressor_memmove.patch [moved from target/linux/generic/patches-4.4/060-mips_decompressor_memmove.patch with 100% similarity]
target/linux/generic/pending-4.4/061-softirq-let-ksoftirqd-do-its-job.patch [moved from target/linux/generic/patches-4.4/061-softirq-let-ksoftirqd-do-its-job.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.5-0003-net-bgmac-clarify-CONFIG_BCMA-dependency.patch [moved from target/linux/generic/patches-4.4/070-v4.5-0003-net-bgmac-clarify-CONFIG_BCMA-dependency.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.6-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch [moved from target/linux/generic/patches-4.4/070-v4.6-0001-bgmac-add-helper-checking-for-BCM4707-BCM53018-chip-.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.6-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch [moved from target/linux/generic/patches-4.4/070-v4.6-0002-bgmac-support-Ethernet-device-on-BCM47094-SoC.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.6-0004-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch [moved from target/linux/generic/patches-4.4/070-v4.6-0004-bgmac-fix-MAC-soft-reset-bit-for-corerev-4.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.8-0001-bgmac-Bind-net_device-with-backing-device-structure.patch [moved from target/linux/generic/patches-4.4/070-v4.8-0001-bgmac-Bind-net_device-with-backing-device-structure.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.8-0002-bgmac-Add-support-for-ethtool-statistics.patch [moved from target/linux/generic/patches-4.4/070-v4.8-0002-bgmac-Add-support-for-ethtool-statistics.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.8-0003-bgmac-Maintain-some-netdev-statistics.patch [moved from target/linux/generic/patches-4.4/070-v4.8-0003-bgmac-Maintain-some-netdev-statistics.patch with 100% similarity]
target/linux/generic/pending-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch [moved from target/linux/generic/patches-4.4/070-v4.8-0004-net-ethernet-bgmac-use-phydev-from-struct-net_device.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0001-net-ethernet-bgmac-change-bgmac_-prints-to-dev_-prin.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0002-net-ethernet-bgmac-add-dma_dev-pointer.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0003-net-ethernet-bgmac-move-BCMA-MDIO-Phy-code-into-a-se.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0004-net-ethernet-bgmac-convert-to-feature-flags.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0004-net-ethernet-bgmac-convert-to-feature-flags.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0005-net-ethernet-bgmac-Add-platform-device-support.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0005-net-ethernet-bgmac-Add-platform-device-support.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0006-net-ethernet-bgmac-Fix-return-value-check-in-bgmac_p.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0006-net-ethernet-bgmac-Fix-return-value-check-in-bgmac_p.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0007-net-ethernet-bgmac-Remove-redundant-dev_err-call-in-.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0007-net-ethernet-bgmac-Remove-redundant-dev_err-call-in-.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.8-0009-net-bgmac-fix-reversed-check-for-MII-registration-er.patch [moved from target/linux/generic/patches-4.4/071-v4.8-0009-net-bgmac-fix-reversed-check-for-MII-registration-er.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.9-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch [moved from target/linux/generic/patches-4.4/071-v4.9-0001-net-bgmac-support-Ethernet-core-on-BCM53573-SoCs.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.9-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch [moved from target/linux/generic/patches-4.4/071-v4.9-0002-net-bgmac-make-it-clear-when-setting-interface-type-.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.9-0003-net-bgmac-Fix-errant-feature-flag-check.patch [moved from target/linux/generic/patches-4.4/071-v4.9-0003-net-bgmac-Fix-errant-feature-flag-check.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.9-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch [moved from target/linux/generic/patches-4.4/071-v4.9-0004-net-bgmac-fix-spelling-mistake-connecton-connection.patch with 100% similarity]
target/linux/generic/pending-4.4/071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch [moved from target/linux/generic/patches-4.4/071-v4.9-0005-net-bgmac-fix-reversed-checks-for-clock-control-flag.patch with 100% similarity]
target/linux/generic/pending-4.4/072-net-add-devm-version-of-alloc_etherdev_mqs-function.patch [moved from target/linux/generic/patches-4.4/072-net-add-devm-version-of-alloc_etherdev_mqs-function.patch with 100% similarity]
target/linux/generic/pending-4.4/073-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch [moved from target/linux/generic/patches-4.4/073-v4.10-0001-net-bgmac-allocate-struct-bgmac-just-once-don-t-copy.patch with 100% similarity]
target/linux/generic/pending-4.4/073-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch [moved from target/linux/generic/patches-4.4/073-v4.10-0002-net-bgmac-drop-struct-bcma_mdio-we-don-t-need-anymor.patch with 100% similarity]
target/linux/generic/pending-4.4/073-v4.10-0003-net-bgmac-use-PHY-subsystem-for-initializing-PHY.patch [moved from target/linux/generic/patches-4.4/073-v4.10-0003-net-bgmac-use-PHY-subsystem-for-initializing-PHY.patch with 100% similarity]
target/linux/generic/pending-4.4/074-NET-PHY-adds-driver-for-lantiq-PHY11G.patch [moved from target/linux/generic/patches-4.4/074-NET-PHY-adds-driver-for-lantiq-PHY11G.patch with 100% similarity]
target/linux/generic/pending-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch [moved from target/linux/generic/patches-4.4/078-0001-net-phy-update-Broadcom-drivers-to-v4.5.patch with 100% similarity]
target/linux/generic/pending-4.4/078-0002-net-phy-update-Broadcom-drivers-to-v4.6.patch [moved from target/linux/generic/patches-4.4/078-0002-net-phy-update-Broadcom-drivers-to-v4.6.patch with 100% similarity]
target/linux/generic/pending-4.4/078-0003-net-phy-cherry-pick-Broadcom-drivers-updates-from-v4.patch [moved from target/linux/generic/patches-4.4/078-0003-net-phy-cherry-pick-Broadcom-drivers-updates-from-v4.patch with 100% similarity]
target/linux/generic/pending-4.4/078-0004-net-phy-pick-Broadcom-drivers-updates-from-net-next-.patch [moved from target/linux/generic/patches-4.4/078-0004-net-phy-pick-Broadcom-drivers-updates-from-net-next-.patch with 100% similarity]
target/linux/generic/pending-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch [moved from target/linux/generic/patches-4.4/080-spi-introduce-accelerated-read-support-for-spi-flash.patch with 100% similarity]
target/linux/generic/pending-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch [moved from target/linux/generic/patches-4.4/081-spi-bcm53xx-add-spi_flash_read-callback-for-MMIO-bas.patch with 100% similarity]
target/linux/generic/pending-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch [moved from target/linux/generic/patches-4.4/082-0001-USB-core-let-USB-device-know-device-node.patch with 100% similarity]
target/linux/generic/pending-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch [moved from target/linux/generic/patches-4.4/082-0002-usb-core-usb_alloc_dev-fix-setting-of-portnum.patch with 100% similarity]
target/linux/generic/pending-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch [moved from target/linux/generic/patches-4.4/083-0001-clk-Add-devm_-clk_hw_-register-unregister-APIs.patch with 100% similarity]
target/linux/generic/pending-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch [moved from target/linux/generic/patches-4.4/083-0002-clk-Add-clk_hw-OF-clk-providers.patch with 100% similarity]
target/linux/generic/pending-4.4/084-0001-usb-core-Introduce-a-USB-port-LED-trigger.patch [moved from target/linux/generic/patches-4.4/084-0001-usb-core-Introduce-a-USB-port-LED-trigger.patch with 100% similarity]
target/linux/generic/pending-4.4/084-0002-usb-core-usbport-Use-proper-LED-API-to-fix-potential.patch [moved from target/linux/generic/patches-4.4/084-0002-usb-core-usbport-Use-proper-LED-API-to-fix-potential.patch with 100% similarity]
target/linux/generic/pending-4.4/084-0003-usb-core-read-USB-ports-from-DT-in-the-usbport-LED-t.patch [moved from target/linux/generic/patches-4.4/084-0003-usb-core-read-USB-ports-from-DT-in-the-usbport-LED-t.patch with 100% similarity]
target/linux/generic/pending-4.4/085-0001-leds-leds-gpio-Set-of_node-for-created-LED-devices.patch [moved from target/linux/generic/patches-4.4/085-0001-leds-leds-gpio-Set-of_node-for-created-LED-devices.patch with 100% similarity]
target/linux/generic/pending-4.4/085-0002-leds-gpio-introduce-gpio_blink_set_t.patch [moved from target/linux/generic/patches-4.4/085-0002-leds-gpio-introduce-gpio_blink_set_t.patch with 100% similarity]
target/linux/generic/pending-4.4/085-0003-leds-gpio-switch-to-managed-version-of-led_classdev_.patch [moved from target/linux/generic/patches-4.4/085-0003-leds-gpio-switch-to-managed-version-of-led_classdev_.patch with 100% similarity]
target/linux/generic/pending-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch [moved from target/linux/generic/patches-4.4/085-0004-leds-core-add-OF-variants-of-LED-registering-functio.patch with 100% similarity]
target/linux/generic/pending-4.4/085-0005-leds-gpio-use-OF-variant-of-LED-registering-function.patch [moved from target/linux/generic/patches-4.4/085-0005-leds-gpio-use-OF-variant-of-LED-registering-function.patch with 100% similarity]
target/linux/generic/pending-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch [moved from target/linux/generic/patches-4.4/086-0001-thermal-of-thermal-Add-devm-version-of-thermal_zone_.patch with 100% similarity]
target/linux/generic/pending-4.4/086-0002-thermal-core-export-apis-to-get-slope-and-offset.patch [moved from target/linux/generic/patches-4.4/086-0002-thermal-core-export-apis-to-get-slope-and-offset.patch with 100% similarity]
target/linux/generic/pending-4.4/086-0003-thermal-bcm2835-add-thermal-driver-for-bcm2835-SoC.patch [moved from target/linux/generic/patches-4.4/086-0003-thermal-bcm2835-add-thermal-driver-for-bcm2835-SoC.patch with 100% similarity]
target/linux/generic/pending-4.4/086-0004-thermal-broadcom-add-Northstar-thermal-driver.patch [moved from target/linux/generic/patches-4.4/086-0004-thermal-broadcom-add-Northstar-thermal-driver.patch with 100% similarity]
target/linux/generic/pending-4.4/086-0005-thermal-broadcom-fix-compilation-of-Northstar-driver.patch [moved from target/linux/generic/patches-4.4/086-0005-thermal-broadcom-fix-compilation-of-Northstar-driver.patch with 100% similarity]
target/linux/generic/pending-4.4/087-regmap-make-LZO-cache-optional.patch [moved from target/linux/generic/patches-4.9/087-regmap-make-LZO-cache-optional.patch with 100% similarity]
target/linux/generic/pending-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch [moved from target/linux/generic/patches-4.4/090-MIPS-c-r4k-Use-IPI-calls-for-CM-indexed-cache-ops.patch with 100% similarity]
target/linux/generic/pending-4.4/091-MIPS-c-r4k-Exclude-sibling-CPUs-in-SMP-calls.patch [moved from target/linux/generic/patches-4.4/091-MIPS-c-r4k-Exclude-sibling-CPUs-in-SMP-calls.patch with 100% similarity]
target/linux/generic/pending-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch [moved from target/linux/generic/patches-4.4/092-MIPS-ZBOOT-copy-appended-dtb-to-the-end-of-the-kerne.patch with 100% similarity]
target/linux/generic/pending-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch [moved from target/linux/generic/patches-4.4/093-MIPS-store-the-appended-dtb-address-in-a-variable.patch with 100% similarity]
target/linux/generic/pending-4.4/094-MIPS-c-r4k-Fix-size-calc-when-avoiding-IPIs-for-smal.patch [moved from target/linux/generic/patches-4.4/094-MIPS-c-r4k-Fix-size-calc-when-avoiding-IPIs-for-smal.patch with 100% similarity]
target/linux/generic/pending-4.4/096-arc-add-model-property-in-dts.patch [moved from target/linux/generic/patches-4.4/096-arc-add-model-property-in-dts.patch with 100% similarity]
target/linux/generic/pending-4.4/097-MIPS-io.h-Define-ioremap_cache.patch [moved from target/linux/generic/patches-4.4/097-MIPS-io.h-Define-ioremap_cache.patch with 100% similarity]
target/linux/generic/pending-4.4/098-usb-dwc2-Remove-unnecessary-kfree.patch [moved from target/linux/generic/patches-4.4/098-usb-dwc2-Remove-unnecessary-kfree.patch with 100% similarity]
target/linux/generic/pending-4.4/101-MIPS-fix-cache-flushing-for-highmem-pages.patch [moved from target/linux/generic/patches-4.4/101-MIPS-fix-cache-flushing-for-highmem-pages.patch with 100% similarity]
target/linux/generic/pending-4.4/102-ehci_hcd_ignore_oc.patch [moved from target/linux/generic/patches-4.4/102-ehci_hcd_ignore_oc.patch with 100% similarity]
target/linux/generic/pending-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch [moved from target/linux/generic/patches-4.4/103-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch with 100% similarity]
target/linux/generic/pending-4.4/105-add-linux-spidev-compatible.patch [moved from target/linux/generic/patches-4.4/105-add-linux-spidev-compatible.patch with 100% similarity]
target/linux/generic/pending-4.4/106-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch [moved from target/linux/generic/patches-4.4/106-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch with 100% similarity]
target/linux/generic/pending-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch [moved from target/linux/generic/patches-4.4/110-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch with 100% similarity]
target/linux/generic/pending-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch [moved from target/linux/generic/patches-4.4/111-jffs2-add-RENAME_EXCHANGE-support.patch with 100% similarity]
target/linux/generic/pending-4.4/120-bridge_allow_receiption_on_disabled_port.patch [moved from target/linux/generic/patches-4.4/120-bridge_allow_receiption_on_disabled_port.patch with 100% similarity]
target/linux/generic/pending-4.4/132-mips_inline_dma_ops.patch [moved from target/linux/generic/patches-4.4/132-mips_inline_dma_ops.patch with 100% similarity]
target/linux/generic/pending-4.4/140-mtd-part-add-generic-parsing-of-linux-part-probe.patch [moved from target/linux/generic/patches-4.4/140-mtd-part-add-generic-parsing-of-linux-part-probe.patch with 100% similarity]
target/linux/generic/pending-4.4/150-mtd-spi-nor-add-support-for-ESMT_f25l32qa-and-ESMT_f.patch [moved from target/linux/generic/patches-4.4/150-mtd-spi-nor-add-support-for-ESMT_f25l32qa-and-ESMT_f.patch with 100% similarity]
target/linux/generic/pending-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch [moved from target/linux/generic/patches-4.4/160-usb-gadget-udc-net2280-add-usb2380-support.patch with 100% similarity]
target/linux/generic/pending-4.4/180-Revert-bcma-init-serial-console-directly-from-ChipCo.patch [moved from target/linux/generic/patches-4.4/180-Revert-bcma-init-serial-console-directly-from-ChipCo.patch with 100% similarity]
target/linux/generic/pending-4.4/200-fix_localversion.patch [moved from target/linux/generic/patches-4.4/200-fix_localversion.patch with 100% similarity]
target/linux/generic/pending-4.4/201-extra_optimization.patch [moved from target/linux/generic/patches-4.4/201-extra_optimization.patch with 100% similarity]
target/linux/generic/pending-4.4/202-reduce_module_size.patch [moved from target/linux/generic/patches-4.4/202-reduce_module_size.patch with 100% similarity]
target/linux/generic/pending-4.4/203-kallsyms_uncompressed.patch [moved from target/linux/generic/patches-4.4/203-kallsyms_uncompressed.patch with 100% similarity]
target/linux/generic/pending-4.4/204-module_strip.patch [moved from target/linux/generic/patches-4.4/204-module_strip.patch with 100% similarity]
target/linux/generic/pending-4.4/205-backtrace_module_info.patch [moved from target/linux/generic/patches-4.4/205-backtrace_module_info.patch with 100% similarity]
target/linux/generic/pending-4.4/206-mips-disable-vdso.patch [moved from target/linux/generic/patches-4.4/206-mips-disable-vdso.patch with 100% similarity]
target/linux/generic/pending-4.4/207-mips-vdso-dbg-rebuild-after-genvdso.patch [moved from target/linux/generic/patches-4.4/207-mips-vdso-dbg-rebuild-after-genvdso.patch with 100% similarity]
target/linux/generic/pending-4.4/208-disable-modorder.patch [moved from target/linux/generic/patches-4.4/208-disable-modorder.patch with 100% similarity]
target/linux/generic/pending-4.4/210-darwin_scripts_include.patch [moved from target/linux/generic/patches-4.4/210-darwin_scripts_include.patch with 100% similarity]
target/linux/generic/pending-4.4/211-sign-file-libressl.patch [moved from target/linux/generic/patches-4.4/211-sign-file-libressl.patch with 100% similarity]
target/linux/generic/pending-4.4/212-byteshift_portability.patch [moved from target/linux/generic/patches-4.4/212-byteshift_portability.patch with 100% similarity]
target/linux/generic/pending-4.4/214-spidev_h_portability.patch [moved from target/linux/generic/patches-4.4/214-spidev_h_portability.patch with 100% similarity]
target/linux/generic/pending-4.4/220-gc_sections.patch [moved from target/linux/generic/patches-4.4/220-gc_sections.patch with 100% similarity]
target/linux/generic/pending-4.4/221-module_exports.patch [moved from target/linux/generic/patches-4.4/221-module_exports.patch with 100% similarity]
target/linux/generic/pending-4.4/222-arm_zimage_none.patch [moved from target/linux/generic/patches-4.4/222-arm_zimage_none.patch with 100% similarity]
target/linux/generic/pending-4.4/230-openwrt_lzma_options.patch [moved from target/linux/generic/patches-4.4/230-openwrt_lzma_options.patch with 100% similarity]
target/linux/generic/pending-4.4/250-netfilter_depends.patch [moved from target/linux/generic/patches-4.4/250-netfilter_depends.patch with 100% similarity]
target/linux/generic/pending-4.4/251-sound_kconfig.patch [moved from target/linux/generic/patches-4.4/251-sound_kconfig.patch with 100% similarity]
target/linux/generic/pending-4.4/252-mv_cesa_depends.patch [moved from target/linux/generic/patches-4.4/252-mv_cesa_depends.patch with 100% similarity]
target/linux/generic/pending-4.4/253-ssb_b43_default_on.patch [moved from target/linux/generic/patches-4.4/253-ssb_b43_default_on.patch with 100% similarity]
target/linux/generic/pending-4.4/254-textsearch_kconfig_hacks.patch [moved from target/linux/generic/patches-4.4/254-textsearch_kconfig_hacks.patch with 100% similarity]
target/linux/generic/pending-4.4/255-lib80211_kconfig_hacks.patch [moved from target/linux/generic/patches-4.4/255-lib80211_kconfig_hacks.patch with 100% similarity]
target/linux/generic/pending-4.4/256-crypto_add_kconfig_prompts.patch [moved from target/linux/generic/patches-4.4/256-crypto_add_kconfig_prompts.patch with 100% similarity]
target/linux/generic/pending-4.4/257-wireless_ext_kconfig_hack.patch [moved from target/linux/generic/patches-4.4/257-wireless_ext_kconfig_hack.patch with 100% similarity]
target/linux/generic/pending-4.4/258-netfilter_netlink_kconfig_hack.patch [moved from target/linux/generic/patches-4.4/258-netfilter_netlink_kconfig_hack.patch with 100% similarity]
target/linux/generic/pending-4.4/259-regmap_dynamic.patch [moved from target/linux/generic/patches-4.4/259-regmap_dynamic.patch with 100% similarity]
target/linux/generic/pending-4.4/260-crypto_test_dependencies.patch [moved from target/linux/generic/patches-4.4/260-crypto_test_dependencies.patch with 100% similarity]
target/linux/generic/pending-4.4/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch [moved from target/linux/generic/patches-4.4/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch with 100% similarity]
target/linux/generic/pending-4.4/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch [moved from target/linux/generic/patches-4.4/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch with 100% similarity]
target/linux/generic/pending-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch [moved from target/linux/generic/patches-4.4/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch with 100% similarity]
target/linux/generic/pending-4.4/280-rfkill-stubs.patch [moved from target/linux/generic/patches-4.4/280-rfkill-stubs.patch with 100% similarity]
target/linux/generic/pending-4.4/300-mips_expose_boot_raw.patch [moved from target/linux/generic/patches-4.4/300-mips_expose_boot_raw.patch with 100% similarity]
target/linux/generic/pending-4.4/301-mips_image_cmdline_hack.patch [moved from target/linux/generic/patches-4.4/301-mips_image_cmdline_hack.patch with 100% similarity]
target/linux/generic/pending-4.4/302-mips_no_branch_likely.patch [moved from target/linux/generic/patches-4.4/302-mips_no_branch_likely.patch with 100% similarity]
target/linux/generic/pending-4.4/304-mips_disable_fpu.patch [moved from target/linux/generic/patches-4.4/304-mips_disable_fpu.patch with 100% similarity]
target/linux/generic/pending-4.4/305-mips_module_reloc.patch [moved from target/linux/generic/patches-4.4/305-mips_module_reloc.patch with 100% similarity]
target/linux/generic/pending-4.4/306-mips_mem_functions_performance.patch [moved from target/linux/generic/patches-4.4/306-mips_mem_functions_performance.patch with 100% similarity]
target/linux/generic/pending-4.4/307-mips_highmem_offset.patch [moved from target/linux/generic/patches-4.4/307-mips_highmem_offset.patch with 100% similarity]
target/linux/generic/pending-4.4/308-mips32r2_tune.patch [moved from target/linux/generic/patches-4.4/308-mips32r2_tune.patch with 100% similarity]
target/linux/generic/pending-4.4/310-arm_module_unresolved_weak_sym.patch [moved from target/linux/generic/patches-4.4/310-arm_module_unresolved_weak_sym.patch with 100% similarity]
target/linux/generic/pending-4.4/320-ppc4xx_optimization.patch [moved from target/linux/generic/patches-4.4/320-ppc4xx_optimization.patch with 100% similarity]
target/linux/generic/pending-4.4/321-powerpc_crtsavres_prereq.patch [moved from target/linux/generic/patches-4.4/321-powerpc_crtsavres_prereq.patch with 100% similarity]
target/linux/generic/pending-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch [moved from target/linux/generic/patches-4.4/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch with 100% similarity]
target/linux/generic/pending-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch [moved from target/linux/generic/patches-4.4/331-arc-remove-dependency-on-DEVTMPFS.patch with 100% similarity]
target/linux/generic/pending-4.4/332-arc-add-OWRTDTB-section.patch [moved from target/linux/generic/patches-4.4/332-arc-add-OWRTDTB-section.patch with 100% similarity]
target/linux/generic/pending-4.4/333-arc-enable-unaligned-access-in-kernel-mode.patch [moved from target/linux/generic/patches-4.4/333-arc-enable-unaligned-access-in-kernel-mode.patch with 100% similarity]
target/linux/generic/pending-4.4/400-mtd-add-rootfs-split-support.patch [moved from target/linux/generic/patches-4.4/400-mtd-add-rootfs-split-support.patch with 100% similarity]
target/linux/generic/pending-4.4/401-mtd-add-support-for-different-partition-parser-types.patch [moved from target/linux/generic/patches-4.4/401-mtd-add-support-for-different-partition-parser-types.patch with 100% similarity]
target/linux/generic/pending-4.4/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch [moved from target/linux/generic/patches-4.4/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch with 100% similarity]
target/linux/generic/pending-4.4/403-mtd-hook-mtdsplit-to-Kbuild.patch [moved from target/linux/generic/patches-4.4/403-mtd-hook-mtdsplit-to-Kbuild.patch with 100% similarity]
target/linux/generic/pending-4.4/404-mtd-add-more-helper-functions.patch [moved from target/linux/generic/patches-4.4/404-mtd-add-more-helper-functions.patch with 100% similarity]
target/linux/generic/pending-4.4/410-mtd-move-forward-declaration-of-struct-mtd_info.patch [moved from target/linux/generic/patches-4.4/410-mtd-move-forward-declaration-of-struct-mtd_info.patch with 100% similarity]
target/linux/generic/pending-4.4/411-mtd-partial_eraseblock_write.patch [moved from target/linux/generic/patches-4.4/411-mtd-partial_eraseblock_write.patch with 100% similarity]
target/linux/generic/pending-4.4/412-mtd-partial_eraseblock_unlock.patch [moved from target/linux/generic/patches-4.4/412-mtd-partial_eraseblock_unlock.patch with 100% similarity]
target/linux/generic/pending-4.4/420-mtd-redboot_space.patch [moved from target/linux/generic/patches-4.4/420-mtd-redboot_space.patch with 100% similarity]
target/linux/generic/pending-4.4/430-mtd-add-myloader-partition-parser.patch [moved from target/linux/generic/patches-4.4/430-mtd-add-myloader-partition-parser.patch with 100% similarity]
target/linux/generic/pending-4.4/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch [moved from target/linux/generic/patches-4.4/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch with 100% similarity]
target/linux/generic/pending-4.4/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch [moved from target/linux/generic/patches-4.4/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch with 100% similarity]
target/linux/generic/pending-4.4/440-block2mtd_init.patch [moved from target/linux/generic/patches-4.4/440-block2mtd_init.patch with 100% similarity]
target/linux/generic/pending-4.4/441-block2mtd_probe.patch [moved from target/linux/generic/patches-4.4/441-block2mtd_probe.patch with 100% similarity]
target/linux/generic/pending-4.4/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch [moved from target/linux/generic/patches-4.4/450-mtd-nand-allow-to-use-platform-specific-chip-fixup.patch with 100% similarity]
target/linux/generic/pending-4.4/451-mtd-nand-fix-return-code-of-nand_correct_data-function.patch [moved from target/linux/generic/patches-4.4/451-mtd-nand-fix-return-code-of-nand_correct_data-function.patch with 100% similarity]
target/linux/generic/pending-4.4/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch [moved from target/linux/generic/patches-4.4/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch with 100% similarity]
target/linux/generic/pending-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch [moved from target/linux/generic/patches-4.4/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch with 100% similarity]
target/linux/generic/pending-4.4/465-m25p80-mx-disable-software-protection.patch [moved from target/linux/generic/patches-4.4/465-m25p80-mx-disable-software-protection.patch with 100% similarity]
target/linux/generic/pending-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch [moved from target/linux/generic/patches-4.4/475-mtd-spi-nor-add-macronix-mx25u25635f.patch with 100% similarity]
target/linux/generic/pending-4.4/476-mtd-spi-nor-add-eon-en25q128.patch [moved from target/linux/generic/patches-4.4/476-mtd-spi-nor-add-eon-en25q128.patch with 100% similarity]
target/linux/generic/pending-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch [moved from target/linux/generic/patches-4.4/477-mtd-add-spi-nor-add-mx25u3235f.patch with 100% similarity]
target/linux/generic/pending-4.4/479-enable_mtd_has_lock_for_f25l32pa.patch [moved from target/linux/generic/patches-4.4/479-enable_mtd_has_lock_for_f25l32pa.patch with 100% similarity]
target/linux/generic/pending-4.4/480-mtd-set-rootfs-to-be-root-dev.patch [moved from target/linux/generic/patches-4.4/480-mtd-set-rootfs-to-be-root-dev.patch with 100% similarity]
target/linux/generic/pending-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch [moved from target/linux/generic/patches-4.4/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch with 100% similarity]
target/linux/generic/pending-4.4/491-ubi-auto-create-ubiblock-device-for-rootfs.patch [moved from target/linux/generic/patches-4.4/491-ubi-auto-create-ubiblock-device-for-rootfs.patch with 100% similarity]
target/linux/generic/pending-4.4/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch [moved from target/linux/generic/patches-4.4/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch with 100% similarity]
target/linux/generic/pending-4.4/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch [moved from target/linux/generic/patches-4.4/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch with 100% similarity]
target/linux/generic/pending-4.4/494-mtd-ubi-add-EOF-marker-support.patch [moved from target/linux/generic/patches-4.4/494-mtd-ubi-add-EOF-marker-support.patch with 100% similarity]
target/linux/generic/pending-4.4/530-jffs2_make_lzma_available.patch [moved from target/linux/generic/patches-4.4/530-jffs2_make_lzma_available.patch with 100% similarity]
target/linux/generic/pending-4.4/531-debloat_lzma.patch [moved from target/linux/generic/patches-4.4/531-debloat_lzma.patch with 100% similarity]
target/linux/generic/pending-4.4/532-jffs2_eofdetect.patch [moved from target/linux/generic/patches-4.4/532-jffs2_eofdetect.patch with 100% similarity]
target/linux/generic/pending-4.4/551-ubifs-fix-default-compression-selection.patch [moved from target/linux/generic/patches-4.4/551-ubifs-fix-default-compression-selection.patch with 100% similarity]
target/linux/generic/pending-4.4/600-netfilter_conntrack_flush.patch [moved from target/linux/generic/patches-4.4/600-netfilter_conntrack_flush.patch with 100% similarity]
target/linux/generic/pending-4.4/610-netfilter_match_bypass_default_checks.patch [moved from target/linux/generic/patches-4.4/610-netfilter_match_bypass_default_checks.patch with 100% similarity]
target/linux/generic/pending-4.4/611-netfilter_match_bypass_default_table.patch [moved from target/linux/generic/patches-4.4/611-netfilter_match_bypass_default_table.patch with 100% similarity]
target/linux/generic/pending-4.4/612-netfilter_match_reduce_memory_access.patch [moved from target/linux/generic/patches-4.4/612-netfilter_match_reduce_memory_access.patch with 100% similarity]
target/linux/generic/pending-4.4/613-netfilter_optional_tcp_window_check.patch [moved from target/linux/generic/patches-4.4/613-netfilter_optional_tcp_window_check.patch with 100% similarity]
target/linux/generic/pending-4.4/616-net_optimize_xfrm_calls.patch [moved from target/linux/generic/patches-4.4/616-net_optimize_xfrm_calls.patch with 100% similarity]
target/linux/generic/pending-4.4/630-packet_socket_type.patch [moved from target/linux/generic/patches-4.4/630-packet_socket_type.patch with 100% similarity]
target/linux/generic/pending-4.4/640-bridge_no_eap_forward.patch [moved from target/linux/generic/patches-4.4/640-bridge_no_eap_forward.patch with 100% similarity]
target/linux/generic/pending-4.4/641-bridge_always_accept_eap.patch [moved from target/linux/generic/patches-4.4/641-bridge_always_accept_eap.patch with 100% similarity]
target/linux/generic/pending-4.4/642-bridge_port_isolate.patch [moved from target/linux/generic/patches-4.4/642-bridge_port_isolate.patch with 100% similarity]
target/linux/generic/pending-4.4/645-bridge_multicast_to_unicast.patch [moved from target/linux/generic/patches-4.4/645-bridge_multicast_to_unicast.patch with 100% similarity]
target/linux/generic/pending-4.4/650-pppoe_header_pad.patch [moved from target/linux/generic/patches-4.4/650-pppoe_header_pad.patch with 100% similarity]
target/linux/generic/pending-4.4/651-wireless_mesh_header.patch [moved from target/linux/generic/patches-4.4/651-wireless_mesh_header.patch with 100% similarity]
target/linux/generic/pending-4.4/653-disable_netlink_trim.patch [moved from target/linux/generic/patches-4.4/653-disable_netlink_trim.patch with 100% similarity]
target/linux/generic/pending-4.4/655-increase_skb_pad.patch [moved from target/linux/generic/patches-4.4/655-increase_skb_pad.patch with 100% similarity]
target/linux/generic/pending-4.4/660-fq_codel_defaults.patch [moved from target/linux/generic/patches-4.4/660-fq_codel_defaults.patch with 100% similarity]
target/linux/generic/pending-4.4/661-fq_codel_keep_dropped_stats.patch [moved from target/linux/generic/patches-4.4/661-fq_codel_keep_dropped_stats.patch with 100% similarity]
target/linux/generic/pending-4.4/662-use_fq_codel_by_default.patch [moved from target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch with 100% similarity]
target/linux/generic/pending-4.4/663-remove_pfifo_fast.patch [moved from target/linux/generic/patches-4.4/663-remove_pfifo_fast.patch with 100% similarity]
target/linux/generic/pending-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch [moved from target/linux/generic/patches-4.4/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch with 100% similarity]
target/linux/generic/pending-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch [moved from target/linux/generic/patches-4.4/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch with 100% similarity]
target/linux/generic/pending-4.4/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch [moved from target/linux/generic/patches-4.4/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch with 100% similarity]
target/linux/generic/pending-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch [moved from target/linux/generic/patches-4.4/680-NET-skip-GRO-for-foreign-MAC-addresses.patch with 100% similarity]
target/linux/generic/pending-4.4/681-NET-add-of_get_mac_address_mtd.patch [moved from target/linux/generic/patches-4.4/681-NET-add-of_get_mac_address_mtd.patch with 100% similarity]
target/linux/generic/pending-4.4/700-swconfig.patch [moved from target/linux/generic/patches-4.4/700-swconfig.patch with 100% similarity]
target/linux/generic/pending-4.4/701-phy_extension.patch [moved from target/linux/generic/patches-4.4/701-phy_extension.patch with 100% similarity]
target/linux/generic/pending-4.4/702-phy_add_aneg_done_function.patch [moved from target/linux/generic/patches-4.4/702-phy_add_aneg_done_function.patch with 100% similarity]
target/linux/generic/pending-4.4/703-phy-add-detach-callback-to-struct-phy_driver.patch [moved from target/linux/generic/patches-4.4/703-phy-add-detach-callback-to-struct-phy_driver.patch with 100% similarity]
target/linux/generic/pending-4.4/704-phy-no-genphy-soft-reset.patch [moved from target/linux/generic/patches-4.4/704-phy-no-genphy-soft-reset.patch with 100% similarity]
target/linux/generic/pending-4.4/710-phy-add-mdio_register_board_info.patch [moved from target/linux/generic/patches-4.4/710-phy-add-mdio_register_board_info.patch with 100% similarity]
target/linux/generic/pending-4.4/720-phy_adm6996.patch [moved from target/linux/generic/patches-4.4/720-phy_adm6996.patch with 100% similarity]
target/linux/generic/pending-4.4/721-phy_packets.patch [moved from target/linux/generic/patches-4.4/721-phy_packets.patch with 100% similarity]
target/linux/generic/pending-4.4/722-phy_mvswitch.patch [moved from target/linux/generic/patches-4.4/722-phy_mvswitch.patch with 100% similarity]
target/linux/generic/pending-4.4/723-phy_ip175c.patch [moved from target/linux/generic/patches-4.4/723-phy_ip175c.patch with 100% similarity]
target/linux/generic/pending-4.4/724-phy_ar8216.patch [moved from target/linux/generic/patches-4.4/724-phy_ar8216.patch with 100% similarity]
target/linux/generic/pending-4.4/725-phy_rtl8306.patch [moved from target/linux/generic/patches-4.4/725-phy_rtl8306.patch with 100% similarity]
target/linux/generic/pending-4.4/726-phy_rtl8366.patch [moved from target/linux/generic/patches-4.4/726-phy_rtl8366.patch with 100% similarity]
target/linux/generic/pending-4.4/727-phy-rtl8367.patch [moved from target/linux/generic/patches-4.4/727-phy-rtl8367.patch with 100% similarity]
target/linux/generic/pending-4.4/728-phy-rtl8367b.patch [moved from target/linux/generic/patches-4.4/728-phy-rtl8367b.patch with 100% similarity]
target/linux/generic/pending-4.4/729-phy-tantos.patch [moved from target/linux/generic/patches-4.4/729-phy-tantos.patch with 100% similarity]
target/linux/generic/pending-4.4/730-phy_b53.patch [moved from target/linux/generic/patches-4.4/730-phy_b53.patch with 100% similarity]
target/linux/generic/pending-4.4/732-phy-ar8216-led-support.patch [moved from target/linux/generic/patches-4.4/732-phy-ar8216-led-support.patch with 100% similarity]
target/linux/generic/pending-4.4/733-phy_mvsw61xx.patch [moved from target/linux/generic/patches-4.4/733-phy_mvsw61xx.patch with 100% similarity]
target/linux/generic/pending-4.4/734-net-phy-at803x-allow-to-configure-via-pdata.patch [moved from target/linux/generic/patches-4.4/734-net-phy-at803x-allow-to-configure-via-pdata.patch with 100% similarity]
target/linux/generic/pending-4.4/735-net-phy-at803x-fix-at8033-sgmii-mode.patch [moved from target/linux/generic/patches-4.4/735-net-phy-at803x-fix-at8033-sgmii-mode.patch with 100% similarity]
target/linux/generic/pending-4.4/736-at803x-fix-reset-handling.patch [moved from target/linux/generic/patches-4.4/736-at803x-fix-reset-handling.patch with 100% similarity]
target/linux/generic/pending-4.4/737-net-phy-at803x-Request-reset-GPIO-only-for-AT8030-PH.patch [moved from target/linux/generic/patches-4.4/737-net-phy-at803x-Request-reset-GPIO-only-for-AT8030-PH.patch with 100% similarity]
target/linux/generic/pending-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch [moved from target/linux/generic/patches-4.4/738-net-phy-at803x-only-the-AT8030-needs-a-hardware-rese.patch with 100% similarity]
target/linux/generic/pending-4.4/739-net-phy-at803x-add-support-for-AT8032.patch [moved from target/linux/generic/patches-4.4/739-net-phy-at803x-add-support-for-AT8032.patch with 100% similarity]
target/linux/generic/pending-4.4/773-bgmac-add-srab-switch.patch [moved from target/linux/generic/patches-4.4/773-bgmac-add-srab-switch.patch with 100% similarity]
target/linux/generic/pending-4.4/810-pci_disable_common_quirks.patch [moved from target/linux/generic/patches-4.4/810-pci_disable_common_quirks.patch with 100% similarity]
target/linux/generic/pending-4.4/811-pci_disable_usb_common_quirks.patch [moved from target/linux/generic/patches-4.4/811-pci_disable_usb_common_quirks.patch with 100% similarity]
target/linux/generic/pending-4.4/821-usb-Remove-annoying-warning-about-bogus-URB.patch [moved from target/linux/generic/patches-4.4/821-usb-Remove-annoying-warning-about-bogus-URB.patch with 100% similarity]
target/linux/generic/pending-4.4/831-ledtrig_netdev.patch [moved from target/linux/generic/patches-4.4/831-ledtrig_netdev.patch with 100% similarity]
target/linux/generic/pending-4.4/834-ledtrig-libata.patch [moved from target/linux/generic/patches-4.4/834-ledtrig-libata.patch with 100% similarity]
target/linux/generic/pending-4.4/835-misc-owl_loader.patch [moved from target/linux/generic/patches-4.4/835-misc-owl_loader.patch with 100% similarity]
target/linux/generic/pending-4.4/840-rtc7301.patch [moved from target/linux/generic/patches-4.4/840-rtc7301.patch with 100% similarity]
target/linux/generic/pending-4.4/841-rtc_pt7c4338.patch [moved from target/linux/generic/patches-4.4/841-rtc_pt7c4338.patch with 100% similarity]
target/linux/generic/pending-4.4/861-04_spi_gpio_implement_spi_delay.patch [moved from target/linux/generic/patches-4.4/861-04_spi_gpio_implement_spi_delay.patch with 100% similarity]
target/linux/generic/pending-4.4/862-gpio_spi_driver.patch [moved from target/linux/generic/patches-4.4/862-gpio_spi_driver.patch with 100% similarity]
target/linux/generic/pending-4.4/890-uart_optional_sysrq.patch [moved from target/linux/generic/patches-4.4/890-uart_optional_sysrq.patch with 100% similarity]
target/linux/generic/pending-4.4/901-debloat_sock_diag.patch [moved from target/linux/generic/patches-4.4/901-debloat_sock_diag.patch with 100% similarity]
target/linux/generic/pending-4.4/902-debloat_proc.patch [moved from target/linux/generic/patches-4.4/902-debloat_proc.patch with 100% similarity]
target/linux/generic/pending-4.4/904-debloat_dma_buf.patch [moved from target/linux/generic/patches-4.4/904-debloat_dma_buf.patch with 100% similarity]
target/linux/generic/pending-4.4/910-kobject_uevent.patch [moved from target/linux/generic/patches-4.4/910-kobject_uevent.patch with 100% similarity]
target/linux/generic/pending-4.4/911-kobject_add_broadcast_uevent.patch [moved from target/linux/generic/patches-4.4/911-kobject_add_broadcast_uevent.patch with 100% similarity]
target/linux/generic/pending-4.4/921-use_preinit_as_init.patch [moved from target/linux/generic/patches-4.4/921-use_preinit_as_init.patch with 100% similarity]
target/linux/generic/pending-4.4/922-always-create-console-node-in-initramfs.patch [moved from target/linux/generic/patches-4.4/922-always-create-console-node-in-initramfs.patch with 100% similarity]
target/linux/generic/pending-4.4/930-crashlog.patch [moved from target/linux/generic/patches-4.4/930-crashlog.patch with 100% similarity]
target/linux/generic/pending-4.4/970-remove-unsane-filenames-from-deps_initramfs-list.patch [moved from target/linux/generic/patches-4.4/970-remove-unsane-filenames-from-deps_initramfs-list.patch with 100% similarity]
target/linux/generic/pending-4.4/995-mangle_bootargs.patch [moved from target/linux/generic/patches-4.4/995-mangle_bootargs.patch with 100% similarity]
target/linux/generic/pending-4.4/998-enable_wilink_platform_without_drivers.patch [moved from target/linux/generic/patches-4.4/998-enable_wilink_platform_without_drivers.patch with 100% similarity]
target/linux/generic/pending-4.9/100-MIPS-fix-cache-flushing-for-highmem-pages.patch [moved from target/linux/generic/patches-4.9/100-MIPS-fix-cache-flushing-for-highmem-pages.patch with 89% similarity]
target/linux/generic/pending-4.9/110-ehci_hcd_ignore_oc.patch [moved from target/linux/generic/patches-4.9/110-ehci_hcd_ignore_oc.patch with 93% similarity]
target/linux/generic/pending-4.9/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch [moved from target/linux/generic/patches-4.9/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch with 95% similarity]
target/linux/generic/pending-4.9/130-add-linux-spidev-compatible-si3210.patch [moved from target/linux/generic/patches-4.9/130-add-linux-spidev-compatible-si3210.patch with 55% similarity]
target/linux/generic/pending-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch [moved from target/linux/generic/patches-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch with 72% similarity]
target/linux/generic/pending-4.9/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch [moved from target/linux/generic/patches-4.9/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch with 93% similarity]
target/linux/generic/pending-4.9/141-jffs2-add-RENAME_EXCHANGE-support.patch [moved from target/linux/generic/patches-4.9/141-jffs2-add-RENAME_EXCHANGE-support.patch with 96% similarity]
target/linux/generic/pending-4.9/150-bridge_allow_receiption_on_disabled_port.patch [moved from target/linux/generic/patches-4.9/150-bridge_allow_receiption_on_disabled_port.patch with 100% similarity]
target/linux/generic/pending-4.9/160-mtd-part-add-generic-parsing-of-linux-part-probe.patch [moved from target/linux/generic/patches-4.9/160-mtd-part-add-generic-parsing-of-linux-part-probe.patch with 96% similarity]
target/linux/generic/pending-4.9/170-MIPS-PCI-add-controllers-before-the-specified-head.patch [moved from target/linux/generic/patches-4.9/170-MIPS-PCI-add-controllers-before-the-specified-head.patch with 96% similarity]
target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch [moved from target/linux/generic/patches-4.9/180-net-phy-at803x-add-support-for-AT8032.patch with 95% similarity]
target/linux/generic/pending-4.9/201-extra_optimization.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/203-kallsyms_uncompressed.patch [moved from target/linux/generic/patches-4.9/203-kallsyms_uncompressed.patch with 69% similarity]
target/linux/generic/pending-4.9/205-backtrace_module_info.patch [moved from target/linux/generic/patches-4.9/205-backtrace_module_info.patch with 54% similarity]
target/linux/generic/pending-4.9/206-mips-disable-vdso.patch [moved from target/linux/generic/patches-4.9/206-mips-disable-vdso.patch with 58% similarity]
target/linux/generic/pending-4.9/240-remove-unsane-filenames-from-deps_initramfs-list.patch [moved from target/linux/generic/patches-4.9/240-remove-unsane-filenames-from-deps_initramfs-list.patch with 58% similarity]
target/linux/generic/pending-4.9/261-enable_wilink_platform_without_drivers.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch [moved from target/linux/generic/patches-4.9/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch with 85% similarity]
target/linux/generic/pending-4.9/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch [moved from target/linux/generic/patches-4.9/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch with 95% similarity]
target/linux/generic/pending-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch [moved from target/linux/generic/patches-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch with 91% similarity]
target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch [moved from target/linux/generic/patches-4.9/300-mips_expose_boot_raw.patch with 95% similarity]
target/linux/generic/pending-4.9/302-mips_no_branch_likely.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/304-mips_disable_fpu.patch [moved from target/linux/generic/patches-4.9/304-mips_disable_fpu.patch with 97% similarity]
target/linux/generic/pending-4.9/305-mips_module_reloc.patch [moved from target/linux/generic/patches-4.9/305-mips_module_reloc.patch with 88% similarity]
target/linux/generic/pending-4.9/306-mips_mem_functions_performance.patch [moved from target/linux/generic/patches-4.9/306-mips_mem_functions_performance.patch with 66% similarity]
target/linux/generic/pending-4.9/307-mips_highmem_offset.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/308-mips32r2_tune.patch [moved from target/linux/generic/patches-4.9/308-mips32r2_tune.patch with 69% similarity]
target/linux/generic/pending-4.9/310-arm_module_unresolved_weak_sym.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch [moved from target/linux/generic/patches-4.9/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch with 97% similarity]
target/linux/generic/pending-4.9/332-arc-add-OWRTDTB-section.patch [moved from target/linux/generic/patches-4.9/332-arc-add-OWRTDTB-section.patch with 93% similarity]
target/linux/generic/pending-4.9/333-arc-enable-unaligned-access-in-kernel-mode.patch [moved from target/linux/generic/patches-4.9/333-arc-enable-unaligned-access-in-kernel-mode.patch with 81% similarity]
target/linux/generic/pending-4.9/400-mtd-add-rootfs-split-support.patch [moved from target/linux/generic/patches-4.9/400-mtd-add-rootfs-split-support.patch with 72% similarity]
target/linux/generic/pending-4.9/401-mtd-add-support-for-different-partition-parser-types.patch [moved from target/linux/generic/patches-4.9/401-mtd-add-support-for-different-partition-parser-types.patch with 93% similarity]
target/linux/generic/pending-4.9/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch [moved from target/linux/generic/patches-4.9/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch with 67% similarity]
target/linux/generic/pending-4.9/403-mtd-hook-mtdsplit-to-Kbuild.patch [moved from target/linux/generic/patches-4.9/403-mtd-hook-mtdsplit-to-Kbuild.patch with 51% similarity]
target/linux/generic/pending-4.9/404-mtd-add-more-helper-functions.patch [moved from target/linux/generic/patches-4.9/404-mtd-add-more-helper-functions.patch with 67% similarity]
target/linux/generic/pending-4.9/411-mtd-partial_eraseblock_write.patch [moved from target/linux/generic/patches-4.9/411-mtd-partial_eraseblock_write.patch with 81% similarity]
target/linux/generic/pending-4.9/412-mtd-partial_eraseblock_unlock.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/420-mtd-redboot_space.patch [moved from target/linux/generic/patches-4.9/420-mtd-redboot_space.patch with 60% similarity]
target/linux/generic/pending-4.9/430-mtd-add-myloader-partition-parser.patch [moved from target/linux/generic/patches-4.9/430-mtd-add-myloader-partition-parser.patch with 69% similarity]
target/linux/generic/pending-4.9/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch [moved from target/linux/generic/patches-4.9/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch with 92% similarity]
target/linux/generic/pending-4.9/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch [moved from target/linux/generic/patches-4.9/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch with 81% similarity]
target/linux/generic/pending-4.9/440-block2mtd_init.patch [moved from target/linux/generic/patches-4.9/440-block2mtd_init.patch with 71% similarity]
target/linux/generic/pending-4.9/441-block2mtd_probe.patch [moved from target/linux/generic/patches-4.9/441-block2mtd_probe.patch with 62% similarity]
target/linux/generic/pending-4.9/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch [moved from target/linux/generic/patches-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch with 82% similarity]
target/linux/generic/pending-4.9/465-m25p80-mx-disable-software-protection.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/476-mtd-spi-nor-add-eon-en25q128.patch [moved from target/linux/generic/patches-4.9/476-mtd-spi-nor-add-eon-en25q128.patch with 55% similarity]
target/linux/generic/pending-4.9/477-mtd-add-spi-nor-add-mx25u3235f.patch [moved from target/linux/generic/patches-4.9/477-mtd-add-spi-nor-add-mx25u3235f.patch with 53% similarity]
target/linux/generic/pending-4.9/480-mtd-set-rootfs-to-be-root-dev.patch [moved from target/linux/generic/patches-4.9/480-mtd-set-rootfs-to-be-root-dev.patch with 58% similarity]
target/linux/generic/pending-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch [moved from target/linux/generic/patches-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch with 89% similarity]
target/linux/generic/pending-4.9/491-ubi-auto-create-ubiblock-device-for-rootfs.patch [moved from target/linux/generic/patches-4.9/491-ubi-auto-create-ubiblock-device-for-rootfs.patch with 88% similarity]
target/linux/generic/pending-4.9/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch [moved from target/linux/generic/patches-4.9/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch with 81% similarity]
target/linux/generic/pending-4.9/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch [moved from target/linux/generic/patches-4.9/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch with 81% similarity]
target/linux/generic/pending-4.9/494-mtd-ubi-add-EOF-marker-support.patch [moved from target/linux/generic/patches-4.9/494-mtd-ubi-add-EOF-marker-support.patch with 64% similarity]
target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch [moved from target/linux/generic/patches-4.9/530-jffs2_make_lzma_available.patch with 97% similarity]
target/linux/generic/pending-4.9/532-jffs2_eofdetect.patch [moved from target/linux/generic/patches-4.9/532-jffs2_eofdetect.patch with 69% similarity]
target/linux/generic/pending-4.9/551-ubifs-fix-default-compression-selection.patch [moved from target/linux/generic/patches-4.9/551-ubifs-fix-default-compression-selection.patch with 64% similarity]
target/linux/generic/pending-4.9/600-netfilter_conntrack_flush.patch [moved from target/linux/generic/patches-4.9/600-netfilter_conntrack_flush.patch with 77% similarity]
target/linux/generic/pending-4.9/610-netfilter_match_bypass_default_checks.patch [moved from target/linux/generic/patches-4.9/610-netfilter_match_bypass_default_checks.patch with 70% similarity]
target/linux/generic/pending-4.9/611-netfilter_match_bypass_default_table.patch [moved from target/linux/generic/patches-4.9/611-netfilter_match_bypass_default_table.patch with 87% similarity]
target/linux/generic/pending-4.9/612-netfilter_match_reduce_memory_access.patch [moved from target/linux/generic/patches-4.9/612-netfilter_match_reduce_memory_access.patch with 60% similarity]
target/linux/generic/pending-4.9/613-netfilter_optional_tcp_window_check.patch [moved from target/linux/generic/patches-4.9/613-netfilter_optional_tcp_window_check.patch with 65% similarity]
target/linux/generic/pending-4.9/616-net_optimize_xfrm_calls.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/630-packet_socket_type.patch [moved from target/linux/generic/patches-4.9/630-packet_socket_type.patch with 70% similarity]
target/linux/generic/pending-4.9/650-pppoe_header_pad.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/655-increase_skb_pad.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch [moved from target/linux/generic/patches-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch with 94% similarity]
target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch [moved from target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch with 93% similarity]
target/linux/generic/pending-4.9/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch [moved from target/linux/generic/patches-4.9/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch with 85% similarity]
target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch [moved from target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch with 71% similarity]
target/linux/generic/pending-4.9/681-NET-add-of_get_mac_address_mtd.patch [moved from target/linux/generic/patches-4.9/681-NET-add-of_get_mac_address_mtd.patch with 98% similarity]
target/linux/generic/pending-4.9/701-phy_extension.patch [moved from target/linux/generic/patches-4.9/701-phy_extension.patch with 72% similarity]
target/linux/generic/pending-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch [moved from target/linux/generic/patches-4.9/704-phy-no-genphy-soft-reset.patch with 55% similarity]
target/linux/generic/pending-4.9/734-net-phy-at803x-allow-to-configure-via-pdata.patch [moved from target/linux/generic/patches-4.9/734-net-phy-at803x-allow-to-configure-via-pdata.patch with 74% similarity]
target/linux/generic/pending-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch [moved from target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch with 63% similarity]
target/linux/generic/pending-4.9/810-pci_disable_common_quirks.patch [moved from target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch with 66% similarity]
target/linux/generic/pending-4.9/811-pci_disable_usb_common_quirks.patch [moved from target/linux/generic/patches-4.9/811-pci_disable_usb_common_quirks.patch with 73% similarity]
target/linux/generic/pending-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch [moved from target/linux/generic/patches-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch with 94% similarity]
target/linux/generic/pending-4.9/831-ledtrig_netdev.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/834-ledtrig-libata.patch [moved from target/linux/generic/patches-4.9/834-ledtrig-libata.patch with 94% similarity]
target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch [new file with mode: 0644]
target/linux/generic/pending-4.9/920-mangle_bootargs.patch [moved from target/linux/generic/patches-4.9/920-mangle_bootargs.patch with 63% similarity]

index e45b43f00a09337b90394bb26955c95be2a54b82..5c58e443df43b815a6b066455f5f5fb6e8ac30ad 100644 (file)
@@ -11,7 +11,7 @@ ifneq ($(DUMP),1)
   all: compile
 endif
 
-KERNEL_FILE_DEPENDS=$(GENERIC_PATCH_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR)
+KERNEL_FILE_DEPENDS=$(BACKPORT_PATCH_DIR) $(GENERIC_PATCH_DIR) $(GENERIC_HACK_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR)
 STAMP_PREPARED=$(LINUX_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,$(KERNEL_FILE_DEPENDS),)))
 STAMP_CONFIGURED:=$(LINUX_DIR)/.configured
 include $(INCLUDE_DIR)/download.mk
index 7f525e2e939ee4667c182c58faba365b47aa72be..61dcc7964cf4315727264d21d00bf186345dfb79 100644 (file)
@@ -97,7 +97,13 @@ define Kernel/Patch/Default
        $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches)
        $(if $(kernel_files),$(CP) $(kernel_files) $(LINUX_DIR)/)
        find $(LINUX_DIR)/ -name \*.rej -or -name \*.orig | $(XARGS) rm -f
+       if [ -d $(GENERIC_PLATFORM_DIR)/patches$(if $(wildcard $(GENERIC_PLATFORM_DIR)/patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) ]; then \
+               echo "generic patches directory is present. please move your patches to the pending directory" ; \
+               exit 1; \
+       fi
+       $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_BACKPORT_DIR),generic-backport/)
        $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_PATCH_DIR),generic/)
+       $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_HACK_DIR),generic-hack/)
        $(call PatchDir,$(PKG_BUILD_DIR),$(PATCH_DIR),platform/)
 endef
 
@@ -124,7 +130,9 @@ define Quilt/Refresh/Kernel
                echo "All kernel patches must start with either generic/ or platform/"; \
                false; \
        }
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(GENERIC_BACKPORT_DIR),generic-backport/)
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(GENERIC_PATCH_DIR),generic/)
+       $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(GENERIC_HACK_DIR),generic-hack/)
        $(call Quilt/RefreshDir,$(PKG_BUILD_DIR),$(PATCH_DIR),platform/)
 endef
 
index 646057ca06c7273fc419289c8efd10637f4e6e9d..c5f6e8bedeb3e1c150098d85a22d2b99dc53cef4 100644 (file)
@@ -104,7 +104,9 @@ ifneq ($(TARGET_BUILD)$(if $(DUMP),,1),)
 endif
 
 GENERIC_PLATFORM_DIR := $(TOPDIR)/target/linux/generic
-GENERIC_PATCH_DIR := $(GENERIC_PLATFORM_DIR)/patches$(if $(wildcard $(GENERIC_PLATFORM_DIR)/patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
+GENERIC_BACKPORT_DIR := $(GENERIC_PLATFORM_DIR)/backport$(if $(wildcard $(GENERIC_PLATFORM_DIR)/backport-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
+GENERIC_PATCH_DIR := $(GENERIC_PLATFORM_DIR)/pending$(if $(wildcard $(GENERIC_PLATFORM_DIR)/pending-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
+GENERIC_HACK_DIR := $(GENERIC_PLATFORM_DIR)/hack$(if $(wildcard $(GENERIC_PLATFORM_DIR)/hack-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER))
 GENERIC_FILES_DIR := $(foreach dir,$(wildcard $(GENERIC_PLATFORM_DIR)/files $(GENERIC_PLATFORM_DIR)/files-$(KERNEL_PATCHVER)),"$(dir)")
 
 __config_name_list = $(1)/config-$(KERNEL_PATCHVER) $(1)/config-default
similarity index 60%
rename from target/linux/generic/patches-4.9/010-Kbuild-don-t-hardcode-path-to-awk-in-scripts-ld-vers.patch
rename to target/linux/generic/backport-4.9/010-Kbuild-don-t-hardcode-path-to-awk-in-scripts-ld-vers.patch
index 5465c3bd036c535740081784cdcf00358c2154a4..966095ed600f2c0aeb0242b83e1a892dd3f4b78b 100644 (file)
@@ -1,13 +1,19 @@
+From 13b1ecc3401653a355798eb1dee10cc1608202f4 Mon Sep 17 00:00:00 2001
 From: Felix Fietkau <nbd@nbd.name>
 Date: Mon, 18 Jan 2016 12:27:49 +0100
-Subject: [PATCH] Kbuild: don't hardcode path to awk in scripts/ld-version.sh
+Subject: [PATCH 33/34] Kbuild: don't hardcode path to awk in
+ scripts/ld-version.sh
 
 On some systems /usr/bin/awk does not exist, or is broken. Find it via
 $PATH instead.
 
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
+ scripts/ld-version.sh | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
 
+diff --git a/scripts/ld-version.sh b/scripts/ld-version.sh
+index d135882e2c40..66e6e5ed1b7b 100755
 --- a/scripts/ld-version.sh
 +++ b/scripts/ld-version.sh
 @@ -1,5 +1,6 @@
@@ -23,3 +29,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        exit
        }
 +'
+-- 
+2.11.0
+
similarity index 52%
rename from target/linux/generic/patches-4.9/011-kbuild-export-SUBARCH.patch
rename to target/linux/generic/backport-4.9/011-kbuild-export-SUBARCH.patch
index 8a5af8872d0d805828115e63fce8f80df8ea8242..6cc473d70363e197b797886b4020c25bbeeb2632 100644 (file)
@@ -1,6 +1,18 @@
+From 173019b66dcc9d68ad9333aa744dad1e369b5aa8 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sun, 9 Jul 2017 00:26:53 +0200
+Subject: [PATCH 34/34] kernel: add compile fix for linux 4.9 on x86
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index dd0a67d6e392..6e37f6bb669a 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -414,8 +414,8 @@ KERNELRELEASE = $(shell cat include/conf
+@@ -420,8 +420,8 @@ KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
  KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
  
  export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
@@ -11,3 +23,6 @@
  export MAKE AWK GENKSYMS INSTALLKERNEL PERL PYTHON UTS_MACHINE
  export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
  
+-- 
+2.11.0
+
similarity index 90%
rename from target/linux/generic/patches-4.9/020-backport_netfilter_rtcache.patch
rename to target/linux/generic/backport-4.9/020-backport_netfilter_rtcache.patch
index 268708b99330fed0d769becf528193c054c3d8ad..5e4c844bf844b50ccf4a2c194555369cb6b5734c 100644 (file)
@@ -1,4 +1,7 @@
-Subject: netfilter: conntrack: cache route for forwarded connections
+From c4d66e57455f5384128753674cc0f9e02db5e1f6 Mon Sep 17 00:00:00 2001
+From: Florian Westphal <fw@strlen.de>
+Date: Sun, 9 Jul 2017 08:58:30 +0200
+Subject: [PATCH] netfilter: conntrack: cache route for forwarded connections
 
 ... to avoid per-packet FIB lookup if possible.
 
@@ -22,7 +25,18 @@ Julian Anastasov suggested to add NETDEV_UNREGISTER handler to
 avoid holding on to dsts of 'frozen' conntracks.
 
 Signed-off-by: Florian Westphal <fw@strlen.de>
+---
+ include/net/netfilter/nf_conntrack_extend.h  |   4 +
+ include/net/netfilter/nf_conntrack_rtcache.h |  34 +++
+ net/netfilter/Kconfig                        |  12 +
+ net/netfilter/Makefile                       |   3 +
+ net/netfilter/nf_conntrack_rtcache.c         | 413 +++++++++++++++++++++++++++
+ 5 files changed, 466 insertions(+)
+ create mode 100644 include/net/netfilter/nf_conntrack_rtcache.h
+ create mode 100644 net/netfilter/nf_conntrack_rtcache.c
 
+diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
+index 1c3035dda31f..0988c7dfa604 100644
 --- a/include/net/netfilter/nf_conntrack_extend.h
 +++ b/include/net/netfilter/nf_conntrack_extend.h
 @@ -27,6 +27,9 @@ enum nf_ct_ext_id {
@@ -43,6 +57,9 @@ Signed-off-by: Florian Westphal <fw@strlen.de>
  
  /* Extensions: optional stuff which isn't permanently in struct. */
  struct nf_ct_ext {
+diff --git a/include/net/netfilter/nf_conntrack_rtcache.h b/include/net/netfilter/nf_conntrack_rtcache.h
+new file mode 100644
+index 000000000000..e2fb30243354
 --- /dev/null
 +++ b/include/net/netfilter/nf_conntrack_rtcache.h
 @@ -0,0 +1,34 @@
@@ -80,6 +97,8 @@ Signed-off-by: Florian Westphal <fw@strlen.de>
 +{
 +      return rtc->cached_dst[dir].iif;
 +}
+diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
+index e8d56d9a4df2..82af5ba64088 100644
 --- a/net/netfilter/Kconfig
 +++ b/net/netfilter/Kconfig
 @@ -114,6 +114,18 @@ config NF_CONNTRACK_EVENTS
@@ -101,9 +120,11 @@ Signed-off-by: Florian Westphal <fw@strlen.de>
  config NF_CONNTRACK_TIMEOUT
        bool  'Connection tracking timeout'
        depends on NETFILTER_ADVANCED
+diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
+index c23c3c84416f..8adef51367f9 100644
 --- a/net/netfilter/Makefile
 +++ b/net/netfilter/Makefile
-@@ -16,6 +16,9 @@ obj-$(CONFIG_NETFILTER_NETLINK_LOG) += n
+@@ -16,6 +16,9 @@ obj-$(CONFIG_NETFILTER_NETLINK_LOG) += nfnetlink_log.o
  # connection tracking
  obj-$(CONFIG_NF_CONNTRACK) += nf_conntrack.o
  
@@ -113,6 +134,9 @@ Signed-off-by: Florian Westphal <fw@strlen.de>
  # SCTP protocol connection tracking
  obj-$(CONFIG_NF_CT_PROTO_DCCP) += nf_conntrack_proto_dccp.o
  obj-$(CONFIG_NF_CT_PROTO_GRE) += nf_conntrack_proto_gre.o
+diff --git a/net/netfilter/nf_conntrack_rtcache.c b/net/netfilter/nf_conntrack_rtcache.c
+new file mode 100644
+index 000000000000..fb073d01960d
 --- /dev/null
 +++ b/net/netfilter/nf_conntrack_rtcache.c
 @@ -0,0 +1,413 @@
@@ -529,3 +553,6 @@ Signed-off-by: Florian Westphal <fw@strlen.de>
 +MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("Florian Westphal <fw@strlen.de>");
 +MODULE_DESCRIPTION("Conntrack route cache extension");
+-- 
+2.11.0
+
similarity index 99%
rename from target/linux/generic/patches-4.9/021-bridge-multicast-to-unicast.patch
rename to target/linux/generic/backport-4.9/021-bridge-multicast-to-unicast.patch
index 1886b01cf1c66b0eac3cd0d4182082a6279c2f26..d3b4a62361c44303b1256ed3f6ba33e6c1c93622 100644 (file)
@@ -106,7 +106,7 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
                if (prev == port)
 --- a/net/bridge/br_mdb.c
 +++ b/net/bridge/br_mdb.c
-@@ -532,7 +532,7 @@ static int br_mdb_add_group(struct net_b
+@@ -531,7 +531,7 @@ static int br_mdb_add_group(struct net_b
                        break;
        }
  
similarity index 94%
rename from target/linux/generic/patches-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch
rename to target/linux/generic/backport-4.9/061-v4.10-0002-mtd-spi-nor-fix-spansion-quad-enable.patch
index c5e29c7c1f2d314621f9759d3e4586d847d62a17..cd0aa4660a9e7fb591bad78243d57b315720a2f1 100644 (file)
@@ -26,8 +26,8 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
 
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1263,6 +1263,13 @@ static int spansion_quad_enable(struct s
-               return ret;
+@@ -1256,6 +1256,13 @@ static int spansion_quad_enable(struct s
+               return -EINVAL;
        }
  
 +      ret = spi_nor_wait_till_ready(nor);
similarity index 98%
rename from target/linux/generic/patches-4.9/062-v4.11-0001-mtd-spi-nor-Add-support-for-S3AN-spi-nor-devices.patch
rename to target/linux/generic/backport-4.9/062-v4.11-0001-mtd-spi-nor-Add-support-for-S3AN-spi-nor-devices.patch
index 87b83cc5dd5fd39481f3bdc4c44dc5b60dbe13b8..df36f6b0366e8b48eae8972334fdd3598e348d5d 100644 (file)
@@ -206,7 +206,7 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
                if (ret < 0)
                        goto write_err;
                written = ret;
-@@ -1319,6 +1408,47 @@ static int spi_nor_check(struct spi_nor
+@@ -1312,6 +1401,47 @@ static int spi_nor_check(struct spi_nor
        return 0;
  }
  
@@ -254,7 +254,7 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
  int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
  {
        const struct flash_info *info = NULL;
-@@ -1367,6 +1497,14 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1360,6 +1490,14 @@ int spi_nor_scan(struct spi_nor *nor, co
        mutex_init(&nor->lock);
  
        /*
@@ -269,7 +269,7 @@ Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>
         * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
         * with the software protection bits set
         */
-@@ -1524,6 +1662,12 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1517,6 +1655,12 @@ int spi_nor_scan(struct spi_nor *nor, co
  
        nor->read_dummy = spi_nor_read_dummy_cycles(nor);
  
similarity index 99%
rename from target/linux/generic/patches-4.9/062-v4.11-0004-mtd-spi-nor-rename-SPINOR_OP_-macros-of-the-4-byte-a.patch
rename to target/linux/generic/backport-4.9/062-v4.11-0004-mtd-spi-nor-rename-SPINOR_OP_-macros-of-the-4-byte-a.patch
index d436789eb00a3d1e50976de69d9274eba6228369..9bdce0493ef07c7d285b65e1e121ef67c844fa0b 100644 (file)
@@ -95,7 +95,7 @@ Acked-by: Marek Vasut <marek.vasut@gmail.com>
  static struct seq_rw_config stfsm_s25fl_write4_configs[] = {
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1632,16 +1632,16 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1625,16 +1625,16 @@ int spi_nor_scan(struct spi_nor *nor, co
                        /* Dedicated 4-byte command set */
                        switch (nor->flash_read) {
                        case SPI_NOR_QUAD:
similarity index 98%
rename from target/linux/generic/patches-4.9/062-v4.11-0005-mtd-spi-nor-add-a-stateless-method-to-support-memory.patch
rename to target/linux/generic/backport-4.9/062-v4.11-0005-mtd-spi-nor-add-a-stateless-method-to-support-memory.patch
index dc05fe31bb0249fc0a8134cae93aaabac3f84d15..8e994e61be753763944050970588bdd593bd88c6 100644 (file)
@@ -116,7 +116,7 @@ Acked-by: Marek Vasut <marek.vasut@gmail.com>
  /* Enable/disable 4-byte addressing mode. */
  static inline int set_4byte(struct spi_nor *nor, const struct flash_info *info,
                            int enable)
-@@ -1628,27 +1704,10 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -1621,27 +1697,10 @@ int spi_nor_scan(struct spi_nor *nor, co
        else if (mtd->size > 0x1000000) {
                /* enable 4-byte addressing if the device exceeds 16MiB */
                nor->addr_width = 4;
diff --git a/target/linux/generic/hack-4.9/202-reduce_module_size.patch b/target/linux/generic/hack-4.9/202-reduce_module_size.patch
new file mode 100644 (file)
index 0000000..1ec8997
--- /dev/null
@@ -0,0 +1,29 @@
+From fd66884da2f96d2a7ea73f58b1b86251b959a913 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 16:56:19 +0200
+Subject: kernel: strip unnecessary symbol table information from kernel modules
+
+reduces default squashfs size on ar71xx by about 4k
+
+lede-commit: 058d331a39077f159ca8922f1f422a1346d6aa67
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a40b373eba3a..984eb5907d00 100644
+--- a/Makefile
++++ b/Makefile
+@@ -407,7 +407,7 @@ KBUILD_CFLAGS_KERNEL :=
+ KBUILD_AFLAGS   := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
+ KBUILD_AFLAGS_MODULE  := -DMODULE
+ KBUILD_CFLAGS_MODULE  := -DMODULE
+-KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
++KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s)
+ # Read KERNELRELEASE from include/config/kernel.release (if it exists)
+ KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
+-- 
+2.11.0
+
similarity index 79%
rename from target/linux/generic/patches-4.9/204-module_strip.patch
rename to target/linux/generic/hack-4.9/204-module_strip.patch
index 8860ec332ea01aa9560d773fceadfd4ace9aa69a..5827c138e58318d29681175e48a75807103b555f 100644 (file)
@@ -1,8 +1,19 @@
+From a779a482fb9b9f8fcdf8b2519c789b4b9bb5dd05 Mon Sep 17 00:00:00 2001
 From: Felix Fietkau <nbd@nbd.name>
-Subject: [PATCH] build: add a hack for removing non-essential module info
+Date: Fri, 7 Jul 2017 16:56:48 +0200
+Subject: build: add a hack for removing non-essential module info
 
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
+ include/linux/module.h      | 13 ++++++++-----
+ include/linux/moduleparam.h | 15 ++++++++++++---
+ init/Kconfig                |  7 +++++++
+ kernel/module.c             |  5 ++++-
+ scripts/mod/modpost.c       | 12 ++++++++++++
+ 5 files changed, 43 insertions(+), 9 deletions(-)
+
+diff --git a/include/linux/module.h b/include/linux/module.h
+index 0c3207d26ac0..08b58474bfd2 100644
 --- a/include/linux/module.h
 +++ b/include/linux/module.h
 @@ -159,6 +159,7 @@ extern void cleanup_module(void);
@@ -29,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /* Creates an alias so file2alias.c can find device table. */
  #define MODULE_DEVICE_TABLE(type, name)                                       \
  extern const typeof(name) __mod_##type##__##name##_device_table               \
-@@ -234,7 +235,9 @@ extern const typeof(name) __mod_##type##
+@@ -234,7 +235,9 @@ extern const typeof(name) __mod_##type##__##name##_device_table            \
   */
  
  #if defined(MODULE) || !defined(CONFIG_SYSFS)
@@ -40,7 +51,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #else
  #define MODULE_VERSION(_version)                                      \
        static struct module_version_attribute ___modver_attr = {       \
-@@ -256,7 +259,7 @@ extern const typeof(name) __mod_##type##
+@@ -256,7 +259,7 @@ extern const typeof(name) __mod_##type##__##name##_device_table            \
  /* Optional firmware file (or files) needed by the module
   * format is simply firmware file name.  Multiple firmware
   * files require multiple MODULE_FIRMWARE() specifiers */
@@ -49,6 +60,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  struct notifier_block;
  
+diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
+index 52666d90ca94..f0db3592906a 100644
 --- a/include/linux/moduleparam.h
 +++ b/include/linux/moduleparam.h
 @@ -16,6 +16,16 @@
@@ -68,7 +81,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #ifdef MODULE
  #define __MODULE_INFO(tag, name, info)                                          \
  static const char __UNIQUE_ID(name)[]                                   \
-@@ -23,8 +33,7 @@ static const char __UNIQUE_ID(name)[]
+@@ -23,8 +33,7 @@ static const char __UNIQUE_ID(name)[]                                          \
    = __stringify(tag) "=" info
  #else  /* !MODULE */
  /* This struct is here for syntactic coherency, it is not used */
@@ -78,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  #endif
  #define __MODULE_PARM_TYPE(name, _type)                                         \
    __MODULE_INFO(parmtype, name##type, #name ":" _type)
-@@ -32,7 +41,7 @@ static const char __UNIQUE_ID(name)[]
+@@ -32,7 +41,7 @@ static const char __UNIQUE_ID(name)[]                                          \
  /* One for each parameter, describing how to use it.  Some files do
     multiple of these per line, so can't just use MODULE_INFO. */
  #define MODULE_PARM_DESC(_parm, desc) \
@@ -87,9 +100,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  struct kernel_param;
  
+diff --git a/init/Kconfig b/init/Kconfig
+index 34407f15e6d3..9f2c0cabbc97 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -2106,6 +2106,13 @@ config TRIM_UNUSED_KSYMS
+@@ -2095,6 +2095,13 @@ config TRIM_UNUSED_KSYMS
  
          If unsure, or if you need to build out-of-tree modules, say N.
  
@@ -103,9 +118,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  endif # MODULES
  
  config MODULES_TREE_LOOKUP
+diff --git a/kernel/module.c b/kernel/module.c
+index 0e54d5bf0097..80b5ac4181c6 100644
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -2945,9 +2945,11 @@ static struct module *setup_load_info(st
+@@ -2945,9 +2945,11 @@ static struct module *setup_load_info(struct load_info *info, int flags)
  
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
@@ -118,7 +135,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (flags & MODULE_INIT_IGNORE_VERMAGIC)
                modmagic = NULL;
  
-@@ -2968,6 +2970,7 @@ static int check_modinfo(struct module *
+@@ -2968,6 +2970,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
                                mod->name);
                add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
        }
@@ -126,6 +143,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (get_modinfo(info, "staging")) {
                add_taint_module(mod, TAINT_CRAP, LOCKDEP_STILL_OK);
+diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
+index bd8349759095..80f214adbe44 100644
 --- a/scripts/mod/modpost.c
 +++ b/scripts/mod/modpost.c
 @@ -1964,7 +1964,9 @@ static void read_symbols(char *modname)
@@ -138,7 +157,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        }
        if (!is_vmlinux(modname) ||
             (is_vmlinux(modname) && vmlinux_section_warnings))
-@@ -2108,7 +2110,9 @@ static void add_header(struct buffer *b,
+@@ -2108,7 +2110,9 @@ static void add_header(struct buffer *b, struct module *mod)
        buf_printf(b, "#include <linux/vermagic.h>\n");
        buf_printf(b, "#include <linux/compiler.h>\n");
        buf_printf(b, "\n");
@@ -148,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        buf_printf(b, "\n");
        buf_printf(b, "__visible struct module __this_module\n");
        buf_printf(b, "__attribute__((section(\".gnu.linkonce.this_module\"))) = {\n");
-@@ -2125,16 +2129,20 @@ static void add_header(struct buffer *b,
+@@ -2125,16 +2129,20 @@ static void add_header(struct buffer *b, struct module *mod)
  
  static void add_intree_flag(struct buffer *b, int is_intree)
  {
@@ -169,7 +188,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /* In kernel, this size is defined in linux/module.h;
-@@ -2238,11 +2246,13 @@ static void add_depends(struct buffer *b
+@@ -2238,11 +2246,13 @@ static void add_depends(struct buffer *b, struct module *mod,
  
  static void add_srcversion(struct buffer *b, struct module *mod)
  {
@@ -193,3 +212,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                add_srcversion(&buf, mod);
  
                sprintf(fname, "%s.mod.c", mod->name);
+-- 
+2.11.0
+
similarity index 58%
rename from target/linux/generic/patches-4.9/207-disable-modorder.patch
rename to target/linux/generic/hack-4.9/207-disable-modorder.patch
index ad24a8026ee067027d6bb2ce15a7c192f966d412..d8ab95532dc98c574a3f95a48d2b30519ca52002 100644 (file)
@@ -1,11 +1,23 @@
-Disable modules.order to improve build performance.
-This file is not needed for anything in LEDE
+From c9ef4ab0f54356ee9f91d9676ea0ec123840ddc7 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 16:57:33 +0200
+Subject: kernel: do not build modules.order
 
+It is not needed for anything on the system and skipping this saves some
+build time, especially in cases where there is nothing to do.
+
+lede-commit: afc1675833a7bf5df094f59f7250369520646d04
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
+ Makefile               | 2 --
+ scripts/Makefile.build | 2 +-
+ 2 files changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 984eb5907d00..cce1c68e48ae 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -1196,7 +1196,6 @@ all: modules
+@@ -1193,7 +1193,6 @@ all: modules
  
  PHONY += modules
  modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
@@ -13,7 +25,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        @$(kecho) '  Building modules, stage 2.';
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.fwinst obj=firmware __fw_modbuild
-@@ -1226,7 +1225,6 @@ _modinst_:
+@@ -1223,7 +1222,6 @@ _modinst_:
                rm -f $(MODLIB)/build ; \
                ln -s $(CURDIR) $(MODLIB)/build ; \
        fi
@@ -21,6 +33,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        @cp -f $(objtree)/modules.builtin $(MODLIB)/
        $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
  
+diff --git a/scripts/Makefile.build b/scripts/Makefile.build
+index 7675d11ee65e..108d73273788 100644
 --- a/scripts/Makefile.build
 +++ b/scripts/Makefile.build
 @@ -93,7 +93,7 @@ modorder-target := $(obj)/modules.order
@@ -32,3 +46,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
         $(subdir-ym) $(always)
        @:
  
+-- 
+2.11.0
+
similarity index 99%
rename from target/linux/generic/patches-4.9/210-darwin_scripts_include.patch
rename to target/linux/generic/hack-4.9/210-darwin_scripts_include.patch
index 7e0fb8067a4fcbbaa247c892e68a39533b4414fb..ac6e12f1a869f852bf6b6163e7613b7ba6be26e8 100644 (file)
@@ -1,6 +1,23 @@
+From db7c30dcd9a0391bf13b62c9f91e144d762ef43a Mon Sep 17 00:00:00 2001
+From: Florian Fainelli <f.fainelli@gmail.com>
+Date: Fri, 7 Jul 2017 17:00:49 +0200
+Subject: Add an OSX specific patch to make the kernel be compiled
+
+lede-commit: 3fc2a24f0422b2f55f9ed43f116db3111f700526
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ scripts/kconfig/Makefile   |    3 +
+ scripts/mod/elf.h          | 3007 ++++++++++++++++++++++++++++++++++++++++++++
+ scripts/mod/mk_elfconfig.c |    4 +
+ scripts/mod/modpost.h      |    4 +
+ 4 files changed, 3018 insertions(+)
+ create mode 100644 scripts/mod/elf.h
+
+diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
+index 90a091b6ae4d..f9620652e70a 100644
 --- a/scripts/kconfig/Makefile
 +++ b/scripts/kconfig/Makefile
-@@ -163,6 +163,9 @@ check-lxdialog  := $(srctree)/$(src)/lxd
+@@ -163,6 +163,9 @@ check-lxdialog  := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
  # we really need to do so. (Do not call gcc as part of make mrproper)
  HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
                      -DLOCALE
  
  # ===========================================================================
  # Shared Makefile for the various kconfig executables:
---- a/scripts/mod/mk_elfconfig.c
-+++ b/scripts/mod/mk_elfconfig.c
-@@ -1,7 +1,11 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#ifndef __APPLE__
- #include <elf.h>
-+#else
-+#include "elf.h"
-+#endif
- int
- main(int argc, char **argv)
---- a/scripts/mod/modpost.h
-+++ b/scripts/mod/modpost.h
-@@ -7,7 +7,11 @@
- #include <sys/mman.h>
- #include <fcntl.h>
- #include <unistd.h>
-+#if !(defined(__APPLE__) || defined(__CYGWIN__))
- #include <elf.h>
-+#else
-+#include "elf.h"
-+#endif
- #include "elfconfig.h"
+diff --git a/scripts/mod/elf.h b/scripts/mod/elf.h
+new file mode 100644
+index 000000000000..036a176345eb
 --- /dev/null
 +++ b/scripts/mod/elf.h
 @@ -0,0 +1,3007 @@
 +#define R_TILEGX_NUM          130
 +
 +#endif        /* elf.h */
+diff --git a/scripts/mod/mk_elfconfig.c b/scripts/mod/mk_elfconfig.c
+index a4fd71d71d65..5ec3740ebb3c 100644
+--- a/scripts/mod/mk_elfconfig.c
++++ b/scripts/mod/mk_elfconfig.c
+@@ -1,7 +1,11 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
++#ifndef __APPLE__
+ #include <elf.h>
++#else
++#include "elf.h"
++#endif
+ int
+ main(int argc, char **argv)
+diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
+index 6a5e1515123b..237c50d2ec6c 100644
+--- a/scripts/mod/modpost.h
++++ b/scripts/mod/modpost.h
+@@ -7,7 +7,11 @@
+ #include <sys/mman.h>
+ #include <fcntl.h>
+ #include <unistd.h>
++#if !(defined(__APPLE__) || defined(__CYGWIN__))
+ #include <elf.h>
++#else
++#include "elf.h"
++#endif
+ #include "elfconfig.h"
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/211-host_tools_portability.patch b/target/linux/generic/hack-4.9/211-host_tools_portability.patch
new file mode 100644 (file)
index 0000000..bb71a29
--- /dev/null
@@ -0,0 +1,49 @@
+From 7f698012384ccb1ed10cc758acfd085096fdb307 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:02:03 +0200
+Subject: kernel: fix linux 4.9 host tools portability issues
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ tools/build/Build.include       | 2 +-
+ tools/perf/pmu-events/jevents.c | 1 +
+ tools/perf/pmu-events/json.c    | 1 -
+ 3 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tools/build/Build.include b/tools/build/Build.include
+index 1dcb95e76f70..9d6f97a7c1aa 100644
+--- a/tools/build/Build.include
++++ b/tools/build/Build.include
+@@ -95,4 +95,4 @@ cxx_flags = -Wp,-MD,$(depfile),-MT,$@ $(CXXFLAGS) -D"BUILD_STR(s)=\#s" $(CXXFLAG
+ ###
+ ## HOSTCC C flags
+-host_c_flags = -Wp,-MD,$(depfile),-MT,$@ $(CHOSTFLAGS) -D"BUILD_STR(s)=\#s" $(CHOSTFLAGS_$(basetarget).o) $(CHOSTFLAGS_$(obj))
++host_c_flags = -MD -MF $(depfile) -MT $@ $(CHOSTFLAGS) -D"BUILD_STR(s)=\#s" $(CHOSTFLAGS_$(basetarget).o) $(CHOSTFLAGS_$(obj))
+diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
+index 41611d7f9873..51333bee190c 100644
+--- a/tools/perf/pmu-events/jevents.c
++++ b/tools/perf/pmu-events/jevents.c
+@@ -35,6 +35,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
++#include <strings.h>
+ #include <ctype.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+diff --git a/tools/perf/pmu-events/json.c b/tools/perf/pmu-events/json.c
+index f67bbb0aa36e..a72c70a97fab 100644
+--- a/tools/perf/pmu-events/json.c
++++ b/tools/perf/pmu-events/json.c
+@@ -38,7 +38,6 @@
+ #include <unistd.h>
+ #include "jsmn.h"
+ #include "json.h"
+-#include <linux/kernel.h>
+ static char *mapfile(const char *fn, size_t *size)
+-- 
+2.11.0
+
similarity index 52%
rename from target/linux/generic/patches-4.9/212-byteshift_portability.patch
rename to target/linux/generic/hack-4.9/212-byteshift_portability.patch
index 0f23ba9be98b8df12a6bb8932b46f1fd15f4a639..ccecd5745a970cc71463d98e247e59c370fa3aeb 100644 (file)
@@ -1,3 +1,19 @@
+From 48232d3d931c95953ce2ddfe7da7bb164aef6a73 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:03:16 +0200
+Subject: linux-3.6: fix portability of some includes files in tools/ used on the host
+
+lede-commit: 6040b1d29ab1f047c5e49b748abcb6a3196add28
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ tools/include/tools/be_byteshift.h |  4 ++++
+ tools/include/tools/le_byteshift.h |  4 ++++
+ tools/include/tools/linux_types.h  | 22 ++++++++++++++++++++++
+ 3 files changed, 30 insertions(+)
+ create mode 100644 tools/include/tools/linux_types.h
+
+diff --git a/tools/include/tools/be_byteshift.h b/tools/include/tools/be_byteshift.h
+index 84c17d836578..ed9932e97bd4 100644
 --- a/tools/include/tools/be_byteshift.h
 +++ b/tools/include/tools/be_byteshift.h
 @@ -1,6 +1,10 @@
@@ -11,6 +27,8 @@
  #include <stdint.h>
  
  static inline uint16_t __get_unaligned_be16(const uint8_t *p)
+diff --git a/tools/include/tools/le_byteshift.h b/tools/include/tools/le_byteshift.h
+index 8fe9f2488ec7..2e387b5226d9 100644
 --- a/tools/include/tools/le_byteshift.h
 +++ b/tools/include/tools/le_byteshift.h
 @@ -1,6 +1,10 @@
@@ -24,6 +42,9 @@
  #include <stdint.h>
  
  static inline uint16_t __get_unaligned_le16(const uint8_t *p)
+diff --git a/tools/include/tools/linux_types.h b/tools/include/tools/linux_types.h
+new file mode 100644
+index 000000000000..f07ef8293ebc
 --- /dev/null
 +++ b/tools/include/tools/linux_types.h
 @@ -0,0 +1,22 @@
@@ -49,3 +70,6 @@
 +typedef uint64_t __le64;
 +
 +#endif
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/214-spidev_h_portability.patch b/target/linux/generic/hack-4.9/214-spidev_h_portability.patch
new file mode 100644 (file)
index 0000000..e1467b9
--- /dev/null
@@ -0,0 +1,29 @@
+From be9be95ff10e16a5b4ad36f903978d0cc5747024 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:04:08 +0200
+Subject: kernel: fix linux/spi/spidev.h portability issues with musl
+
+Felix will try to get this define included into musl
+
+lede-commit: 795e7cf60de19e7a076a46874fab7bb88b43bbff
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/uapi/linux/spi/spidev.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/uapi/linux/spi/spidev.h b/include/uapi/linux/spi/spidev.h
+index dd5f21e75805..e5e8fea8b068 100644
+--- a/include/uapi/linux/spi/spidev.h
++++ b/include/uapi/linux/spi/spidev.h
+@@ -111,7 +111,7 @@ struct spi_ioc_transfer {
+ /* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */
+ #define SPI_MSGSIZE(N) \
+-      ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \
++      ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << 13)) \
+               ? ((N)*(sizeof (struct spi_ioc_transfer))) : 0)
+ #define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)])
+-- 
+2.11.0
+
similarity index 89%
rename from target/linux/generic/patches-4.9/220-gc_sections.patch
rename to target/linux/generic/hack-4.9/220-gc_sections.patch
index 96622f5ef4340f6db09fad8c498bfbf80abc9875..d6f7da0e72e559f4d42874a6e722b46108d19e84 100644 (file)
@@ -1,6 +1,7 @@
+From e3d8676f5722b7622685581e06e8f53e6138e3ab Mon Sep 17 00:00:00 2001
 From: Felix Fietkau <nbd@nbd.name>
-
-use -ffunction-sections, -fdata-sections and --gc-sections
+Date: Sat, 15 Jul 2017 23:42:36 +0200
+Subject: use -ffunction-sections, -fdata-sections and --gc-sections
 
 In combination with kernel symbol export stripping this significantly reduces
 the kernel image size. Used on both ARM and MIPS architectures.
@@ -9,7 +10,187 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 Signed-off-by: Jonas Gorski <jogo@openwrt.org>
 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 ---
+ Makefile                          | 10 +++----
+ arch/arm/Kconfig                  |  1 +
+ arch/arm/boot/compressed/Makefile |  1 +
+ arch/arm/kernel/vmlinux.lds.S     | 26 ++++++++--------
+ arch/mips/Kconfig                 |  1 +
+ arch/mips/kernel/vmlinux.lds.S    |  4 +--
+ include/asm-generic/vmlinux.lds.h | 63 ++++++++++++++++++++-------------------
+ 7 files changed, 55 insertions(+), 51 deletions(-)
 
+diff --git a/Makefile b/Makefile
+index 42435dfa5fc3..66cdf6a59b53 100644
+--- a/Makefile
++++ b/Makefile
+@@ -410,6 +410,11 @@ KBUILD_AFLAGS_MODULE  := -DMODULE
+ KBUILD_CFLAGS_MODULE  := -DMODULE
+ KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s)
++ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
++KBUILD_CFLAGS_KERNEL  += $(call cc-option,-ffunction-sections,)
++KBUILD_CFLAGS_KERNEL  += $(call cc-option,-fdata-sections,)
++endif
++
+ # Read KERNELRELEASE from include/config/kernel.release (if it exists)
+ KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
+ KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
+@@ -631,11 +636,6 @@ include arch/$(SRCARCH)/Makefile
+ KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
+ KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
+-ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
+-KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
+-KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
+-endif
+-
+ ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+ KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+ else
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index b5d529fdffab..7f69418bf02c 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -81,6 +81,7 @@ config ARM
+       select HAVE_UID16
+       select HAVE_VIRT_CPU_ACCOUNTING_GEN
+       select IRQ_FORCED_THREADING
++      select LD_DEAD_CODE_DATA_ELIMINATION
+       select MODULES_USE_ELF_REL
+       select NO_BOOTMEM
+       select OF_EARLY_FLATTREE if OF
+diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
+index d50430c40045..6bdeb009a46d 100644
+--- a/arch/arm/boot/compressed/Makefile
++++ b/arch/arm/boot/compressed/Makefile
+@@ -102,6 +102,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
+ ORIG_CFLAGS := $(KBUILD_CFLAGS)
+ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
+ endif
++KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
+ # -fstack-protector-strong triggers protection checks in this code,
+ # but it is being used too early to link to meaningful stack_chk logic.
+diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
+index f7f55df0bf7b..e9d70c92d99f 100644
+--- a/arch/arm/kernel/vmlinux.lds.S
++++ b/arch/arm/kernel/vmlinux.lds.S
+@@ -17,7 +17,7 @@
+ #define PROC_INFO                                                     \
+       . = ALIGN(4);                                                   \
+       VMLINUX_SYMBOL(__proc_info_begin) = .;                          \
+-      *(.proc.info.init)                                              \
++      KEEP(*(.proc.info.init))                                        \
+       VMLINUX_SYMBOL(__proc_info_end) = .;
+ #define HYPERVISOR_TEXT                                                       \
+@@ -28,11 +28,11 @@
+ #define IDMAP_TEXT                                                    \
+       ALIGN_FUNCTION();                                               \
+       VMLINUX_SYMBOL(__idmap_text_start) = .;                         \
+-      *(.idmap.text)                                                  \
++      KEEP(*(.idmap.text))                                            \
+       VMLINUX_SYMBOL(__idmap_text_end) = .;                           \
+       . = ALIGN(PAGE_SIZE);                                           \
+       VMLINUX_SYMBOL(__hyp_idmap_text_start) = .;                     \
+-      *(.hyp.idmap.text)                                              \
++      KEEP(*(.hyp.idmap.text))                                        \
+       VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
+ #ifdef CONFIG_HOTPLUG_CPU
+@@ -105,7 +105,7 @@ SECTIONS
+               _stext = .;             /* Text and read-only data      */
+                       IDMAP_TEXT
+                       __exception_text_start = .;
+-                      *(.exception.text)
++                      KEEP(*(.exception.text))
+                       __exception_text_end = .;
+                       IRQENTRY_TEXT
+                       SOFTIRQENTRY_TEXT
+@@ -134,7 +134,7 @@ SECTIONS
+       __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
+               __start___ex_table = .;
+ #ifdef CONFIG_MMU
+-              *(__ex_table)
++              KEEP(*(__ex_table))
+ #endif
+               __stop___ex_table = .;
+       }
+@@ -146,12 +146,12 @@ SECTIONS
+       . = ALIGN(8);
+       .ARM.unwind_idx : {
+               __start_unwind_idx = .;
+-              *(.ARM.exidx*)
++              KEEP(*(.ARM.exidx*))
+               __stop_unwind_idx = .;
+       }
+       .ARM.unwind_tab : {
+               __start_unwind_tab = .;
+-              *(.ARM.extab*)
++              KEEP(*(.ARM.extab*))
+               __stop_unwind_tab = .;
+       }
+ #endif
+@@ -171,14 +171,14 @@ SECTIONS
+        */
+       __vectors_start = .;
+       .vectors 0xffff0000 : AT(__vectors_start) {
+-              *(.vectors)
++              KEEP(*(.vectors))
+       }
+       . = __vectors_start + SIZEOF(.vectors);
+       __vectors_end = .;
+       __stubs_start = .;
+       .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) {
+-              *(.stubs)
++              KEEP(*(.stubs))
+       }
+       . = __stubs_start + SIZEOF(.stubs);
+       __stubs_end = .;
+@@ -194,24 +194,24 @@ SECTIONS
+       }
+       .init.arch.info : {
+               __arch_info_begin = .;
+-              *(.arch.info.init)
++              KEEP(*(.arch.info.init))
+               __arch_info_end = .;
+       }
+       .init.tagtable : {
+               __tagtable_begin = .;
+-              *(.taglist.init)
++              KEEP(*(.taglist.init))
+               __tagtable_end = .;
+       }
+ #ifdef CONFIG_SMP_ON_UP
+       .init.smpalt : {
+               __smpalt_begin = .;
+-              *(.alt.smp.init)
++              KEEP(*(.alt.smp.init))
+               __smpalt_end = .;
+       }
+ #endif
+       .init.pv_table : {
+               __pv_table_begin = .;
+-              *(.pv_table)
++              KEEP(*(.pv_table))
+               __pv_table_end = .;
+       }
+       .init.data : {
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index 3a97487b8b81..05e7bfeab2f9 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -55,6 +55,7 @@ config MIPS
+       select CLONE_BACKWARDS
+       select HAVE_DEBUG_STACKOVERFLOW
+       select HAVE_CC_STACKPROTECTOR
++      select LD_DEAD_CODE_DATA_ELIMINATION
+       select CPU_PM if CPU_IDLE
+       select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
+       select ARCH_BINFMT_ELF_STATE
+diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
+index d5de67591735..de5f682b5597 100644
 --- a/arch/mips/kernel/vmlinux.lds.S
 +++ b/arch/mips/kernel/vmlinux.lds.S
 @@ -71,7 +71,7 @@ SECTIONS
@@ -30,6 +211,8 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                __mips_machines_end = .;
        }
  
+diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
+index 31e1d639abed..83784d9492b1 100644
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
 @@ -114,7 +114,7 @@
@@ -250,163 +433,6 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                VMLINUX_SYMBOL(__setup_end) = .;
  
  #define INIT_CALLS_LEVEL(level)                                               \
---- a/arch/arm/kernel/vmlinux.lds.S
-+++ b/arch/arm/kernel/vmlinux.lds.S
-@@ -17,7 +17,7 @@
- #define PROC_INFO                                                     \
-       . = ALIGN(4);                                                   \
-       VMLINUX_SYMBOL(__proc_info_begin) = .;                          \
--      *(.proc.info.init)                                              \
-+      KEEP(*(.proc.info.init))                                        \
-       VMLINUX_SYMBOL(__proc_info_end) = .;
- #define HYPERVISOR_TEXT                                                       \
-@@ -28,11 +28,11 @@
- #define IDMAP_TEXT                                                    \
-       ALIGN_FUNCTION();                                               \
-       VMLINUX_SYMBOL(__idmap_text_start) = .;                         \
--      *(.idmap.text)                                                  \
-+      KEEP(*(.idmap.text))                                            \
-       VMLINUX_SYMBOL(__idmap_text_end) = .;                           \
-       . = ALIGN(PAGE_SIZE);                                           \
-       VMLINUX_SYMBOL(__hyp_idmap_text_start) = .;                     \
--      *(.hyp.idmap.text)                                              \
-+      KEEP(*(.hyp.idmap.text))                                        \
-       VMLINUX_SYMBOL(__hyp_idmap_text_end) = .;
- #ifdef CONFIG_HOTPLUG_CPU
-@@ -105,7 +105,7 @@ SECTIONS
-               _stext = .;             /* Text and read-only data      */
-                       IDMAP_TEXT
-                       __exception_text_start = .;
--                      *(.exception.text)
-+                      KEEP(*(.exception.text))
-                       __exception_text_end = .;
-                       IRQENTRY_TEXT
-                       SOFTIRQENTRY_TEXT
-@@ -134,7 +134,7 @@ SECTIONS
-       __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
-               __start___ex_table = .;
- #ifdef CONFIG_MMU
--              *(__ex_table)
-+              KEEP(*(__ex_table))
- #endif
-               __stop___ex_table = .;
-       }
-@@ -146,12 +146,12 @@ SECTIONS
-       . = ALIGN(8);
-       .ARM.unwind_idx : {
-               __start_unwind_idx = .;
--              *(.ARM.exidx*)
-+              KEEP(*(.ARM.exidx*))
-               __stop_unwind_idx = .;
-       }
-       .ARM.unwind_tab : {
-               __start_unwind_tab = .;
--              *(.ARM.extab*)
-+              KEEP(*(.ARM.extab*))
-               __stop_unwind_tab = .;
-       }
- #endif
-@@ -171,14 +171,14 @@ SECTIONS
-        */
-       __vectors_start = .;
-       .vectors 0xffff0000 : AT(__vectors_start) {
--              *(.vectors)
-+              KEEP(*(.vectors))
-       }
-       . = __vectors_start + SIZEOF(.vectors);
-       __vectors_end = .;
-       __stubs_start = .;
-       .stubs ADDR(.vectors) + 0x1000 : AT(__stubs_start) {
--              *(.stubs)
-+              KEEP(*(.stubs))
-       }
-       . = __stubs_start + SIZEOF(.stubs);
-       __stubs_end = .;
-@@ -194,24 +194,24 @@ SECTIONS
-       }
-       .init.arch.info : {
-               __arch_info_begin = .;
--              *(.arch.info.init)
-+              KEEP(*(.arch.info.init))
-               __arch_info_end = .;
-       }
-       .init.tagtable : {
-               __tagtable_begin = .;
--              *(.taglist.init)
-+              KEEP(*(.taglist.init))
-               __tagtable_end = .;
-       }
- #ifdef CONFIG_SMP_ON_UP
-       .init.smpalt : {
-               __smpalt_begin = .;
--              *(.alt.smp.init)
-+              KEEP(*(.alt.smp.init))
-               __smpalt_end = .;
-       }
- #endif
-       .init.pv_table : {
-               __pv_table_begin = .;
--              *(.pv_table)
-+              KEEP(*(.pv_table))
-               __pv_table_end = .;
-       }
-       .init.data : {
---- a/arch/arm/boot/compressed/Makefile
-+++ b/arch/arm/boot/compressed/Makefile
-@@ -102,6 +102,7 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
- ORIG_CFLAGS := $(KBUILD_CFLAGS)
- KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
- endif
-+KBUILD_CFLAGS_KERNEL := $(patsubst -f%-sections,,$(KBUILD_CFLAGS_KERNEL))
- # -fstack-protector-strong triggers protection checks in this code,
- # but it is being used too early to link to meaningful stack_chk logic.
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -81,6 +81,7 @@ config ARM
-       select HAVE_UID16
-       select HAVE_VIRT_CPU_ACCOUNTING_GEN
-       select IRQ_FORCED_THREADING
-+      select LD_DEAD_CODE_DATA_ELIMINATION
-       select MODULES_USE_ELF_REL
-       select NO_BOOTMEM
-       select OF_EARLY_FLATTREE if OF
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -55,6 +55,7 @@ config MIPS
-       select CLONE_BACKWARDS
-       select HAVE_DEBUG_STACKOVERFLOW
-       select HAVE_CC_STACKPROTECTOR
-+      select LD_DEAD_CODE_DATA_ELIMINATION
-       select CPU_PM if CPU_IDLE
-       select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
-       select ARCH_BINFMT_ELF_STATE
---- a/Makefile
-+++ b/Makefile
-@@ -409,6 +409,11 @@ KBUILD_AFLAGS_MODULE  := -DMODULE
- KBUILD_CFLAGS_MODULE  := -DMODULE
- KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s)
-+ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
-+KBUILD_CFLAGS_KERNEL  += $(call cc-option,-ffunction-sections,)
-+KBUILD_CFLAGS_KERNEL  += $(call cc-option,-fdata-sections,)
-+endif
-+
- # Read KERNELRELEASE from include/config/kernel.release (if it exists)
- KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
- KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
-@@ -633,11 +638,6 @@ KBUILD_CFLAGS     += $(call cc-disable-warni
- KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
- KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context)
--ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
--KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
--KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
--endif
--
- ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
- else
+-- 
+2.11.0
+
similarity index 73%
rename from target/linux/generic/patches-4.9/221-module_exports.patch
rename to target/linux/generic/hack-4.9/221-module_exports.patch
index 85d09741e1097af9af0a737a2be9a90b47e14cb4..301eb3b2b498b46da15e5c4322252ad72f6a48c9 100644 (file)
@@ -1,3 +1,18 @@
+From b14784e7883390c20ed3ff904892255404a5914b Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:05:53 +0200
+Subject: add an optional config option for stripping all unnecessary symbol exports from the kernel image
+
+lede-commit: bb5a40c64b7c4f4848509fa0a6625055fc9e66cc
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/asm-generic/vmlinux.lds.h | 18 +++++++++++++++---
+ include/linux/export.h            |  9 ++++++++-
+ scripts/Makefile.build            |  2 +-
+ 3 files changed, 24 insertions(+), 5 deletions(-)
+
+diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
+index 83784d9492b1..189b5c7a0758 100644
 --- a/include/asm-generic/vmlinux.lds.h
 +++ b/include/asm-generic/vmlinux.lds.h
 @@ -54,6 +54,16 @@
        *(.discard)                                                     \
        *(.discard.*)                                                   \
        }
---- a/scripts/Makefile.build
-+++ b/scripts/Makefile.build
-@@ -398,7 +398,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(
- # Linker scripts preprocessor (.lds.S -> .lds)
- # ---------------------------------------------------------------------------
- quiet_cmd_cpp_lds_S = LDS     $@
--      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \
-+      cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -C -U$(ARCH) \
-                            -D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $<
- $(obj)/%.lds: $(src)/%.lds.S FORCE
+diff --git a/include/linux/export.h b/include/linux/export.h
+index 2a0f61fbc731..889331d9643d 100644
 --- a/include/linux/export.h
 +++ b/include/linux/export.h
 @@ -53,12 +53,19 @@ extern struct module __this_module;
        = VMLINUX_SYMBOL_STR(sym);                                      \
        static const struct kernel_symbol __ksymtab_##sym               \
        __used                                                          \
+diff --git a/scripts/Makefile.build b/scripts/Makefile.build
+index 108d73273788..76a0e450123c 100644
+--- a/scripts/Makefile.build
++++ b/scripts/Makefile.build
+@@ -398,7 +398,7 @@ targets += $(extra-y) $(MAKECMDGOALS) $(always)
+ # Linker scripts preprocessor (.lds.S -> .lds)
+ # ---------------------------------------------------------------------------
+ quiet_cmd_cpp_lds_S = LDS     $@
+-      cmd_cpp_lds_S = $(CPP) $(cpp_flags) -P -C -U$(ARCH) \
++      cmd_cpp_lds_S = $(CPP) $(EXTRA_LDSFLAGS) $(cpp_flags) -P -C -U$(ARCH) \
+                            -D__ASSEMBLY__ -DLINKER_SCRIPT -o $@ $<
+ $(obj)/%.lds: $(src)/%.lds.S FORCE
+-- 
+2.11.0
+
similarity index 68%
rename from target/linux/generic/patches-4.9/230-openwrt_lzma_options.patch
rename to target/linux/generic/hack-4.9/230-openwrt_lzma_options.patch
index 3d495a13b6bb07dd896d180b96a66d672b5c81ac..d20f3aa6930464054c550fbca19fb3b488e9a667 100644 (file)
@@ -1,6 +1,33 @@
+From b3d00b452467f621317953d9e4c6f9ae8dcfd271 Mon Sep 17 00:00:00 2001
+From: Imre Kaloz <kaloz@openwrt.org>
+Date: Fri, 7 Jul 2017 17:06:55 +0200
+Subject: use the openwrt lzma options for now
+
+lede-commit: 548de949f392049420a6a1feeef118b30ab8ea8c
+Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
+---
+ lib/decompress.c              |  1 +
+ scripts/Makefile.lib          |  2 +-
+ scripts/gen_initramfs_list.sh | 10 +++++-----
+ 3 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/lib/decompress.c b/lib/decompress.c
+index 62696dff5730..d91a26e1a1b2 100644
+--- a/lib/decompress.c
++++ b/lib/decompress.c
+@@ -48,6 +48,7 @@ static const struct compress_format compressed_formats[] __initconst = {
+       { {0x1f, 0x9e}, "gzip", gunzip },
+       { {0x42, 0x5a}, "bzip2", bunzip2 },
+       { {0x5d, 0x00}, "lzma", unlzma },
++      { {0x6d, 0x00}, "lzma-openwrt", unlzma },
+       { {0xfd, 0x37}, "xz", unxz },
+       { {0x89, 0x4c}, "lzo", unlzo },
+       { {0x02, 0x21}, "lz4", unlz4 },
+diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
+index 0a07f9014944..5324c072c598 100644
 --- a/scripts/Makefile.lib
 +++ b/scripts/Makefile.lib
-@@ -344,7 +344,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^)
+@@ -344,7 +344,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^) | \
  
  quiet_cmd_lzma = LZMA    $@
  cmd_lzma = (cat $(filter-out FORCE,$^) | \
@@ -9,6 +36,8 @@
        (rm -f $@ ; false)
  
  quiet_cmd_lzo = LZO     $@
+diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh
+index 0055b07b03b6..7710113e6a72 100755
 --- a/scripts/gen_initramfs_list.sh
 +++ b/scripts/gen_initramfs_list.sh
 @@ -229,7 +229,7 @@ cpio_list=
                || (rm -f ${output_file} ; false)
        fi
        [ -z ${cpio_file} ] && rm ${cpio_tfile}
---- a/lib/decompress.c
-+++ b/lib/decompress.c
-@@ -48,6 +48,7 @@ static const struct compress_format comp
-       { {0x1f, 0x9e}, "gzip", gunzip },
-       { {0x42, 0x5a}, "bzip2", bunzip2 },
-       { {0x5d, 0x00}, "lzma", unlzma },
-+      { {0x6d, 0x00}, "lzma-openwrt", unlzma },
-       { {0xfd, 0x37}, "xz", unxz },
-       { {0x89, 0x4c}, "lzo", unlzo },
-       { {0x02, 0x21}, "lz4", unlz4 },
+-- 
+2.11.0
+
similarity index 61%
rename from target/linux/generic/patches-4.9/250-netfilter_depends.patch
rename to target/linux/generic/hack-4.9/250-netfilter_depends.patch
index 9557e90d5ae5219a6e10d65ba98615b723def267..108cf2ca8686c2d5dc9f90bf04170f5848243f74 100644 (file)
@@ -1,3 +1,14 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: hack: net: remove bogus netfilter dependencies
+
+lede-commit: 589d2a377dee27d206fc3725325309cf649e4df6
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/netfilter/Kconfig | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
+index 82af5ba64088..65fe84db77ec 100644
 --- a/net/netfilter/Kconfig
 +++ b/net/netfilter/Kconfig
 @@ -218,7 +218,6 @@ config NF_CONNTRACK_FTP
@@ -16,3 +27,6 @@
        default m if NETFILTER_ADVANCED=n
        ---help---
          This option adds a `TCPMSS' target, which allows you to alter the
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/251-sound_kconfig.patch b/target/linux/generic/hack-4.9/251-sound_kconfig.patch
new file mode 100644 (file)
index 0000000..010af75
--- /dev/null
@@ -0,0 +1,212 @@
+From da3c50704f14132f4adf80d48e9a4cd5d46e54c9 Mon Sep 17 00:00:00 2001
+From: John Crispin <john@phrozen.org>
+Date: Fri, 7 Jul 2017 17:09:21 +0200
+Subject: kconfig: owrt specifc dependencies
+
+Signed-off-by: John Crispin <john@phrozen.org>
+---
+ crypto/Kconfig        | 10 +++++-----
+ drivers/bcma/Kconfig  |  1 +
+ drivers/ssb/Kconfig   |  3 ++-
+ lib/Kconfig           |  8 ++++----
+ net/netfilter/Kconfig |  2 +-
+ net/wireless/Kconfig  | 17 ++++++++++-------
+ sound/core/Kconfig    |  4 ++--
+ 7 files changed, 25 insertions(+), 20 deletions(-)
+
+diff --git a/crypto/Kconfig b/crypto/Kconfig
+index 84d71482bf08..e3552d1c1b84 100644
+--- a/crypto/Kconfig
++++ b/crypto/Kconfig
+@@ -32,7 +32,7 @@ config CRYPTO_FIPS
+         this is.
+ config CRYPTO_ALGAPI
+-      tristate
++      tristate "ALGAPI"
+       select CRYPTO_ALGAPI2
+       help
+         This option provides the API for cryptographic algorithms.
+@@ -41,7 +41,7 @@ config CRYPTO_ALGAPI2
+       tristate
+ config CRYPTO_AEAD
+-      tristate
++      tristate "AEAD"
+       select CRYPTO_AEAD2
+       select CRYPTO_ALGAPI
+@@ -52,7 +52,7 @@ config CRYPTO_AEAD2
+       select CRYPTO_RNG2
+ config CRYPTO_BLKCIPHER
+-      tristate
++      tristate "BLKCIPHER"
+       select CRYPTO_BLKCIPHER2
+       select CRYPTO_ALGAPI
+@@ -63,7 +63,7 @@ config CRYPTO_BLKCIPHER2
+       select CRYPTO_WORKQUEUE
+ config CRYPTO_HASH
+-      tristate
++      tristate "HASH"
+       select CRYPTO_HASH2
+       select CRYPTO_ALGAPI
+@@ -72,7 +72,7 @@ config CRYPTO_HASH2
+       select CRYPTO_ALGAPI2
+ config CRYPTO_RNG
+-      tristate
++      tristate "RNG"
+       select CRYPTO_RNG2
+       select CRYPTO_ALGAPI
+diff --git a/drivers/bcma/Kconfig b/drivers/bcma/Kconfig
+index b5c48a8d485f..6cb52081b9ef 100644
+--- a/drivers/bcma/Kconfig
++++ b/drivers/bcma/Kconfig
+@@ -17,6 +17,7 @@ config BCMA
+ config BCMA_BLOCKIO
+       bool
+       depends on BCMA
++      default y
+ config BCMA_HOST_PCI_POSSIBLE
+       bool
+diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig
+index d8e4219c2324..a20c168cb7c2 100644
+--- a/drivers/ssb/Kconfig
++++ b/drivers/ssb/Kconfig
+@@ -29,6 +29,7 @@ config SSB_SPROM
+ config SSB_BLOCKIO
+       bool
+       depends on SSB
++      default y
+ config SSB_PCIHOST_POSSIBLE
+       bool
+@@ -49,7 +50,7 @@ config SSB_PCIHOST
+ config SSB_B43_PCI_BRIDGE
+       bool
+       depends on SSB_PCIHOST
+-      default n
++      default y
+ config SSB_PCMCIAHOST_POSSIBLE
+       bool
+diff --git a/lib/Kconfig b/lib/Kconfig
+index 260a80e313b9..d1b788fff727 100644
+--- a/lib/Kconfig
++++ b/lib/Kconfig
+@@ -334,16 +334,16 @@ config BCH_CONST_T
+ # Textsearch support is select'ed if needed
+ #
+ config TEXTSEARCH
+-      bool
++      boolean "Textsearch support"
+ config TEXTSEARCH_KMP
+-      tristate
++      tristate "Textsearch KMP"
+ config TEXTSEARCH_BM
+-      tristate
++      tristate "Textsearch BM"
+ config TEXTSEARCH_FSM
+-      tristate
++      tristate "Textsearch FSM"
+ config BTREE
+       bool
+diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
+index e8d56d9a4df2..0fb924661988 100644
+--- a/net/netfilter/Kconfig
++++ b/net/netfilter/Kconfig
+@@ -10,7 +10,7 @@ config NETFILTER_INGRESS
+         infrastructure.
+ config NETFILTER_NETLINK
+-      tristate
++      tristate "Netfilter NFNETLINK interface"
+ config NETFILTER_NETLINK_ACCT
+ tristate "Netfilter NFACCT over NFNETLINK interface"
+diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
+index 6c606120abfe..bd299de9440c 100644
+--- a/net/wireless/Kconfig
++++ b/net/wireless/Kconfig
+@@ -1,5 +1,5 @@
+ config WIRELESS_EXT
+-      bool
++      bool "Wireless extensions"
+ config WEXT_CORE
+       def_bool y
+@@ -11,10 +11,10 @@ config WEXT_PROC
+       depends on WEXT_CORE
+ config WEXT_SPY
+-      bool
++      bool "WEXT_SPY"
+ config WEXT_PRIV
+-      bool
++      bool "WEXT_PRIV"
+ config CFG80211
+       tristate "cfg80211 - wireless configuration API"
+@@ -188,7 +188,7 @@ config CFG80211_WEXT_EXPORT
+         wext compatibility symbols to be exported.
+ config LIB80211
+-      tristate
++      tristate "LIB80211"
+       default n
+       help
+         This options enables a library of common routines used
+@@ -197,13 +197,16 @@ config LIB80211
+         Drivers should select this themselves if needed.
+ config LIB80211_CRYPT_WEP
+-      tristate
++      tristate "LIB80211_CRYPT_WEP"
++      select LIB80211
+ config LIB80211_CRYPT_CCMP
+-      tristate
++      tristate "LIB80211_CRYPT_CCMP"
++      select LIB80211
+ config LIB80211_CRYPT_TKIP
+-      tristate
++      tristate "LIB80211_CRYPT_TKIP"
++      select LIB80211
+ config LIB80211_DEBUG
+       bool "lib80211 debugging messages"
+diff --git a/sound/core/Kconfig b/sound/core/Kconfig
+index 9749f9e8b45c..9639a67e7e9b 100644
+--- a/sound/core/Kconfig
++++ b/sound/core/Kconfig
+@@ -16,13 +16,13 @@ config SND_DMAENGINE_PCM
+       tristate
+ config SND_HWDEP
+-      tristate
++      tristate "Sound hardware support"
+ config SND_RAWMIDI
+       tristate
+ config SND_COMPRESS_OFFLOAD
+-      tristate
++      tristate "Compression offloading support"
+ config SND_JACK
+       bool
+-- 
+2.11.0
+
similarity index 68%
rename from target/linux/generic/patches-4.9/259-regmap_dynamic.patch
rename to target/linux/generic/hack-4.9/259-regmap_dynamic.patch
index 8cc2361c0bd88f03e1d56b5662b6a7e46d8eb148..a6801125b41aff1b8145666aad609139662ae383 100644 (file)
@@ -1,3 +1,19 @@
+From 811d9e2268a62b830cfe93cd8bc929afcb8b198b Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 15 Jul 2017 21:12:38 +0200
+Subject: kernel: move regmap bloat out of the kernel image if it is only being used in modules
+
+lede-commit: 96f39119815028073583e4fca3a9c5fe9141e998
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/base/regmap/Kconfig  | 15 ++++++++++-----
+ drivers/base/regmap/Makefile | 12 ++++++++----
+ drivers/base/regmap/regmap.c |  3 +++
+ include/linux/regmap.h       |  2 +-
+ 4 files changed, 22 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/base/regmap/Kconfig b/drivers/base/regmap/Kconfig
+index 48b3fc1ee514..c4cb7592392b 100644
 --- a/drivers/base/regmap/Kconfig
 +++ b/drivers/base/regmap/Kconfig
 @@ -3,9 +3,8 @@
  config REGMAP_IRQ
 +      select REGMAP
        bool
---- a/include/linux/regmap.h
-+++ b/include/linux/regmap.h
-@@ -135,7 +135,7 @@ struct reg_sequence {
-       pollret ?: ((cond) ? 0 : -ETIMEDOUT); \
- })
--#ifdef CONFIG_REGMAP
-+#if IS_ENABLED(CONFIG_REGMAP)
- enum regmap_endian {
-       /* Unspecified -> 0 -> Backwards compatible default */
+diff --git a/drivers/base/regmap/Makefile b/drivers/base/regmap/Makefile
+index 6271ea9b758a..f23c58a050aa 100644
 --- a/drivers/base/regmap/Makefile
 +++ b/drivers/base/regmap/Makefile
 @@ -1,10 +1,14 @@
@@ -72,6 +79,8 @@
  obj-$(CONFIG_REGMAP_AC97) += regmap-ac97.o
  obj-$(CONFIG_REGMAP_I2C) += regmap-i2c.o
  obj-$(CONFIG_REGMAP_SPI) += regmap-spi.o
+diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
+index ae63bb0875ea..2ac56b4f525e 100644
 --- a/drivers/base/regmap/regmap.c
 +++ b/drivers/base/regmap/regmap.c
 @@ -13,6 +13,7 @@
  postcore_initcall(regmap_initcall);
 +
 +MODULE_LICENSE("GPL");
+diff --git a/include/linux/regmap.h b/include/linux/regmap.h
+index f6673132431d..95c7db29448b 100644
+--- a/include/linux/regmap.h
++++ b/include/linux/regmap.h
+@@ -135,7 +135,7 @@ struct reg_sequence {
+       pollret ?: ((cond) ? 0 : -ETIMEDOUT); \
+ })
+-#ifdef CONFIG_REGMAP
++#if IS_ENABLED(CONFIG_REGMAP)
+ enum regmap_endian {
+       /* Unspecified -> 0 -> Backwards compatible default */
+-- 
+2.11.0
+
similarity index 66%
rename from target/linux/generic/patches-4.9/260-crypto_test_dependencies.patch
rename to target/linux/generic/hack-4.9/260-crypto_test_dependencies.patch
index 948a5c5365825e07e744877c47960bfefd089498..756cb885d3b98a9f771d56ba16bcd5743a477e7e 100644 (file)
@@ -1,3 +1,19 @@
+From fd1799b0bf5efa46dd3e6dfbbf3955564807e508 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:12:51 +0200
+Subject: kernel: prevent cryptomgr from pulling in useless extra dependencies for tests that are not run
+
+Reduces kernel size after LZMA by about 5k on MIPS
+
+lede-commit: 044c316167e076479a344c59905e5b435b84a77f
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ crypto/Kconfig   | 13 ++++++-------
+ crypto/algboss.c |  4 ++++
+ 2 files changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/crypto/Kconfig b/crypto/Kconfig
+index e3552d1c1b84..17be110ad162 100644
 --- a/crypto/Kconfig
 +++ b/crypto/Kconfig
 @@ -132,12 +132,12 @@ config CRYPTO_MANAGER
        help
          Disable run-time self tests that normally take place at
          algorithm registration.
+diff --git a/crypto/algboss.c b/crypto/algboss.c
+index 6e39d9c05b98..4bde25d62ec7 100644
 --- a/crypto/algboss.c
 +++ b/crypto/algboss.c
-@@ -248,12 +248,16 @@ static int cryptomgr_schedule_test(struc
+@@ -248,12 +248,16 @@ static int cryptomgr_schedule_test(struct crypto_alg *alg)
        type = alg->cra_flags;
  
        /* This piece of crap needs to disappear into per-type test hooks. */
@@ -46,3 +64,6 @@
  
        param->type = type;
  
+-- 
+2.11.0
+
similarity index 70%
rename from target/linux/generic/patches-4.9/280-rfkill-stubs.patch
rename to target/linux/generic/hack-4.9/280-rfkill-stubs.patch
index a1841b009d5bfc6b36d21e3fbe0ccd0fe0cbfc5e..29f3463f0bec16fb763a91e983bfbbae58bc0371 100644 (file)
@@ -1,3 +1,46 @@
+From 236c1acdfef5958010ac9814a9872e0a46fd78ee Mon Sep 17 00:00:00 2001
+From: John Crispin <john@phrozen.org>
+Date: Fri, 7 Jul 2017 17:13:44 +0200
+Subject: rfkill: add fake rfkill support
+
+allow building of modules depending on RFKILL even if RFKILL is not enabled.
+
+Signed-off-by: John Crispin <john@phrozen.org>
+---
+ include/linux/rfkill.h |  2 +-
+ net/Makefile           |  2 +-
+ net/rfkill/Kconfig     | 14 +++++++++-----
+ net/rfkill/Makefile    |  2 +-
+ 4 files changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/include/linux/rfkill.h b/include/linux/rfkill.h
+index e6a0031d1b1f..21cf4dab0b9a 100644
+--- a/include/linux/rfkill.h
++++ b/include/linux/rfkill.h
+@@ -64,7 +64,7 @@ struct rfkill_ops {
+       int     (*set_block)(void *data, bool blocked);
+ };
+-#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
++#if defined(CONFIG_RFKILL_FULL) || defined(CONFIG_RFKILL_FULL_MODULE)
+ /**
+  * rfkill_alloc - allocate rfkill structure
+  * @name: name of the struct -- the string is not copied internally
+diff --git a/net/Makefile b/net/Makefile
+index 4cafaa2b4667..6566175e6c0a 100644
+--- a/net/Makefile
++++ b/net/Makefile
+@@ -51,7 +51,7 @@ obj-$(CONFIG_MAC80211)               += mac80211/
+ obj-$(CONFIG_TIPC)            += tipc/
+ obj-$(CONFIG_NETLABEL)                += netlabel/
+ obj-$(CONFIG_IUCV)            += iucv/
+-obj-$(CONFIG_RFKILL)          += rfkill/
++obj-$(CONFIG_RFKILL_FULL)     += rfkill/
+ obj-$(CONFIG_NET_9P)          += 9p/
+ obj-$(CONFIG_CAIF)            += caif/
+ ifneq ($(CONFIG_DCB),)
+diff --git a/net/rfkill/Kconfig b/net/rfkill/Kconfig
+index 868f1ad0415a..159b6ebeacd8 100644
 --- a/net/rfkill/Kconfig
 +++ b/net/rfkill/Kconfig
 @@ -1,7 +1,11 @@
@@ -45,6 +88,8 @@
        depends on GPIOLIB || COMPILE_TEST
        default n
        help
+diff --git a/net/rfkill/Makefile b/net/rfkill/Makefile
+index 311768783f4a..dbb01a8645af 100644
 --- a/net/rfkill/Makefile
 +++ b/net/rfkill/Makefile
 @@ -4,6 +4,6 @@
 +obj-$(CONFIG_RFKILL_FULL)     += rfkill.o
  obj-$(CONFIG_RFKILL_REGULATOR)        += rfkill-regulator.o
  obj-$(CONFIG_RFKILL_GPIO)     += rfkill-gpio.o
---- a/net/Makefile
-+++ b/net/Makefile
-@@ -51,7 +51,7 @@ obj-$(CONFIG_MAC80211)               += mac80211/
- obj-$(CONFIG_TIPC)            += tipc/
- obj-$(CONFIG_NETLABEL)                += netlabel/
- obj-$(CONFIG_IUCV)            += iucv/
--obj-$(CONFIG_RFKILL)          += rfkill/
-+obj-$(CONFIG_RFKILL_FULL)     += rfkill/
- obj-$(CONFIG_NET_9P)          += 9p/
- obj-$(CONFIG_CAIF)            += caif/
- ifneq ($(CONFIG_DCB),)
---- a/include/linux/rfkill.h
-+++ b/include/linux/rfkill.h
-@@ -64,7 +64,7 @@ struct rfkill_ops {
-       int     (*set_block)(void *data, bool blocked);
- };
--#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE)
-+#if defined(CONFIG_RFKILL_FULL) || defined(CONFIG_RFKILL_FULL_MODULE)
- /**
-  * rfkill_alloc - allocate rfkill structure
-  * @name: name of the struct -- the string is not copied internally
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch b/target/linux/generic/hack-4.9/301-mips_image_cmdline_hack.patch
new file mode 100644 (file)
index 0000000..0c1e302
--- /dev/null
@@ -0,0 +1,45 @@
+From: John Crispin <john@phrozen.org>
+Subject: hack: kernel: add generic image_cmdline hack to MIPS targets
+
+lede-commit: d59f5b3a987a48508257a0ddbaeadc7909f9f976
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ arch/mips/Kconfig       | 4 ++++
+ arch/mips/kernel/head.S | 6 ++++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
+index 6a56d75f7e8b..03fbb7b46e7f 100644
+--- a/arch/mips/Kconfig
++++ b/arch/mips/Kconfig
+@@ -1149,6 +1149,10 @@ config SYNC_R4K
+ config MIPS_MACHINE
+       def_bool n
++config IMAGE_CMDLINE_HACK
++      bool "OpenWrt specific image command line hack"
++      default n
++
+ config NO_IOPORT_MAP
+       def_bool n
+diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
+index cf052204eb0a..f7327fae5473 100644
+--- a/arch/mips/kernel/head.S
++++ b/arch/mips/kernel/head.S
+@@ -79,6 +79,12 @@ FEXPORT(__kernel_entry)
+       j       kernel_entry
+ #endif
++#ifdef CONFIG_IMAGE_CMDLINE_HACK
++      .ascii  "CMDLINE:"
++EXPORT(__image_cmdline)
++      .fill   0x400
++#endif /* CONFIG_IMAGE_CMDLINE_HACK */
++
+       __REF
+ NESTED(kernel_entry, 16, sp)                  # kernel entry point
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/hack-4.9/321-powerpc_crtsavres_prereq.patch
new file mode 100644 (file)
index 0000000..4fe6936
--- /dev/null
@@ -0,0 +1,31 @@
+From 107c0964cb8db7ca28ac5199426414fdab3c274d Mon Sep 17 00:00:00 2001
+From: "Alexandros C. Couloumbis" <alex@ozo.com>
+Date: Fri, 7 Jul 2017 17:14:51 +0200
+Subject: hack: arch: powerpc: drop register save/restore library from modules
+
+Upstream GCC uses a libgcc function for saving/restoring registers. This
+makes the code bigger, and upstream kernels need to carry that function
+for every single kernel module. Our GCC is patched to avoid those
+references, so we can drop the extra bloat for modules.
+
+lede-commit: e8e1084654f50904e6bf77b70b2de3f137d7b3ec
+Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
+---
+ arch/powerpc/Makefile | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
+index 617dece67924..1146daa8e4c2 100644
+--- a/arch/powerpc/Makefile
++++ b/arch/powerpc/Makefile
+@@ -179,7 +179,6 @@ else
+ CHECKFLAGS    += -D__LITTLE_ENDIAN__
+ endif
+-KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
+ ifeq ($(CONFIG_476FPE_ERR46),y)
+       KBUILD_LDFLAGS_MODULE += --ppc476-workaround \
+-- 
+2.11.0
+
similarity index 87%
rename from target/linux/generic/patches-4.9/531-debloat_lzma.patch
rename to target/linux/generic/hack-4.9/531-debloat_lzma.patch
index aa3c49801636fef05b5bcc429ce31feccb43ef44..f8d9d15de5870e4585a34df84a9fe3f9643ed66c 100644 (file)
@@ -1,3 +1,63 @@
+From 3fd297761ac246c54d7723c57fca95c112b99465 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 15 Jul 2017 21:15:44 +0200
+Subject: lzma: de-bloat the lzma library used by jffs2
+
+lede-commit: 3fd1dd08fbcbb78b34efefd32c3032e5c99108d6
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/lzma/LzFind.h  |  17 ---
+ include/linux/lzma/LzmaDec.h | 101 ---------------
+ include/linux/lzma/LzmaEnc.h |  20 ---
+ lib/lzma/LzFind.c            | 287 ++++---------------------------------------
+ lib/lzma/LzmaDec.c           |  86 +------------
+ lib/lzma/LzmaEnc.c           | 172 ++------------------------
+ 6 files changed, 42 insertions(+), 641 deletions(-)
+
+diff --git a/include/linux/lzma/LzFind.h b/include/linux/lzma/LzFind.h
+index 010c4b92ba33..6d4f8e239028 100644
+--- a/include/linux/lzma/LzFind.h
++++ b/include/linux/lzma/LzFind.h
+@@ -55,11 +55,6 @@ typedef struct _CMatchFinder
+ #define Inline_MatchFinder_GetNumAvailableBytes(p) ((p)->streamPos - (p)->pos)
+-int MatchFinder_NeedMove(CMatchFinder *p);
+-Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p);
+-void MatchFinder_MoveBlock(CMatchFinder *p);
+-void MatchFinder_ReadIfRequired(CMatchFinder *p);
+-
+ void MatchFinder_Construct(CMatchFinder *p);
+ /* Conditions:
+@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p, UInt32 historySize,
+     UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
+     ISzAlloc *alloc);
+ void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);
+-void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems);
+-void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue);
+-
+-UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *buffer, CLzRef *son,
+-    UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
+-    UInt32 *distances, UInt32 maxLen);
+ /*
+ Conditions:
+@@ -102,12 +91,6 @@ typedef struct _IMatchFinder
+ void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable);
+-void MatchFinder_Init(CMatchFinder *p);
+-UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
+-UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
+-void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
+-void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
+-
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/include/linux/lzma/LzmaDec.h b/include/linux/lzma/LzmaDec.h
+index bf7f084ba3dd..c90f95e9fbaf 100644
 --- a/include/linux/lzma/LzmaDec.h
 +++ b/include/linux/lzma/LzmaDec.h
 @@ -31,14 +31,6 @@ typedef struct _CLzmaProps
  /* ---------- One Call Interface ---------- */
  
  /* LzmaDecode
---- a/lib/lzma/LzmaDec.c
-+++ b/lib/lzma/LzmaDec.c
-@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p,
-   p->needFlush = 0;
- }
--void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
-+static void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
- {
-   p->needFlush = 1;
-   p->remainLen = 0;
-@@ -698,7 +698,7 @@ void LzmaDec_InitDicAndState(CLzmaDec *p
-     p->needInitState = 1;
- }
--void LzmaDec_Init(CLzmaDec *p)
-+static void LzmaDec_Init(CLzmaDec *p)
- {
-   p->dicPos = 0;
-   LzmaDec_InitDicAndState(p, True, True);
-@@ -716,7 +716,7 @@ static void LzmaDec_InitStateReal(CLzmaD
-   p->needInitState = 0;
- }
--SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
-+static SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
-     ELzmaFinishMode finishMode, ELzmaStatus *status)
- {
-   SizeT inSize = *srcLen;
-@@ -837,65 +837,13 @@ SRes LzmaDec_DecodeToDic(CLzmaDec *p, Si
-   return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA;
- }
--SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
--{
--  SizeT outSize = *destLen;
--  SizeT inSize = *srcLen;
--  *srcLen = *destLen = 0;
--  for (;;)
--  {
--    SizeT inSizeCur = inSize, outSizeCur, dicPos;
--    ELzmaFinishMode curFinishMode;
--    SRes res;
--    if (p->dicPos == p->dicBufSize)
--      p->dicPos = 0;
--    dicPos = p->dicPos;
--    if (outSize > p->dicBufSize - dicPos)
--    {
--      outSizeCur = p->dicBufSize;
--      curFinishMode = LZMA_FINISH_ANY;
--    }
--    else
--    {
--      outSizeCur = dicPos + outSize;
--      curFinishMode = finishMode;
--    }
--
--    res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status);
--    src += inSizeCur;
--    inSize -= inSizeCur;
--    *srcLen += inSizeCur;
--    outSizeCur = p->dicPos - dicPos;
--    memcpy(dest, p->dic + dicPos, outSizeCur);
--    dest += outSizeCur;
--    outSize -= outSizeCur;
--    *destLen += outSizeCur;
--    if (res != 0)
--      return res;
--    if (outSizeCur == 0 || outSize == 0)
--      return SZ_OK;
--  }
--}
--
--void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
-+static void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
- {
-   alloc->Free(alloc, p->probs);
-   p->probs = 0;
- }
--static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc)
--{
--  alloc->Free(alloc, p->dic);
--  p->dic = 0;
--}
--
--void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc)
--{
--  LzmaDec_FreeProbs(p, alloc);
--  LzmaDec_FreeDict(p, alloc);
--}
--
--SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
-+static SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
- {
-   UInt32 dicSize;
-   Byte d;
-@@ -935,7 +883,7 @@ static SRes LzmaDec_AllocateProbs2(CLzma
-   return SZ_OK;
- }
--SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
-+static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
- {
-   CLzmaProps propNew;
-   RINOK(LzmaProps_Decode(&propNew, props, propsSize));
-@@ -943,28 +891,6 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
-   p->prop = propNew;
-   return SZ_OK;
- }
--
--SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
--{
--  CLzmaProps propNew;
--  SizeT dicBufSize;
--  RINOK(LzmaProps_Decode(&propNew, props, propsSize));
--  RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
--  dicBufSize = propNew.dicSize;
--  if (p->dic == 0 || dicBufSize != p->dicBufSize)
--  {
--    LzmaDec_FreeDict(p, alloc);
--    p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize);
--    if (p->dic == 0)
--    {
--      LzmaDec_FreeProbs(p, alloc);
--      return SZ_ERROR_MEM;
--    }
--  }
--  p->dicBufSize = dicBufSize;
--  p->prop = propNew;
--  return SZ_OK;
--}
- SRes LzmaDecode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen,
-     const Byte *propData, unsigned propSize, ELzmaFinishMode finishMode,
+diff --git a/include/linux/lzma/LzmaEnc.h b/include/linux/lzma/LzmaEnc.h
+index 200d60eb83cd..2986c0460be4 100644
 --- a/include/linux/lzma/LzmaEnc.h
 +++ b/include/linux/lzma/LzmaEnc.h
 @@ -31,9 +31,6 @@ typedef struct _CLzmaEncProps
  
  /* ---------- CLzmaEncHandle Interface ---------- */
  
-@@ -53,26 +50,9 @@ CLzmaEncHandle LzmaEnc_Create(ISzAlloc *
+@@ -53,26 +50,9 @@ CLzmaEncHandle LzmaEnc_Create(ISzAlloc *alloc);
  void LzmaEnc_Destroy(CLzmaEncHandle p, ISzAlloc *alloc, ISzAlloc *allocBig);
  SRes LzmaEnc_SetProps(CLzmaEncHandle p, const CLzmaEncProps *props);
  SRes LzmaEnc_WriteProperties(CLzmaEncHandle p, Byte *properties, SizeT *size);
  #ifdef __cplusplus
  }
  #endif
---- a/lib/lzma/LzmaEnc.c
-+++ b/lib/lzma/LzmaEnc.c
-@@ -53,7 +53,7 @@ void LzmaEncProps_Init(CLzmaEncProps *p)
-   p->writeEndMark = 0;
- }
+diff --git a/lib/lzma/LzFind.c b/lib/lzma/LzFind.c
+index e3ecb05420eb..86251ccedfda 100644
+--- a/lib/lzma/LzFind.c
++++ b/lib/lzma/LzFind.c
+@@ -14,9 +14,15 @@
  
--void LzmaEncProps_Normalize(CLzmaEncProps *p)
-+static void LzmaEncProps_Normalize(CLzmaEncProps *p)
+ #define kStartMaxLen 3
++#if 0
++#define DIRECT_INPUT  p->directInput
++#else
++#define DIRECT_INPUT  1
++#endif
++
+ static void LzInWindow_Free(CMatchFinder *p, ISzAlloc *alloc)
  {
-   int level = p->level;
-   if (level < 0) level = 5;
-@@ -76,7 +76,7 @@ void LzmaEncProps_Normalize(CLzmaEncProp
-       #endif
+-  if (!p->directInput)
++  if (!DIRECT_INPUT)
+   {
+     alloc->Free(alloc, p->bufferBase);
+     p->bufferBase = 0;
+@@ -28,7 +34,7 @@ static void LzInWindow_Free(CMatchFinder *p, ISzAlloc *alloc)
+ static int LzInWindow_Create(CMatchFinder *p, UInt32 keepSizeReserv, ISzAlloc *alloc)
+ {
+   UInt32 blockSize = p->keepSizeBefore + p->keepSizeAfter + keepSizeReserv;
+-  if (p->directInput)
++  if (DIRECT_INPUT)
+   {
+     p->blockSize = blockSize;
+     return 1;
+@@ -42,12 +48,12 @@ static int LzInWindow_Create(CMatchFinder *p, UInt32 keepSizeReserv, ISzAlloc *a
+   return (p->bufferBase != 0);
  }
  
--UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
-+static UInt32 __maybe_unused LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
- {
-   CLzmaEncProps props = *props2;
-   LzmaEncProps_Normalize(&props);
-@@ -93,7 +93,7 @@ UInt32 LzmaEncProps_GetDictSize(const CL
+-Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
+-Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
++static Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
++static Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
  
- #define BSR2_RET(pos, res) { unsigned long i; _BitScanReverse(&i, (pos)); res = (i + i) + ((pos >> (i - 1)) & 1); }
+-UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
++static UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
  
--UInt32 GetPosSlot1(UInt32 pos)
-+static UInt32 GetPosSlot1(UInt32 pos)
+-void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
++static void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
  {
-   UInt32 res;
-   BSR2_RET(pos, res);
-@@ -107,7 +107,7 @@ UInt32 GetPosSlot1(UInt32 pos)
- #define kNumLogBits (9 + (int)sizeof(size_t) / 2)
- #define kDicLogSizeMaxCompress ((kNumLogBits - 1) * 2 + 7)
+   p->posLimit -= subValue;
+   p->pos -= subValue;
+@@ -58,7 +64,7 @@ static void MatchFinder_ReadBlock(CMatchFinder *p)
+ {
+   if (p->streamEndWasReached || p->result != SZ_OK)
+     return;
+-  if (p->directInput)
++  if (DIRECT_INPUT)
+   {
+     UInt32 curSize = 0xFFFFFFFF - p->streamPos;
+     if (curSize > p->directInputRem)
+@@ -89,7 +95,7 @@ static void MatchFinder_ReadBlock(CMatchFinder *p)
+   }
+ }
  
--void LzmaEnc_FastPosInit(Byte *g_FastPos)
-+static void LzmaEnc_FastPosInit(Byte *g_FastPos)
+-void MatchFinder_MoveBlock(CMatchFinder *p)
++static void MatchFinder_MoveBlock(CMatchFinder *p)
  {
-   int c = 2, slotFast;
-   g_FastPos[0] = 0;
-@@ -339,58 +339,6 @@ typedef struct
-   CSaveState saveState;
- } CLzmaEnc;
+   memmove(p->bufferBase,
+     p->buffer - p->keepSizeBefore,
+@@ -97,22 +103,14 @@ void MatchFinder_MoveBlock(CMatchFinder *p)
+   p->buffer = p->bufferBase + p->keepSizeBefore;
+ }
  
--void LzmaEnc_SaveState(CLzmaEncHandle pp)
--{
--  CLzmaEnc *p = (CLzmaEnc *)pp;
--  CSaveState *dest = &p->saveState;
--  int i;
--  dest->lenEnc = p->lenEnc;
--  dest->repLenEnc = p->repLenEnc;
--  dest->state = p->state;
--
--  for (i = 0; i < kNumStates; i++)
--  {
--    memcpy(dest->isMatch[i], p->isMatch[i], sizeof(p->isMatch[i]));
--    memcpy(dest->isRep0Long[i], p->isRep0Long[i], sizeof(p->isRep0Long[i]));
--  }
--  for (i = 0; i < kNumLenToPosStates; i++)
--    memcpy(dest->posSlotEncoder[i], p->posSlotEncoder[i], sizeof(p->posSlotEncoder[i]));
--  memcpy(dest->isRep, p->isRep, sizeof(p->isRep));
--  memcpy(dest->isRepG0, p->isRepG0, sizeof(p->isRepG0));
--  memcpy(dest->isRepG1, p->isRepG1, sizeof(p->isRepG1));
--  memcpy(dest->isRepG2, p->isRepG2, sizeof(p->isRepG2));
--  memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
--  memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
--  memcpy(dest->reps, p->reps, sizeof(p->reps));
--  memcpy(dest->litProbs, p->litProbs, (0x300 << p->lclp) * sizeof(CLzmaProb));
--}
--
--void LzmaEnc_RestoreState(CLzmaEncHandle pp)
+-int MatchFinder_NeedMove(CMatchFinder *p)
++static int MatchFinder_NeedMove(CMatchFinder *p)
+ {
+-  if (p->directInput)
++  if (DIRECT_INPUT)
+     return 0;
+   /* if (p->streamEndWasReached) return 0; */
+   return ((size_t)(p->bufferBase + p->blockSize - p->buffer) <= p->keepSizeAfter);
+ }
+-void MatchFinder_ReadIfRequired(CMatchFinder *p)
 -{
--  CLzmaEnc *dest = (CLzmaEnc *)pp;
--  const CSaveState *p = &dest->saveState;
--  int i;
--  dest->lenEnc = p->lenEnc;
--  dest->repLenEnc = p->repLenEnc;
--  dest->state = p->state;
--
--  for (i = 0; i < kNumStates; i++)
--  {
--    memcpy(dest->isMatch[i], p->isMatch[i], sizeof(p->isMatch[i]));
--    memcpy(dest->isRep0Long[i], p->isRep0Long[i], sizeof(p->isRep0Long[i]));
--  }
--  for (i = 0; i < kNumLenToPosStates; i++)
--    memcpy(dest->posSlotEncoder[i], p->posSlotEncoder[i], sizeof(p->posSlotEncoder[i]));
--  memcpy(dest->isRep, p->isRep, sizeof(p->isRep));
--  memcpy(dest->isRepG0, p->isRepG0, sizeof(p->isRepG0));
--  memcpy(dest->isRepG1, p->isRepG1, sizeof(p->isRepG1));
--  memcpy(dest->isRepG2, p->isRepG2, sizeof(p->isRepG2));
--  memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
--  memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
--  memcpy(dest->reps, p->reps, sizeof(p->reps));
--  memcpy(dest->litProbs, p->litProbs, (0x300 << dest->lclp) * sizeof(CLzmaProb));
+-  if (p->streamEndWasReached)
+-    return;
+-  if (p->keepSizeAfter >= p->streamPos - p->pos)
+-    MatchFinder_ReadBlock(p);
 -}
 -
SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
static void MatchFinder_CheckAndMoveAndRead(CMatchFinder *p)
  {
-   CLzmaEnc *p = (CLzmaEnc *)pp;
-@@ -600,7 +548,7 @@ static void LitEnc_EncodeMatched(CRangeE
-   while (symbol < 0x10000);
+   if (MatchFinder_NeedMove(p))
+@@ -268,7 +266,7 @@ static void MatchFinder_SetLimits(CMatchFinder *p)
+   p->posLimit = p->pos + limit;
  }
  
--void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
-+static void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
+-void MatchFinder_Init(CMatchFinder *p)
++static void MatchFinder_Init(CMatchFinder *p)
  {
    UInt32 i;
-   for (i = (1 << kNumMoveReducingBits) / 2; i < kBitModelTotal; i += (1 << kNumMoveReducingBits))
-@@ -1676,7 +1624,7 @@ static void FillDistancesPrices(CLzmaEnc
-   p->matchPriceCount = 0;
- }
--void LzmaEnc_Construct(CLzmaEnc *p)
-+static void LzmaEnc_Construct(CLzmaEnc *p)
- {
-   RangeEnc_Construct(&p->rc);
-   MatchFinder_Construct(&p->matchFinderBase);
-@@ -1709,7 +1657,7 @@ CLzmaEncHandle LzmaEnc_Create(ISzAlloc *
-   return p;
- }
--void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
-+static void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
- {
-   alloc->Free(alloc, p->litProbs);
-   alloc->Free(alloc, p->saveState.litProbs);
-@@ -1717,7 +1665,7 @@ void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAl
-   p->saveState.litProbs = 0;
- }
--void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
-+static void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
- {
-   #ifndef _7ZIP_ST
-   MatchFinderMt_Destruct(&p->matchFinderMt, allocBig);
-@@ -1947,7 +1895,7 @@ static SRes LzmaEnc_Alloc(CLzmaEnc *p, U
-   return SZ_OK;
+   for (i = 0; i < p->hashSizeSum; i++)
+@@ -287,7 +285,7 @@ static UInt32 MatchFinder_GetSubValue(CMatchFinder *p)
+   return (p->pos - p->historySize - 1) & kNormalizeMask;
  }
  
--void LzmaEnc_Init(CLzmaEnc *p)
-+static void LzmaEnc_Init(CLzmaEnc *p)
+-void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
++static void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
  {
    UInt32 i;
-   p->state = 0;
-@@ -2005,7 +1953,7 @@ void LzmaEnc_Init(CLzmaEnc *p)
-   p->lpMask = (1 << p->lp) - 1;
- }
--void LzmaEnc_InitPrices(CLzmaEnc *p)
-+static void LzmaEnc_InitPrices(CLzmaEnc *p)
- {
-   if (!p->fastMode)
-   {
-@@ -2037,26 +1985,6 @@ static SRes LzmaEnc_AllocAndInit(CLzmaEn
-   return SZ_OK;
+   for (i = 0; i < numItems; i++)
+@@ -319,38 +317,7 @@ static void MatchFinder_CheckLimits(CMatchFinder *p)
+   MatchFinder_SetLimits(p);
  }
  
--static SRes LzmaEnc_Prepare(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream,
--    ISzAlloc *alloc, ISzAlloc *allocBig)
--{
--  CLzmaEnc *p = (CLzmaEnc *)pp;
--  p->matchFinderBase.stream = inStream;
--  p->needInit = 1;
--  p->rc.outStream = outStream;
--  return LzmaEnc_AllocAndInit(p, 0, alloc, allocBig);
--}
--
--SRes LzmaEnc_PrepareForLzma2(CLzmaEncHandle pp,
--    ISeqInStream *inStream, UInt32 keepWindowSize,
--    ISzAlloc *alloc, ISzAlloc *allocBig)
+-static UInt32 * Hc_GetMatchesSpec(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
+-    UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
+-    UInt32 *distances, UInt32 maxLen)
 -{
--  CLzmaEnc *p = (CLzmaEnc *)pp;
--  p->matchFinderBase.stream = inStream;
--  p->needInit = 1;
--  return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
+-  son[_cyclicBufferPos] = curMatch;
+-  for (;;)
+-  {
+-    UInt32 delta = pos - curMatch;
+-    if (cutValue-- == 0 || delta >= _cyclicBufferSize)
+-      return distances;
+-    {
+-      const Byte *pb = cur - delta;
+-      curMatch = son[_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)];
+-      if (pb[maxLen] == cur[maxLen] && *pb == *cur)
+-      {
+-        UInt32 len = 0;
+-        while (++len != lenLimit)
+-          if (pb[len] != cur[len])
+-            break;
+-        if (maxLen < len)
+-        {
+-          *distances++ = maxLen = len;
+-          *distances++ = delta - 1;
+-          if (len == lenLimit)
+-            return distances;
+-        }
+-      }
+-    }
+-  }
 -}
 -
- static void LzmaEnc_SetInputBuf(CLzmaEnc *p, const Byte *src, SizeT srcLen)
+-UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
++static UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
+     UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
+     UInt32 *distances, UInt32 maxLen)
  {
-   p->matchFinderBase.directInput = 1;
-@@ -2064,7 +1992,7 @@ static void LzmaEnc_SetInputBuf(CLzmaEnc
-   p->matchFinderBase.directInputRem = srcLen;
- }
+@@ -460,10 +427,10 @@ static void SkipMatchesSpec(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const
+   p->buffer++; \
+   if (++p->pos == p->posLimit) MatchFinder_CheckLimits(p);
  
--SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
-+static SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
-     UInt32 keepWindowSize, ISzAlloc *alloc, ISzAlloc *allocBig)
- {
-   CLzmaEnc *p = (CLzmaEnc *)pp;
-@@ -2074,7 +2002,7 @@ SRes LzmaEnc_MemPrepare(CLzmaEncHandle p
-   return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
- }
+-#define MOVE_POS_RET MOVE_POS return offset;
+-
+ static void MatchFinder_MovePos(CMatchFinder *p) { MOVE_POS; }
  
--void LzmaEnc_Finish(CLzmaEncHandle pp)
-+static void LzmaEnc_Finish(CLzmaEncHandle pp)
- {
-   #ifndef _7ZIP_ST
-   CLzmaEnc *p = (CLzmaEnc *)pp;
-@@ -2107,53 +2035,6 @@ static size_t MyWrite(void *pp, const vo
-   return size;
- }
++#define MOVE_POS_RET MatchFinder_MovePos(p); return offset;
++
+ #define GET_MATCHES_HEADER2(minLen, ret_op) \
+   UInt32 lenLimit; UInt32 hashValue; const Byte *cur; UInt32 curMatch; \
+   lenLimit = p->lenLimit; { if (lenLimit < minLen) { MatchFinder_MovePos(p); ret_op; }} \
+@@ -479,62 +446,7 @@ static void MatchFinder_MovePos(CMatchFinder *p) { MOVE_POS; }
+   distances + offset, maxLen) - distances); MOVE_POS_RET;
  
+ #define SKIP_FOOTER \
+-  SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MOVE_POS;
 -
--UInt32 LzmaEnc_GetNumAvailableBytes(CLzmaEncHandle pp)
+-static UInt32 Bt2_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
 -{
--  const CLzmaEnc *p = (CLzmaEnc *)pp;
--  return p->matchFinder.GetNumAvailableBytes(p->matchFinderObj);
+-  UInt32 offset;
+-  GET_MATCHES_HEADER(2)
+-  HASH2_CALC;
+-  curMatch = p->hash[hashValue];
+-  p->hash[hashValue] = p->pos;
+-  offset = 0;
+-  GET_MATCHES_FOOTER(offset, 1)
 -}
 -
--const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp)
+-UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
 -{
--  const CLzmaEnc *p = (CLzmaEnc *)pp;
--  return p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - p->additionalOffset;
+-  UInt32 offset;
+-  GET_MATCHES_HEADER(3)
+-  HASH_ZIP_CALC;
+-  curMatch = p->hash[hashValue];
+-  p->hash[hashValue] = p->pos;
+-  offset = 0;
+-  GET_MATCHES_FOOTER(offset, 2)
 -}
 -
--SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
--    Byte *dest, size_t *destLen, UInt32 desiredPackSize, UInt32 *unpackSize)
+-static UInt32 Bt3_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
 -{
--  CLzmaEnc *p = (CLzmaEnc *)pp;
--  UInt64 nowPos64;
--  SRes res;
--  CSeqOutStreamBuf outStream;
--
--  outStream.funcTable.Write = MyWrite;
--  outStream.data = dest;
--  outStream.rem = *destLen;
--  outStream.overflow = False;
--
--  p->writeEndMark = False;
--  p->finished = False;
--  p->result = SZ_OK;
+-  UInt32 hash2Value, delta2, maxLen, offset;
+-  GET_MATCHES_HEADER(3)
 -
--  if (reInit)
--    LzmaEnc_Init(p);
--  LzmaEnc_InitPrices(p);
--  nowPos64 = p->nowPos64;
--  RangeEnc_Init(&p->rc);
--  p->rc.outStream = &outStream.funcTable;
+-  HASH3_CALC;
 -
--  res = LzmaEnc_CodeOneBlock(p, True, desiredPackSize, *unpackSize);
+-  delta2 = p->pos - p->hash[hash2Value];
+-  curMatch = p->hash[kFix3HashSize + hashValue];
 -  
--  *unpackSize = (UInt32)(p->nowPos64 - nowPos64);
--  *destLen -= outStream.rem;
--  if (outStream.overflow)
--    return SZ_ERROR_OUTPUT_EOF;
+-  p->hash[hash2Value] =
+-  p->hash[kFix3HashSize + hashValue] = p->pos;
 -
--  return res;
--}
 -
- static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
- {
-   SRes res = SZ_OK;
-@@ -2184,13 +2065,6 @@ static SRes LzmaEnc_Encode2(CLzmaEnc *p,
-   return res;
- }
--SRes LzmaEnc_Encode(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress,
--    ISzAlloc *alloc, ISzAlloc *allocBig)
--{
--  RINOK(LzmaEnc_Prepare(pp, outStream, inStream, alloc, allocBig));
--  return LzmaEnc_Encode2((CLzmaEnc *)pp, progress);
+-  maxLen = 2;
+-  offset = 0;
+-  if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
+-  {
+-    for (; maxLen != lenLimit; maxLen++)
+-      if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
+-        break;
+-    distances[0] = maxLen;
+-    distances[1] = delta2 - 1;
+-    offset = 2;
+-    if (maxLen == lenLimit)
+-    {
+-      SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p));
+-      MOVE_POS_RET;
+-    }
+-  }
+-  GET_MATCHES_FOOTER(offset, maxLen)
 -}
--
- SRes LzmaEnc_WriteProperties(CLzmaEncHandle pp, Byte *props, SizeT *size)
++  SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MatchFinder_MovePos(p);
+ static UInt32 Bt4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
  {
-   CLzmaEnc *p = (CLzmaEnc *)pp;
-@@ -2247,25 +2121,3 @@ SRes LzmaEnc_MemEncode(CLzmaEncHandle pp
-     return SZ_ERROR_OUTPUT_EOF;
-   return res;
+@@ -583,108 +495,6 @@ static UInt32 Bt4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
+   GET_MATCHES_FOOTER(offset, maxLen)
  }
+-static UInt32 Hc4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
+-{
+-  UInt32 hash2Value, hash3Value, delta2, delta3, maxLen, offset;
+-  GET_MATCHES_HEADER(4)
 -
--SRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
--    const CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
--    ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig)
+-  HASH4_CALC;
+-
+-  delta2 = p->pos - p->hash[                hash2Value];
+-  delta3 = p->pos - p->hash[kFix3HashSize + hash3Value];
+-  curMatch = p->hash[kFix4HashSize + hashValue];
+-
+-  p->hash[                hash2Value] =
+-  p->hash[kFix3HashSize + hash3Value] =
+-  p->hash[kFix4HashSize + hashValue] = p->pos;
+-
+-  maxLen = 1;
+-  offset = 0;
+-  if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
+-  {
+-    distances[0] = maxLen = 2;
+-    distances[1] = delta2 - 1;
+-    offset = 2;
+-  }
+-  if (delta2 != delta3 && delta3 < p->cyclicBufferSize && *(cur - delta3) == *cur)
+-  {
+-    maxLen = 3;
+-    distances[offset + 1] = delta3 - 1;
+-    offset += 2;
+-    delta2 = delta3;
+-  }
+-  if (offset != 0)
+-  {
+-    for (; maxLen != lenLimit; maxLen++)
+-      if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
+-        break;
+-    distances[offset - 2] = maxLen;
+-    if (maxLen == lenLimit)
+-    {
+-      p->son[p->cyclicBufferPos] = curMatch;
+-      MOVE_POS_RET;
+-    }
+-  }
+-  if (maxLen < 3)
+-    maxLen = 3;
+-  offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
+-    distances + offset, maxLen) - (distances));
+-  MOVE_POS_RET
+-}
+-
+-UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
 -{
--  CLzmaEnc *p = (CLzmaEnc *)LzmaEnc_Create(alloc);
--  SRes res;
--  if (p == 0)
--    return SZ_ERROR_MEM;
+-  UInt32 offset;
+-  GET_MATCHES_HEADER(3)
+-  HASH_ZIP_CALC;
+-  curMatch = p->hash[hashValue];
+-  p->hash[hashValue] = p->pos;
+-  offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
+-    distances, 2) - (distances));
+-  MOVE_POS_RET
+-}
 -
--  res = LzmaEnc_SetProps(p, props);
--  if (res == SZ_OK)
+-static void Bt2_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-{
+-  do
 -  {
--    res = LzmaEnc_WriteProperties(p, propsEncoded, propsSize);
--    if (res == SZ_OK)
--      res = LzmaEnc_MemEncode(p, dest, destLen, src, srcLen,
--          writeEndMark, progress, alloc, allocBig);
+-    SKIP_HEADER(2)
+-    HASH2_CALC;
+-    curMatch = p->hash[hashValue];
+-    p->hash[hashValue] = p->pos;
+-    SKIP_FOOTER
 -  }
+-  while (--num != 0);
+-}
 -
--  LzmaEnc_Destroy(p, alloc, allocBig);
--  return res;
+-void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-{
+-  do
+-  {
+-    SKIP_HEADER(3)
+-    HASH_ZIP_CALC;
+-    curMatch = p->hash[hashValue];
+-    p->hash[hashValue] = p->pos;
+-    SKIP_FOOTER
+-  }
+-  while (--num != 0);
 -}
---- a/include/linux/lzma/LzFind.h
-+++ b/include/linux/lzma/LzFind.h
-@@ -55,11 +55,6 @@ typedef struct _CMatchFinder
- #define Inline_MatchFinder_GetNumAvailableBytes(p) ((p)->streamPos - (p)->pos)
--int MatchFinder_NeedMove(CMatchFinder *p);
--Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p);
--void MatchFinder_MoveBlock(CMatchFinder *p);
--void MatchFinder_ReadIfRequired(CMatchFinder *p);
 -
- void MatchFinder_Construct(CMatchFinder *p);
- /* Conditions:
-@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p,
-     UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
-     ISzAlloc *alloc);
- void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);
--void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems);
--void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue);
+-static void Bt3_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-{
+-  do
+-  {
+-    UInt32 hash2Value;
+-    SKIP_HEADER(3)
+-    HASH3_CALC;
+-    curMatch = p->hash[kFix3HashSize + hashValue];
+-    p->hash[hash2Value] =
+-    p->hash[kFix3HashSize + hashValue] = p->pos;
+-    SKIP_FOOTER
+-  }
+-  while (--num != 0);
+-}
 -
--UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *buffer, CLzRef *son,
--    UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 _cutValue,
--    UInt32 *distances, UInt32 maxLen);
- /*
- Conditions:
-@@ -102,12 +91,6 @@ typedef struct _IMatchFinder
- void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable);
+ static void Bt4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+ {
+   do
+@@ -701,61 +511,12 @@ static void Bt4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+   while (--num != 0);
+ }
  
--void MatchFinder_Init(CMatchFinder *p);
--UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
--UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances);
--void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
--void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num);
+-static void Hc4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-{
+-  do
+-  {
+-    UInt32 hash2Value, hash3Value;
+-    SKIP_HEADER(4)
+-    HASH4_CALC;
+-    curMatch = p->hash[kFix4HashSize + hashValue];
+-    p->hash[                hash2Value] =
+-    p->hash[kFix3HashSize + hash3Value] =
+-    p->hash[kFix4HashSize + hashValue] = p->pos;
+-    p->son[p->cyclicBufferPos] = curMatch;
+-    MOVE_POS
+-  }
+-  while (--num != 0);
+-}
 -
- #ifdef __cplusplus
+-void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-{
+-  do
+-  {
+-    SKIP_HEADER(3)
+-    HASH_ZIP_CALC;
+-    curMatch = p->hash[hashValue];
+-    p->hash[hashValue] = p->pos;
+-    p->son[p->cyclicBufferPos] = curMatch;
+-    MOVE_POS
+-  }
+-  while (--num != 0);
+-}
+-
+ void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable)
+ {
+   vTable->Init = (Mf_Init_Func)MatchFinder_Init;
+   vTable->GetIndexByte = (Mf_GetIndexByte_Func)MatchFinder_GetIndexByte;
+   vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinder_GetNumAvailableBytes;
+   vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinder_GetPointerToCurrentPos;
+-  if (!p->btMode)
+-  {
+-    vTable->GetMatches = (Mf_GetMatches_Func)Hc4_MatchFinder_GetMatches;
+-    vTable->Skip = (Mf_Skip_Func)Hc4_MatchFinder_Skip;
+-  }
+-  else if (p->numHashBytes == 2)
+-  {
+-    vTable->GetMatches = (Mf_GetMatches_Func)Bt2_MatchFinder_GetMatches;
+-    vTable->Skip = (Mf_Skip_Func)Bt2_MatchFinder_Skip;
+-  }
+-  else if (p->numHashBytes == 3)
+-  {
+-    vTable->GetMatches = (Mf_GetMatches_Func)Bt3_MatchFinder_GetMatches;
+-    vTable->Skip = (Mf_Skip_Func)Bt3_MatchFinder_Skip;
+-  }
+-  else
+-  {
+-    vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
+-    vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
+-  }
++  vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
++  vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
+ }
+diff --git a/lib/lzma/LzmaDec.c b/lib/lzma/LzmaDec.c
+index 2036761bf146..7666e3f82067 100644
+--- a/lib/lzma/LzmaDec.c
++++ b/lib/lzma/LzmaDec.c
+@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p, const Byte *data)
+   p->needFlush = 0;
  }
- #endif
---- a/lib/lzma/LzFind.c
-+++ b/lib/lzma/LzFind.c
-@@ -14,9 +14,15 @@
- #define kStartMaxLen 3
  
-+#if 0
-+#define DIRECT_INPUT  p->directInput
-+#else
-+#define DIRECT_INPUT  1
-+#endif
-+
- static void LzInWindow_Free(CMatchFinder *p, ISzAlloc *alloc)
+-void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
++static void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
  {
--  if (!p->directInput)
-+  if (!DIRECT_INPUT)
-   {
-     alloc->Free(alloc, p->bufferBase);
-     p->bufferBase = 0;
-@@ -28,7 +34,7 @@ static void LzInWindow_Free(CMatchFinder
- static int LzInWindow_Create(CMatchFinder *p, UInt32 keepSizeReserv, ISzAlloc *alloc)
+   p->needFlush = 1;
+   p->remainLen = 0;
+@@ -698,7 +698,7 @@ void LzmaDec_InitDicAndState(CLzmaDec *p, Bool initDic, Bool initState)
+     p->needInitState = 1;
+ }
+-void LzmaDec_Init(CLzmaDec *p)
++static void LzmaDec_Init(CLzmaDec *p)
  {
-   UInt32 blockSize = p->keepSizeBefore + p->keepSizeAfter + keepSizeReserv;
--  if (p->directInput)
-+  if (DIRECT_INPUT)
-   {
-     p->blockSize = blockSize;
-     return 1;
-@@ -42,12 +48,12 @@ static int LzInWindow_Create(CMatchFinde
-   return (p->bufferBase != 0);
+   p->dicPos = 0;
+   LzmaDec_InitDicAndState(p, True, True);
+@@ -716,7 +716,7 @@ static void LzmaDec_InitStateReal(CLzmaDec *p)
+   p->needInitState = 0;
  }
  
--Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
--Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
-+static Byte *MatchFinder_GetPointerToCurrentPos(CMatchFinder *p) { return p->buffer; }
-+static Byte MatchFinder_GetIndexByte(CMatchFinder *p, Int32 index) { return p->buffer[index]; }
+-SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
++static SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *srcLen,
+     ELzmaFinishMode finishMode, ELzmaStatus *status)
+ {
+   SizeT inSize = *srcLen;
+@@ -837,65 +837,13 @@ SRes LzmaDec_DecodeToDic(CLzmaDec *p, SizeT dicLimit, const Byte *src, SizeT *sr
+   return (p->code == 0) ? SZ_OK : SZ_ERROR_DATA;
+ }
  
--UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
-+static UInt32 MatchFinder_GetNumAvailableBytes(CMatchFinder *p) { return p->streamPos - p->pos; }
+-SRes LzmaDec_DecodeToBuf(CLzmaDec *p, Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status)
+-{
+-  SizeT outSize = *destLen;
+-  SizeT inSize = *srcLen;
+-  *srcLen = *destLen = 0;
+-  for (;;)
+-  {
+-    SizeT inSizeCur = inSize, outSizeCur, dicPos;
+-    ELzmaFinishMode curFinishMode;
+-    SRes res;
+-    if (p->dicPos == p->dicBufSize)
+-      p->dicPos = 0;
+-    dicPos = p->dicPos;
+-    if (outSize > p->dicBufSize - dicPos)
+-    {
+-      outSizeCur = p->dicBufSize;
+-      curFinishMode = LZMA_FINISH_ANY;
+-    }
+-    else
+-    {
+-      outSizeCur = dicPos + outSize;
+-      curFinishMode = finishMode;
+-    }
+-
+-    res = LzmaDec_DecodeToDic(p, outSizeCur, src, &inSizeCur, curFinishMode, status);
+-    src += inSizeCur;
+-    inSize -= inSizeCur;
+-    *srcLen += inSizeCur;
+-    outSizeCur = p->dicPos - dicPos;
+-    memcpy(dest, p->dic + dicPos, outSizeCur);
+-    dest += outSizeCur;
+-    outSize -= outSizeCur;
+-    *destLen += outSizeCur;
+-    if (res != 0)
+-      return res;
+-    if (outSizeCur == 0 || outSize == 0)
+-      return SZ_OK;
+-  }
+-}
+-
+-void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
++static void LzmaDec_FreeProbs(CLzmaDec *p, ISzAlloc *alloc)
+ {
+   alloc->Free(alloc, p->probs);
+   p->probs = 0;
+ }
  
--void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
-+static void MatchFinder_ReduceOffsets(CMatchFinder *p, UInt32 subValue)
+-static void LzmaDec_FreeDict(CLzmaDec *p, ISzAlloc *alloc)
+-{
+-  alloc->Free(alloc, p->dic);
+-  p->dic = 0;
+-}
+-
+-void LzmaDec_Free(CLzmaDec *p, ISzAlloc *alloc)
+-{
+-  LzmaDec_FreeProbs(p, alloc);
+-  LzmaDec_FreeDict(p, alloc);
+-}
+-
+-SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
++static SRes LzmaProps_Decode(CLzmaProps *p, const Byte *data, unsigned size)
  {
-   p->posLimit -= subValue;
-   p->pos -= subValue;
-@@ -58,7 +64,7 @@ static void MatchFinder_ReadBlock(CMatch
+   UInt32 dicSize;
+   Byte d;
+@@ -935,33 +883,11 @@ static SRes LzmaDec_AllocateProbs2(CLzmaDec *p, const CLzmaProps *propNew, ISzAl
+   return SZ_OK;
+ }
+-SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
+-{
+-  CLzmaProps propNew;
+-  RINOK(LzmaProps_Decode(&propNew, props, propsSize));
+-  RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
+-  p->prop = propNew;
+-  return SZ_OK;
+-}
+-
+-SRes LzmaDec_Allocate(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
++static SRes LzmaDec_AllocateProbs(CLzmaDec *p, const Byte *props, unsigned propsSize, ISzAlloc *alloc)
  {
-   if (p->streamEndWasReached || p->result != SZ_OK)
-     return;
--  if (p->directInput)
-+  if (DIRECT_INPUT)
-   {
-     UInt32 curSize = 0xFFFFFFFF - p->streamPos;
-     if (curSize > p->directInputRem)
-@@ -89,7 +95,7 @@ static void MatchFinder_ReadBlock(CMatch
-   }
+   CLzmaProps propNew;
+-  SizeT dicBufSize;
+   RINOK(LzmaProps_Decode(&propNew, props, propsSize));
+   RINOK(LzmaDec_AllocateProbs2(p, &propNew, alloc));
+-  dicBufSize = propNew.dicSize;
+-  if (p->dic == 0 || dicBufSize != p->dicBufSize)
+-  {
+-    LzmaDec_FreeDict(p, alloc);
+-    p->dic = (Byte *)alloc->Alloc(alloc, dicBufSize);
+-    if (p->dic == 0)
+-    {
+-      LzmaDec_FreeProbs(p, alloc);
+-      return SZ_ERROR_MEM;
+-    }
+-  }
+-  p->dicBufSize = dicBufSize;
+   p->prop = propNew;
+   return SZ_OK;
+ }
+diff --git a/lib/lzma/LzmaEnc.c b/lib/lzma/LzmaEnc.c
+index 6dadf00dfab2..943965647bad 100644
+--- a/lib/lzma/LzmaEnc.c
++++ b/lib/lzma/LzmaEnc.c
+@@ -53,7 +53,7 @@ void LzmaEncProps_Init(CLzmaEncProps *p)
+   p->writeEndMark = 0;
  }
  
--void MatchFinder_MoveBlock(CMatchFinder *p)
-+static void MatchFinder_MoveBlock(CMatchFinder *p)
+-void LzmaEncProps_Normalize(CLzmaEncProps *p)
++static void LzmaEncProps_Normalize(CLzmaEncProps *p)
  {
-   memmove(p->bufferBase,
-     p->buffer - p->keepSizeBefore,
-@@ -97,22 +103,14 @@ void MatchFinder_MoveBlock(CMatchFinder
-   p->buffer = p->bufferBase + p->keepSizeBefore;
+   int level = p->level;
+   if (level < 0) level = 5;
+@@ -76,7 +76,7 @@ void LzmaEncProps_Normalize(CLzmaEncProps *p)
+       #endif
  }
  
--int MatchFinder_NeedMove(CMatchFinder *p)
-+static int MatchFinder_NeedMove(CMatchFinder *p)
+-UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
++static UInt32 __maybe_unused LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
  {
--  if (p->directInput)
-+  if (DIRECT_INPUT)
-     return 0;
-   /* if (p->streamEndWasReached) return 0; */
-   return ((size_t)(p->bufferBase + p->blockSize - p->buffer) <= p->keepSizeAfter);
- }
+   CLzmaEncProps props = *props2;
+   LzmaEncProps_Normalize(&props);
+@@ -93,7 +93,7 @@ UInt32 LzmaEncProps_GetDictSize(const CLzmaEncProps *props2)
  
--void MatchFinder_ReadIfRequired(CMatchFinder *p)
+ #define BSR2_RET(pos, res) { unsigned long i; _BitScanReverse(&i, (pos)); res = (i + i) + ((pos >> (i - 1)) & 1); }
+-UInt32 GetPosSlot1(UInt32 pos)
++static UInt32 GetPosSlot1(UInt32 pos)
+ {
+   UInt32 res;
+   BSR2_RET(pos, res);
+@@ -107,7 +107,7 @@ UInt32 GetPosSlot1(UInt32 pos)
+ #define kNumLogBits (9 + (int)sizeof(size_t) / 2)
+ #define kDicLogSizeMaxCompress ((kNumLogBits - 1) * 2 + 7)
+-void LzmaEnc_FastPosInit(Byte *g_FastPos)
++static void LzmaEnc_FastPosInit(Byte *g_FastPos)
+ {
+   int c = 2, slotFast;
+   g_FastPos[0] = 0;
+@@ -339,58 +339,6 @@ typedef struct
+   CSaveState saveState;
+ } CLzmaEnc;
+-void LzmaEnc_SaveState(CLzmaEncHandle pp)
 -{
--  if (p->streamEndWasReached)
--    return;
--  if (p->keepSizeAfter >= p->streamPos - p->pos)
--    MatchFinder_ReadBlock(p);
+-  CLzmaEnc *p = (CLzmaEnc *)pp;
+-  CSaveState *dest = &p->saveState;
+-  int i;
+-  dest->lenEnc = p->lenEnc;
+-  dest->repLenEnc = p->repLenEnc;
+-  dest->state = p->state;
+-
+-  for (i = 0; i < kNumStates; i++)
+-  {
+-    memcpy(dest->isMatch[i], p->isMatch[i], sizeof(p->isMatch[i]));
+-    memcpy(dest->isRep0Long[i], p->isRep0Long[i], sizeof(p->isRep0Long[i]));
+-  }
+-  for (i = 0; i < kNumLenToPosStates; i++)
+-    memcpy(dest->posSlotEncoder[i], p->posSlotEncoder[i], sizeof(p->posSlotEncoder[i]));
+-  memcpy(dest->isRep, p->isRep, sizeof(p->isRep));
+-  memcpy(dest->isRepG0, p->isRepG0, sizeof(p->isRepG0));
+-  memcpy(dest->isRepG1, p->isRepG1, sizeof(p->isRepG1));
+-  memcpy(dest->isRepG2, p->isRepG2, sizeof(p->isRepG2));
+-  memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
+-  memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
+-  memcpy(dest->reps, p->reps, sizeof(p->reps));
+-  memcpy(dest->litProbs, p->litProbs, (0x300 << p->lclp) * sizeof(CLzmaProb));
 -}
 -
- static void MatchFinder_CheckAndMoveAndRead(CMatchFinder *p)
+-void LzmaEnc_RestoreState(CLzmaEncHandle pp)
+-{
+-  CLzmaEnc *dest = (CLzmaEnc *)pp;
+-  const CSaveState *p = &dest->saveState;
+-  int i;
+-  dest->lenEnc = p->lenEnc;
+-  dest->repLenEnc = p->repLenEnc;
+-  dest->state = p->state;
+-
+-  for (i = 0; i < kNumStates; i++)
+-  {
+-    memcpy(dest->isMatch[i], p->isMatch[i], sizeof(p->isMatch[i]));
+-    memcpy(dest->isRep0Long[i], p->isRep0Long[i], sizeof(p->isRep0Long[i]));
+-  }
+-  for (i = 0; i < kNumLenToPosStates; i++)
+-    memcpy(dest->posSlotEncoder[i], p->posSlotEncoder[i], sizeof(p->posSlotEncoder[i]));
+-  memcpy(dest->isRep, p->isRep, sizeof(p->isRep));
+-  memcpy(dest->isRepG0, p->isRepG0, sizeof(p->isRepG0));
+-  memcpy(dest->isRepG1, p->isRepG1, sizeof(p->isRepG1));
+-  memcpy(dest->isRepG2, p->isRepG2, sizeof(p->isRepG2));
+-  memcpy(dest->posEncoders, p->posEncoders, sizeof(p->posEncoders));
+-  memcpy(dest->posAlignEncoder, p->posAlignEncoder, sizeof(p->posAlignEncoder));
+-  memcpy(dest->reps, p->reps, sizeof(p->reps));
+-  memcpy(dest->litProbs, p->litProbs, (0x300 << dest->lclp) * sizeof(CLzmaProb));
+-}
+-
+ SRes LzmaEnc_SetProps(CLzmaEncHandle pp, const CLzmaEncProps *props2)
  {
-   if (MatchFinder_NeedMove(p))
-@@ -268,7 +266,7 @@ static void MatchFinder_SetLimits(CMatch
-   p->posLimit = p->pos + limit;
+   CLzmaEnc *p = (CLzmaEnc *)pp;
+@@ -600,7 +548,7 @@ static void LitEnc_EncodeMatched(CRangeEnc *p, CLzmaProb *probs, UInt32 symbol,
+   while (symbol < 0x10000);
  }
  
--void MatchFinder_Init(CMatchFinder *p)
-+static void MatchFinder_Init(CMatchFinder *p)
+-void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
++static void LzmaEnc_InitPriceTables(UInt32 *ProbPrices)
  {
    UInt32 i;
-   for (i = 0; i < p->hashSizeSum; i++)
-@@ -287,7 +285,7 @@ static UInt32 MatchFinder_GetSubValue(CM
-   return (p->pos - p->historySize - 1) & kNormalizeMask;
+   for (i = (1 << kNumMoveReducingBits) / 2; i < kBitModelTotal; i += (1 << kNumMoveReducingBits))
+@@ -1676,7 +1624,7 @@ static void FillDistancesPrices(CLzmaEnc *p)
+   p->matchPriceCount = 0;
  }
  
--void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
-+static void MatchFinder_Normalize3(UInt32 subValue, CLzRef *items, UInt32 numItems)
+-void LzmaEnc_Construct(CLzmaEnc *p)
++static void LzmaEnc_Construct(CLzmaEnc *p)
  {
-   UInt32 i;
-   for (i = 0; i < numItems; i++)
-@@ -319,38 +317,7 @@ static void MatchFinder_CheckLimits(CMat
-   MatchFinder_SetLimits(p);
+   RangeEnc_Construct(&p->rc);
+   MatchFinder_Construct(&p->matchFinderBase);
+@@ -1709,7 +1657,7 @@ CLzmaEncHandle LzmaEnc_Create(ISzAlloc *alloc)
+   return p;
  }
  
--static UInt32 * Hc_GetMatchesSpec(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
--    UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
--    UInt32 *distances, UInt32 maxLen)
--{
--  son[_cyclicBufferPos] = curMatch;
--  for (;;)
--  {
--    UInt32 delta = pos - curMatch;
--    if (cutValue-- == 0 || delta >= _cyclicBufferSize)
--      return distances;
--    {
--      const Byte *pb = cur - delta;
--      curMatch = son[_cyclicBufferPos - delta + ((delta > _cyclicBufferPos) ? _cyclicBufferSize : 0)];
--      if (pb[maxLen] == cur[maxLen] && *pb == *cur)
--      {
--        UInt32 len = 0;
--        while (++len != lenLimit)
--          if (pb[len] != cur[len])
--            break;
--        if (maxLen < len)
--        {
--          *distances++ = maxLen = len;
--          *distances++ = delta - 1;
--          if (len == lenLimit)
--            return distances;
--        }
--      }
--    }
--  }
--}
--
--UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
-+static UInt32 * GetMatchesSpec1(UInt32 lenLimit, UInt32 curMatch, UInt32 pos, const Byte *cur, CLzRef *son,
-     UInt32 _cyclicBufferPos, UInt32 _cyclicBufferSize, UInt32 cutValue,
-     UInt32 *distances, UInt32 maxLen)
+-void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
++static void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
  {
-@@ -460,10 +427,10 @@ static void SkipMatchesSpec(UInt32 lenLi
-   p->buffer++; \
-   if (++p->pos == p->posLimit) MatchFinder_CheckLimits(p);
--#define MOVE_POS_RET MOVE_POS return offset;
--
- static void MatchFinder_MovePos(CMatchFinder *p) { MOVE_POS; }
+   alloc->Free(alloc, p->litProbs);
+   alloc->Free(alloc, p->saveState.litProbs);
+@@ -1717,7 +1665,7 @@ void LzmaEnc_FreeLits(CLzmaEnc *p, ISzAlloc *alloc)
+   p->saveState.litProbs = 0;
+ }
  
-+#define MOVE_POS_RET MatchFinder_MovePos(p); return offset;
-+
- #define GET_MATCHES_HEADER2(minLen, ret_op) \
-   UInt32 lenLimit; UInt32 hashValue; const Byte *cur; UInt32 curMatch; \
-   lenLimit = p->lenLimit; { if (lenLimit < minLen) { MatchFinder_MovePos(p); ret_op; }} \
-@@ -479,62 +446,7 @@ static void MatchFinder_MovePos(CMatchFi
-   distances + offset, maxLen) - distances); MOVE_POS_RET;
+-void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
++static void LzmaEnc_Destruct(CLzmaEnc *p, ISzAlloc *alloc, ISzAlloc *allocBig)
+ {
+   #ifndef _7ZIP_ST
+   MatchFinderMt_Destruct(&p->matchFinderMt, allocBig);
+@@ -1947,7 +1895,7 @@ static SRes LzmaEnc_Alloc(CLzmaEnc *p, UInt32 keepWindowSize, ISzAlloc *alloc, I
+   return SZ_OK;
+ }
  
- #define SKIP_FOOTER \
--  SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MOVE_POS;
--
--static UInt32 Bt2_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
--{
--  UInt32 offset;
--  GET_MATCHES_HEADER(2)
--  HASH2_CALC;
--  curMatch = p->hash[hashValue];
--  p->hash[hashValue] = p->pos;
--  offset = 0;
--  GET_MATCHES_FOOTER(offset, 1)
--}
--
--UInt32 Bt3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
--{
--  UInt32 offset;
--  GET_MATCHES_HEADER(3)
--  HASH_ZIP_CALC;
--  curMatch = p->hash[hashValue];
--  p->hash[hashValue] = p->pos;
--  offset = 0;
--  GET_MATCHES_FOOTER(offset, 2)
--}
--
--static UInt32 Bt3_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
--{
--  UInt32 hash2Value, delta2, maxLen, offset;
--  GET_MATCHES_HEADER(3)
--
--  HASH3_CALC;
--
--  delta2 = p->pos - p->hash[hash2Value];
--  curMatch = p->hash[kFix3HashSize + hashValue];
--  
--  p->hash[hash2Value] =
--  p->hash[kFix3HashSize + hashValue] = p->pos;
--
--
--  maxLen = 2;
--  offset = 0;
--  if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
--  {
--    for (; maxLen != lenLimit; maxLen++)
--      if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
--        break;
--    distances[0] = maxLen;
--    distances[1] = delta2 - 1;
--    offset = 2;
--    if (maxLen == lenLimit)
--    {
--      SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p));
--      MOVE_POS_RET;
--    }
--  }
--  GET_MATCHES_FOOTER(offset, maxLen)
--}
-+  SkipMatchesSpec(lenLimit, curMatch, MF_PARAMS(p)); MatchFinder_MovePos(p);
+-void LzmaEnc_Init(CLzmaEnc *p)
++static void LzmaEnc_Init(CLzmaEnc *p)
+ {
+   UInt32 i;
+   p->state = 0;
+@@ -2005,7 +1953,7 @@ void LzmaEnc_Init(CLzmaEnc *p)
+   p->lpMask = (1 << p->lp) - 1;
+ }
  
- static UInt32 Bt4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
+-void LzmaEnc_InitPrices(CLzmaEnc *p)
++static void LzmaEnc_InitPrices(CLzmaEnc *p)
  {
-@@ -583,108 +495,6 @@ static UInt32 Bt4_MatchFinder_GetMatches
-   GET_MATCHES_FOOTER(offset, maxLen)
+   if (!p->fastMode)
+   {
+@@ -2037,26 +1985,6 @@ static SRes LzmaEnc_AllocAndInit(CLzmaEnc *p, UInt32 keepWindowSize, ISzAlloc *a
+   return SZ_OK;
  }
  
--static UInt32 Hc4_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
+-static SRes LzmaEnc_Prepare(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream,
+-    ISzAlloc *alloc, ISzAlloc *allocBig)
 -{
--  UInt32 hash2Value, hash3Value, delta2, delta3, maxLen, offset;
--  GET_MATCHES_HEADER(4)
--
--  HASH4_CALC;
--
--  delta2 = p->pos - p->hash[                hash2Value];
--  delta3 = p->pos - p->hash[kFix3HashSize + hash3Value];
--  curMatch = p->hash[kFix4HashSize + hashValue];
--
--  p->hash[                hash2Value] =
--  p->hash[kFix3HashSize + hash3Value] =
--  p->hash[kFix4HashSize + hashValue] = p->pos;
--
--  maxLen = 1;
--  offset = 0;
--  if (delta2 < p->cyclicBufferSize && *(cur - delta2) == *cur)
--  {
--    distances[0] = maxLen = 2;
--    distances[1] = delta2 - 1;
--    offset = 2;
--  }
--  if (delta2 != delta3 && delta3 < p->cyclicBufferSize && *(cur - delta3) == *cur)
--  {
--    maxLen = 3;
--    distances[offset + 1] = delta3 - 1;
--    offset += 2;
--    delta2 = delta3;
--  }
--  if (offset != 0)
--  {
--    for (; maxLen != lenLimit; maxLen++)
--      if (cur[(ptrdiff_t)maxLen - delta2] != cur[maxLen])
--        break;
--    distances[offset - 2] = maxLen;
--    if (maxLen == lenLimit)
--    {
--      p->son[p->cyclicBufferPos] = curMatch;
--      MOVE_POS_RET;
--    }
--  }
--  if (maxLen < 3)
--    maxLen = 3;
--  offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
--    distances + offset, maxLen) - (distances));
--  MOVE_POS_RET
+-  CLzmaEnc *p = (CLzmaEnc *)pp;
+-  p->matchFinderBase.stream = inStream;
+-  p->needInit = 1;
+-  p->rc.outStream = outStream;
+-  return LzmaEnc_AllocAndInit(p, 0, alloc, allocBig);
 -}
 -
--UInt32 Hc3Zip_MatchFinder_GetMatches(CMatchFinder *p, UInt32 *distances)
+-SRes LzmaEnc_PrepareForLzma2(CLzmaEncHandle pp,
+-    ISeqInStream *inStream, UInt32 keepWindowSize,
+-    ISzAlloc *alloc, ISzAlloc *allocBig)
 -{
--  UInt32 offset;
--  GET_MATCHES_HEADER(3)
--  HASH_ZIP_CALC;
--  curMatch = p->hash[hashValue];
--  p->hash[hashValue] = p->pos;
--  offset = (UInt32)(Hc_GetMatchesSpec(lenLimit, curMatch, MF_PARAMS(p),
--    distances, 2) - (distances));
--  MOVE_POS_RET
+-  CLzmaEnc *p = (CLzmaEnc *)pp;
+-  p->matchFinderBase.stream = inStream;
+-  p->needInit = 1;
+-  return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
 -}
 -
--static void Bt2_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+ static void LzmaEnc_SetInputBuf(CLzmaEnc *p, const Byte *src, SizeT srcLen)
+ {
+   p->matchFinderBase.directInput = 1;
+@@ -2064,7 +1992,7 @@ static void LzmaEnc_SetInputBuf(CLzmaEnc *p, const Byte *src, SizeT srcLen)
+   p->matchFinderBase.directInputRem = srcLen;
+ }
+-SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
++static SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
+     UInt32 keepWindowSize, ISzAlloc *alloc, ISzAlloc *allocBig)
+ {
+   CLzmaEnc *p = (CLzmaEnc *)pp;
+@@ -2074,7 +2002,7 @@ SRes LzmaEnc_MemPrepare(CLzmaEncHandle pp, const Byte *src, SizeT srcLen,
+   return LzmaEnc_AllocAndInit(p, keepWindowSize, alloc, allocBig);
+ }
+-void LzmaEnc_Finish(CLzmaEncHandle pp)
++static void LzmaEnc_Finish(CLzmaEncHandle pp)
+ {
+   #ifndef _7ZIP_ST
+   CLzmaEnc *p = (CLzmaEnc *)pp;
+@@ -2107,53 +2035,6 @@ static size_t MyWrite(void *pp, const void *data, size_t size)
+   return size;
+ }
+-
+-UInt32 LzmaEnc_GetNumAvailableBytes(CLzmaEncHandle pp)
 -{
--  do
--  {
--    SKIP_HEADER(2)
--    HASH2_CALC;
--    curMatch = p->hash[hashValue];
--    p->hash[hashValue] = p->pos;
--    SKIP_FOOTER
--  }
--  while (--num != 0);
+-  const CLzmaEnc *p = (CLzmaEnc *)pp;
+-  return p->matchFinder.GetNumAvailableBytes(p->matchFinderObj);
 -}
 -
--void Bt3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-const Byte *LzmaEnc_GetCurBuf(CLzmaEncHandle pp)
 -{
--  do
--  {
--    SKIP_HEADER(3)
--    HASH_ZIP_CALC;
--    curMatch = p->hash[hashValue];
--    p->hash[hashValue] = p->pos;
--    SKIP_FOOTER
--  }
--  while (--num != 0);
+-  const CLzmaEnc *p = (CLzmaEnc *)pp;
+-  return p->matchFinder.GetPointerToCurrentPos(p->matchFinderObj) - p->additionalOffset;
 -}
 -
--static void Bt3_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool reInit,
+-    Byte *dest, size_t *destLen, UInt32 desiredPackSize, UInt32 *unpackSize)
 -{
--  do
--  {
--    UInt32 hash2Value;
--    SKIP_HEADER(3)
--    HASH3_CALC;
--    curMatch = p->hash[kFix3HashSize + hashValue];
--    p->hash[hash2Value] =
--    p->hash[kFix3HashSize + hashValue] = p->pos;
--    SKIP_FOOTER
--  }
--  while (--num != 0);
+-  CLzmaEnc *p = (CLzmaEnc *)pp;
+-  UInt64 nowPos64;
+-  SRes res;
+-  CSeqOutStreamBuf outStream;
+-
+-  outStream.funcTable.Write = MyWrite;
+-  outStream.data = dest;
+-  outStream.rem = *destLen;
+-  outStream.overflow = False;
+-
+-  p->writeEndMark = False;
+-  p->finished = False;
+-  p->result = SZ_OK;
+-
+-  if (reInit)
+-    LzmaEnc_Init(p);
+-  LzmaEnc_InitPrices(p);
+-  nowPos64 = p->nowPos64;
+-  RangeEnc_Init(&p->rc);
+-  p->rc.outStream = &outStream.funcTable;
+-
+-  res = LzmaEnc_CodeOneBlock(p, True, desiredPackSize, *unpackSize);
+-  
+-  *unpackSize = (UInt32)(p->nowPos64 - nowPos64);
+-  *destLen -= outStream.rem;
+-  if (outStream.overflow)
+-    return SZ_ERROR_OUTPUT_EOF;
+-
+-  return res;
 -}
 -
- static void Bt4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+ static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
  {
-   do
-@@ -701,61 +511,12 @@ static void Bt4_MatchFinder_Skip(CMatchF
-   while (--num != 0);
+   SRes res = SZ_OK;
+@@ -2184,13 +2065,6 @@ static SRes LzmaEnc_Encode2(CLzmaEnc *p, ICompressProgress *progress)
+   return res;
  }
  
--static void Hc4_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+-SRes LzmaEnc_Encode(CLzmaEncHandle pp, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress,
+-    ISzAlloc *alloc, ISzAlloc *allocBig)
 -{
--  do
--  {
--    UInt32 hash2Value, hash3Value;
--    SKIP_HEADER(4)
--    HASH4_CALC;
--    curMatch = p->hash[kFix4HashSize + hashValue];
--    p->hash[                hash2Value] =
--    p->hash[kFix3HashSize + hash3Value] =
--    p->hash[kFix4HashSize + hashValue] = p->pos;
--    p->son[p->cyclicBufferPos] = curMatch;
--    MOVE_POS
--  }
--  while (--num != 0);
+-  RINOK(LzmaEnc_Prepare(pp, outStream, inStream, alloc, allocBig));
+-  return LzmaEnc_Encode2((CLzmaEnc *)pp, progress);
 -}
 -
--void Hc3Zip_MatchFinder_Skip(CMatchFinder *p, UInt32 num)
+ SRes LzmaEnc_WriteProperties(CLzmaEncHandle pp, Byte *props, SizeT *size)
+ {
+   CLzmaEnc *p = (CLzmaEnc *)pp;
+@@ -2247,25 +2121,3 @@ SRes LzmaEnc_MemEncode(CLzmaEncHandle pp, Byte *dest, SizeT *destLen, const Byte
+     return SZ_ERROR_OUTPUT_EOF;
+   return res;
+ }
+-
+-SRes LzmaEncode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
+-    const CLzmaEncProps *props, Byte *propsEncoded, SizeT *propsSize, int writeEndMark,
+-    ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig)
 -{
--  do
--  {
--    SKIP_HEADER(3)
--    HASH_ZIP_CALC;
--    curMatch = p->hash[hashValue];
--    p->hash[hashValue] = p->pos;
--    p->son[p->cyclicBufferPos] = curMatch;
--    MOVE_POS
--  }
--  while (--num != 0);
--}
+-  CLzmaEnc *p = (CLzmaEnc *)LzmaEnc_Create(alloc);
+-  SRes res;
+-  if (p == 0)
+-    return SZ_ERROR_MEM;
 -
- void MatchFinder_CreateVTable(CMatchFinder *p, IMatchFinder *vTable)
- {
-   vTable->Init = (Mf_Init_Func)MatchFinder_Init;
-   vTable->GetIndexByte = (Mf_GetIndexByte_Func)MatchFinder_GetIndexByte;
-   vTable->GetNumAvailableBytes = (Mf_GetNumAvailableBytes_Func)MatchFinder_GetNumAvailableBytes;
-   vTable->GetPointerToCurrentPos = (Mf_GetPointerToCurrentPos_Func)MatchFinder_GetPointerToCurrentPos;
--  if (!p->btMode)
--  {
--    vTable->GetMatches = (Mf_GetMatches_Func)Hc4_MatchFinder_GetMatches;
--    vTable->Skip = (Mf_Skip_Func)Hc4_MatchFinder_Skip;
--  }
--  else if (p->numHashBytes == 2)
--  {
--    vTable->GetMatches = (Mf_GetMatches_Func)Bt2_MatchFinder_GetMatches;
--    vTable->Skip = (Mf_Skip_Func)Bt2_MatchFinder_Skip;
--  }
--  else if (p->numHashBytes == 3)
--  {
--    vTable->GetMatches = (Mf_GetMatches_Func)Bt3_MatchFinder_GetMatches;
--    vTable->Skip = (Mf_Skip_Func)Bt3_MatchFinder_Skip;
--  }
--  else
+-  res = LzmaEnc_SetProps(p, props);
+-  if (res == SZ_OK)
 -  {
--    vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
--    vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
+-    res = LzmaEnc_WriteProperties(p, propsEncoded, propsSize);
+-    if (res == SZ_OK)
+-      res = LzmaEnc_MemEncode(p, dest, destLen, src, srcLen,
+-          writeEndMark, progress, alloc, allocBig);
 -  }
-+  vTable->GetMatches = (Mf_GetMatches_Func)Bt4_MatchFinder_GetMatches;
-+  vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
- }
+-
+-  LzmaEnc_Destroy(p, alloc, allocBig);
+-  return res;
+-}
+-- 
+2.11.0
+
similarity index 56%
rename from target/linux/generic/patches-4.9/640-bridge-only-accept-EAP-locally.patch
rename to target/linux/generic/hack-4.9/640-bridge-only-accept-EAP-locally.patch
index 5fd0e56ce067b8bceb5528a839dea49ce89bbce7..758b465def06f3a1043b138731bbf951928fca33 100644 (file)
@@ -1,14 +1,21 @@
+From c6905cfdeb31a5c049db3da434b10fa0d3e83569 Mon Sep 17 00:00:00 2001
 From: Felix Fietkau <nbd@nbd.name>
-Subject: [PATCH] bridge: only accept EAP locally
+Date: Fri, 7 Jul 2017 17:18:54 +0200
+Subject: bridge: only accept EAP locally
 
 When bridging, do not forward EAP frames to other ports, only deliver
 them locally, regardless of the state.
 
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
+ net/bridge/br_input.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
+index 267b46af407f..48fa08f32c2a 100644
 --- a/net/bridge/br_input.c
 +++ b/net/bridge/br_input.c
-@@ -164,11 +164,14 @@ int br_handle_frame_finish(struct net *n
+@@ -164,11 +164,14 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb
                }
        }
  
@@ -25,3 +32,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (IS_ENABLED(CONFIG_INET) && skb->protocol == htons(ETH_P_ARP))
                br_do_proxy_arp(skb, br, vid, p);
  
+-- 
+2.11.0
+
similarity index 61%
rename from target/linux/generic/patches-4.9/641-bridge_port_isolate.patch
rename to target/linux/generic/hack-4.9/641-bridge_port_isolate.patch
index db9527d06866c41fa01a41aeb691bccb955596f4..637550fa28fc18e7d5d87bf615430ed36eebb733 100644 (file)
@@ -1,10 +1,22 @@
+From e988390850731aa1697ed09d47b0932fac1af175 Mon Sep 17 00:00:00 2001
 From: Felix Fietkau <nbd@nbd.name>
-Subject: [PATCH] bridge: port isolate
+Date: Fri, 7 Jul 2017 17:20:03 +0200
+Subject: bridge: port isolate
 
 Isolating individual bridge ports
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
---- a/include/linux/if_bridge.h
-+++ b/include/linux/if_bridge.h
+ include/linux/if_bridge.h | 1 +
+ net/bridge/br_forward.c   | 5 +++++
+ net/bridge/br_input.c     | 3 +++
+ net/bridge/br_sysfs_if.c  | 2 ++
+ 4 files changed, 11 insertions(+)
+
+Index: linux-4.9.34/include/linux/if_bridge.h
+===================================================================
+--- linux-4.9.34.orig/include/linux/if_bridge.h
++++ linux-4.9.34/include/linux/if_bridge.h
 @@ -47,6 +47,7 @@ struct br_ip_list {
  #define BR_PROXYARP_WIFI      BIT(10)
  #define BR_MCAST_FLOOD                BIT(11)
@@ -13,26 +25,10 @@ Isolating individual bridge ports
  
  #define BR_DEFAULT_AGEING_TIME        (300 * HZ)
  
---- a/net/bridge/br_sysfs_if.c
-+++ b/net/bridge/br_sysfs_if.c
-@@ -172,6 +172,7 @@ BRPORT_ATTR_FLAG(unicast_flood, BR_FLOOD
- BRPORT_ATTR_FLAG(proxyarp, BR_PROXYARP);
- BRPORT_ATTR_FLAG(proxyarp_wifi, BR_PROXYARP_WIFI);
- BRPORT_ATTR_FLAG(multicast_flood, BR_MCAST_FLOOD);
-+BRPORT_ATTR_FLAG(isolate_mode, BR_ISOLATE_MODE);
- #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
- static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf)
-@@ -220,6 +221,7 @@ static const struct brport_attribute *br
-       &brport_attr_proxyarp,
-       &brport_attr_proxyarp_wifi,
-       &brport_attr_multicast_flood,
-+      &brport_attr_isolate_mode,
-       NULL
- };
---- a/net/bridge/br_forward.c
-+++ b/net/bridge/br_forward.c
+Index: linux-4.9.34/net/bridge/br_forward.c
+===================================================================
+--- linux-4.9.34.orig/net/bridge/br_forward.c
++++ linux-4.9.34/net/bridge/br_forward.c
 @@ -141,6 +141,9 @@ static int deliver_clone(const struct ne
  void br_forward(const struct net_bridge_port *to,
                struct sk_buff *skb, bool local_rcv, bool local_orig)
@@ -52,8 +48,10 @@ Isolating individual bridge ports
                /* Do not flood unicast traffic to ports that turn it off */
                if (pkt_type == BR_PKT_UNICAST && !(p->flags & BR_FLOOD))
                        continue;
---- a/net/bridge/br_input.c
-+++ b/net/bridge/br_input.c
+Index: linux-4.9.34/net/bridge/br_input.c
+===================================================================
+--- linux-4.9.34.orig/net/bridge/br_input.c
++++ linux-4.9.34/net/bridge/br_input.c
 @@ -175,6 +175,9 @@ int br_handle_frame_finish(struct net *n
        if (IS_ENABLED(CONFIG_INET) && skb->protocol == htons(ETH_P_ARP))
                br_do_proxy_arp(skb, br, vid, p);
@@ -64,3 +62,23 @@ Isolating individual bridge ports
        switch (pkt_type) {
        case BR_PKT_MULTICAST:
                mdst = br_mdb_get(br, skb, vid);
+Index: linux-4.9.34/net/bridge/br_sysfs_if.c
+===================================================================
+--- linux-4.9.34.orig/net/bridge/br_sysfs_if.c
++++ linux-4.9.34/net/bridge/br_sysfs_if.c
+@@ -172,6 +172,7 @@ BRPORT_ATTR_FLAG(unicast_flood, BR_FLOOD
+ BRPORT_ATTR_FLAG(proxyarp, BR_PROXYARP);
+ BRPORT_ATTR_FLAG(proxyarp_wifi, BR_PROXYARP_WIFI);
+ BRPORT_ATTR_FLAG(multicast_flood, BR_MCAST_FLOOD);
++BRPORT_ATTR_FLAG(isolate_mode, BR_ISOLATE_MODE);
+ #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
+ static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf)
+@@ -220,6 +221,7 @@ static const struct brport_attribute *br
+       &brport_attr_proxyarp,
+       &brport_attr_proxyarp_wifi,
+       &brport_attr_multicast_flood,
++      &brport_attr_isolate_mode,
+       NULL
+ };
diff --git a/target/linux/generic/hack-4.9/651-wireless_mesh_header.patch b/target/linux/generic/hack-4.9/651-wireless_mesh_header.patch
new file mode 100644 (file)
index 0000000..67aa5e7
--- /dev/null
@@ -0,0 +1,29 @@
+From 6d3bc769657b0ee7c7506dad9911111c4226a7ea Mon Sep 17 00:00:00 2001
+From: Imre Kaloz <kaloz@openwrt.org>
+Date: Fri, 7 Jul 2017 17:21:05 +0200
+Subject: mac80211: increase wireless mesh header size
+
+lede-commit 3d4466cfd8f75f717efdb1f96fdde3c70d865fc1
+Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
+---
+ include/linux/netdevice.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index 780e7171f548..6e0f2c79f79a 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -137,8 +137,8 @@ static inline bool dev_xmit_complete(int rc)
+ #if defined(CONFIG_HYPERV_NET)
+ # define LL_MAX_HEADER 128
+-#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25)
+-# if defined(CONFIG_MAC80211_MESH)
++#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) || 1
++# if defined(CONFIG_MAC80211_MESH) || 1
+ #  define LL_MAX_HEADER 128
+ # else
+ #  define LL_MAX_HEADER 96
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/660-fq_codel_defaults.patch b/target/linux/generic/hack-4.9/660-fq_codel_defaults.patch
new file mode 100644 (file)
index 0000000..3bac10f
--- /dev/null
@@ -0,0 +1,26 @@
+From a6ccb238939b25851474a279b20367fd24a0e816 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:21:53 +0200
+Subject:  hack: net: fq_codel: tune defaults for small devices
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/sched/sch_fq_codel.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
+index a5ea0e9b6be4..4467b95795bf 100644
+--- a/net/sched/sch_fq_codel.c
++++ b/net/sched/sch_fq_codel.c
+@@ -479,7 +479,7 @@ static int fq_codel_init(struct Qdisc *sch, struct nlattr *opt)
+       sch->limit = 10*1024;
+       q->flows_cnt = 1024;
+-      q->memory_limit = 32 << 20; /* 32 MBytes */
++      q->memory_limit = 4 << 20; /* 4 MBytes */
+       q->drop_batch_size = 64;
+       q->quantum = psched_mtu(qdisc_dev(sch));
+       q->perturbation = prandom_u32();
+-- 
+2.11.0
+
similarity index 62%
rename from target/linux/generic/patches-4.9/661-use_fq_codel_by_default.patch
rename to target/linux/generic/hack-4.9/661-use_fq_codel_by_default.patch
index f94cca0d4fff4ccf6a1558207748e37c40376057..2d34cded0176e19d9a983c50ac158a6170de38e0 100644 (file)
@@ -1,3 +1,38 @@
+From 1d418f7e88035ed7a94073f6354246c66e9193e9 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:22:58 +0200
+Subject: fq_codel: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/net/sch_generic.h | 3 ++-
+ net/sched/Kconfig         | 3 ++-
+ net/sched/sch_api.c       | 2 +-
+ net/sched/sch_fq_codel.c  | 3 ++-
+ net/sched/sch_generic.c   | 4 ++--
+ 5 files changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
+index e6aa0a249672..9eeb368d7eea 100644
+--- a/include/net/sch_generic.h
++++ b/include/net/sch_generic.h
+@@ -339,12 +339,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
+ extern struct Qdisc_ops pfifo_fast_ops;
+ extern struct Qdisc_ops mq_qdisc_ops;
+ extern struct Qdisc_ops noqueue_qdisc_ops;
++extern struct Qdisc_ops fq_codel_qdisc_ops;
+ extern const struct Qdisc_ops *default_qdisc_ops;
+ static inline const struct Qdisc_ops *
+ get_default_qdisc_ops(const struct net_device *dev, int ntx)
+ {
+       return ntx < dev->real_num_tx_queues ?
+-                      default_qdisc_ops : &pfifo_fast_ops;
++                      default_qdisc_ops : &fq_codel_qdisc_ops;
+ }
+ struct Qdisc_class_common {
+diff --git a/net/sched/Kconfig b/net/sched/Kconfig
+index 87956a768d1b..89c6db93cb63 100644
 --- a/net/sched/Kconfig
 +++ b/net/sched/Kconfig
 @@ -3,8 +3,9 @@
        ---help---
          When the kernel has several packets to send out over a network
          device, it has to decide which ones to send first, which ones to
+diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
+index 206dc24add3a..9b5cfb6ac64b 100644
+--- a/net/sched/sch_api.c
++++ b/net/sched/sch_api.c
+@@ -1976,7 +1976,7 @@ static int __init pktsched_init(void)
+               return err;
+       }
+-      register_qdisc(&pfifo_fast_ops);
++      register_qdisc(&fq_codel_qdisc_ops);
+       register_qdisc(&pfifo_qdisc_ops);
+       register_qdisc(&bfifo_qdisc_ops);
+       register_qdisc(&pfifo_head_drop_qdisc_ops);
+diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
+index 4467b95795bf..2ebbf50658e5 100644
 --- a/net/sched/sch_fq_codel.c
 +++ b/net/sched/sch_fq_codel.c
-@@ -705,7 +705,7 @@ static const struct Qdisc_class_ops fq_c
+@@ -705,7 +705,7 @@ static const struct Qdisc_class_ops fq_codel_class_ops = {
        .walk           =       fq_codel_walk,
  };
  
@@ -22,7 +72,7 @@
        .cl_ops         =       &fq_codel_class_ops,
        .id             =       "fq_codel",
        .priv_size      =       sizeof(struct fq_codel_sched_data),
-@@ -720,6 +720,7 @@ static struct Qdisc_ops fq_codel_qdisc_o
+@@ -720,6 +720,7 @@ static struct Qdisc_ops fq_codel_qdisc_ops __read_mostly = {
        .dump_stats =   fq_codel_dump_stats,
        .owner          =       THIS_MODULE,
  };
  
  static int __init fq_codel_module_init(void)
  {
---- a/include/net/sch_generic.h
-+++ b/include/net/sch_generic.h
-@@ -339,12 +339,13 @@ extern struct Qdisc_ops noop_qdisc_ops;
- extern struct Qdisc_ops pfifo_fast_ops;
- extern struct Qdisc_ops mq_qdisc_ops;
- extern struct Qdisc_ops noqueue_qdisc_ops;
-+extern struct Qdisc_ops fq_codel_qdisc_ops;
- extern const struct Qdisc_ops *default_qdisc_ops;
- static inline const struct Qdisc_ops *
- get_default_qdisc_ops(const struct net_device *dev, int ntx)
- {
-       return ntx < dev->real_num_tx_queues ?
--                      default_qdisc_ops : &pfifo_fast_ops;
-+                      default_qdisc_ops : &fq_codel_qdisc_ops;
- }
- struct Qdisc_class_common {
+diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
+index 6cfb6e9038c2..97de97e3c5e2 100644
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
 @@ -31,7 +31,7 @@
@@ -58,7 +93,7 @@
  EXPORT_SYMBOL(default_qdisc_ops);
  
  /* Main transmission queue. */
-@@ -759,7 +759,7 @@ static void attach_one_default_qdisc(str
+@@ -759,7 +759,7 @@ static void attach_one_default_qdisc(struct net_device *dev,
                                     void *_unused)
  {
        struct Qdisc *qdisc;
  
        if (dev->priv_flags & IFF_NO_QUEUE)
                ops = &noqueue_qdisc_ops;
---- a/net/sched/sch_api.c
-+++ b/net/sched/sch_api.c
-@@ -1979,7 +1979,7 @@ static int __init pktsched_init(void)
-               return err;
-       }
--      register_qdisc(&pfifo_fast_ops);
-+      register_qdisc(&fq_codel_qdisc_ops);
-       register_qdisc(&pfifo_qdisc_ops);
-       register_qdisc(&bfifo_qdisc_ops);
-       register_qdisc(&pfifo_head_drop_qdisc_ops);
+-- 
+2.11.0
+
similarity index 86%
rename from target/linux/generic/patches-4.9/662-remove_pfifo_fast.patch
rename to target/linux/generic/hack-4.9/662-remove_pfifo_fast.patch
index 60ad1ea8367fbf53fd258d8047641e5f423b9780..aaa0d768430cee00feb8b808a1b0c1592b0a2be3 100644 (file)
@@ -1,6 +1,18 @@
+From b531d492d5ef1cf9dba0f4888eb5fd8624a6d762 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:23:42 +0200
+Subject: net: sched: switch default qdisc from pfifo_fast to fq_codel and remove pfifo_fast
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/sched/sch_generic.c | 140 ------------------------------------------------
+ 1 file changed, 140 deletions(-)
+
+diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
+index 97de97e3c5e2..a62de9e4e897 100644
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -449,146 +449,6 @@ struct Qdisc_ops noqueue_qdisc_ops __rea
+@@ -449,146 +449,6 @@ struct Qdisc_ops noqueue_qdisc_ops __read_mostly = {
        .owner          =       THIS_MODULE,
  };
  
  static struct lock_class_key qdisc_tx_busylock;
  static struct lock_class_key qdisc_running_key;
  
+-- 
+2.11.0
+
similarity index 82%
rename from target/linux/generic/patches-4.9/700-swconfig_switch_drivers.patch
rename to target/linux/generic/hack-4.9/700-swconfig_switch_drivers.patch
index 8b3fbccc179b2d0dec13543b8903085d3c3a60f1..47715dcc28445cff034ab37637bf5fd7c2feb491 100644 (file)
@@ -1,3 +1,17 @@
+From 36e516290611e613aa92996cb4339561452695b4 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:24:23 +0200
+Subject: net: swconfig: adds openwrt switch layer
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/net/phy/Kconfig   | 83 +++++++++++++++++++++++++++++++++++++++++++++++
+ drivers/net/phy/Makefile  | 15 +++++++++
+ include/uapi/linux/Kbuild |  1 +
+ 3 files changed, 99 insertions(+)
+
+diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
+index 2651c8d8de2f..a920adb78fea 100644
 --- a/drivers/net/phy/Kconfig
 +++ b/drivers/net/phy/Kconfig
 @@ -147,6 +147,89 @@ config MDIO_XGENE
  comment "MII PHY device drivers"
  
  config AMD_PHY
+diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
+index e58667d111e7..542b6be8953a 100644
 --- a/drivers/net/phy/Makefile
 +++ b/drivers/net/phy/Makefile
 @@ -5,6 +5,21 @@ libphy-$(CONFIG_SWPHY)                += swphy.o
  obj-$(CONFIG_MDIO_BCM_IPROC)  += mdio-bcm-iproc.o
  obj-$(CONFIG_MDIO_BCM_UNIMAC) += mdio-bcm-unimac.o
  obj-$(CONFIG_MDIO_BITBANG)    += mdio-bitbang.o
+diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
+index cd2be1c8e9fb..ccdd8d586ab8 100644
 --- a/include/uapi/linux/Kbuild
 +++ b/include/uapi/linux/Kbuild
 @@ -399,6 +399,7 @@ header-y += stddef.h
  header-y += synclink.h
  header-y += sync_file.h
  header-y += sysctl.h
+-- 
+2.11.0
+
similarity index 68%
rename from target/linux/generic/patches-4.9/721-phy_packets.patch
rename to target/linux/generic/hack-4.9/721-phy_packets.patch
index 2123f01cb2afccfd081ecfeb705e30b4e365fff7..3cb44235c9d1c61b05045a6de10d0a20dd7a0d8e 100644 (file)
@@ -1,5 +1,22 @@
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
+From ffe387740bbe88dd88bbe04d6375902708003d6e Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 7 Jul 2017 17:25:00 +0200
+Subject: net: add packet mangeling patch
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/netdevice.h | 11 +++++++++++
+ include/linux/skbuff.h    | 14 ++++----------
+ net/Kconfig               |  6 ++++++
+ net/core/dev.c            | 18 ++++++++++++++----
+ net/core/skbuff.c         | 17 +++++++++++++++++
+ net/ethernet/eth.c        |  6 ++++++
+ 6 files changed, 58 insertions(+), 14 deletions(-)
+
+Index: linux-4.9.34/include/linux/netdevice.h
+===================================================================
+--- linux-4.9.34.orig/include/linux/netdevice.h
++++ linux-4.9.34/include/linux/netdevice.h
 @@ -1398,6 +1398,7 @@ enum netdev_priv_flags {
        IFF_RXFH_CONFIGURED             = 1<<25,
        IFF_PHONY_HEADROOM              = 1<<26,
  /*
   * Cache lines mostly used on receive path (including eth_type_trans())
   */
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
+Index: linux-4.9.34/include/linux/skbuff.h
+===================================================================
+--- linux-4.9.34.orig/include/linux/skbuff.h
++++ linux-4.9.34/include/linux/skbuff.h
 @@ -2334,6 +2334,10 @@ static inline int pskb_trim(struct sk_bu
        return (len < skb->len) ? __pskb_trim(skb, len) : 0;
  }
  static inline struct sk_buff *netdev_alloc_skb_ip_align(struct net_device *dev,
                unsigned int length)
  {
---- a/net/Kconfig
-+++ b/net/Kconfig
+Index: linux-4.9.34/net/Kconfig
+===================================================================
+--- linux-4.9.34.orig/net/Kconfig
++++ linux-4.9.34/net/Kconfig
 @@ -25,6 +25,12 @@ menuconfig NET
  
  if NET
  config WANT_COMPAT_NETLINK_MESSAGES
        bool
        help
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -2932,10 +2932,20 @@ static int xmit_one(struct sk_buff *skb,
+Index: linux-4.9.34/net/core/dev.c
+===================================================================
+--- linux-4.9.34.orig/net/core/dev.c
++++ linux-4.9.34/net/core/dev.c
+@@ -2931,10 +2931,20 @@ static int xmit_one(struct sk_buff *skb,
        if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
                dev_queue_xmit_nit(skb, dev);
  
  
        return rc;
  }
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
+Index: linux-4.9.34/net/core/skbuff.c
+===================================================================
+--- linux-4.9.34.orig/net/core/skbuff.c
++++ linux-4.9.34/net/core/skbuff.c
 @@ -64,6 +64,7 @@
  #include <linux/errqueue.h>
  #include <linux/prefetch.h>
  void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off,
                     int size, unsigned int truesize)
  {
---- a/net/ethernet/eth.c
-+++ b/net/ethernet/eth.c
+Index: linux-4.9.34/net/ethernet/eth.c
+===================================================================
+--- linux-4.9.34.orig/net/ethernet/eth.c
++++ linux-4.9.34/net/ethernet/eth.c
 @@ -171,6 +171,12 @@ __be16 eth_type_trans(struct sk_buff *sk
        const struct ethhdr *eth;
  
similarity index 66%
rename from target/linux/generic/patches-4.9/773-bgmac-add-srab-switch.patch
rename to target/linux/generic/hack-4.9/773-bgmac-add-srab-switch.patch
index 81055fa5586881a3db71115c23cc7086e64bb05e..8e353a2f6ddb50818037df00e4614910bfffd9be 100644 (file)
@@ -1,9 +1,33 @@
-Register switch connected to srab
+From 3cb240533ab787899dc7f17aa7d6c5b4810e2e58 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Fri, 7 Jul 2017 17:26:01 +0200
+Subject: bcm53xx: bgmac: use srab switch driver
+
+use the srab switch driver on these SoCs.
 
 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ drivers/net/ethernet/broadcom/bgmac-bcma.c |  1 +
+ drivers/net/ethernet/broadcom/bgmac.c      | 24 ++++++++++++++++++++++++
+ drivers/net/ethernet/broadcom/bgmac.h      |  4 ++++
+ 3 files changed, 29 insertions(+)
 
---- a/drivers/net/ethernet/broadcom/bgmac.c
-+++ b/drivers/net/ethernet/broadcom/bgmac.c
+Index: linux-4.9.34/drivers/net/ethernet/broadcom/bgmac-bcma.c
+===================================================================
+--- linux-4.9.34.orig/drivers/net/ethernet/broadcom/bgmac-bcma.c
++++ linux-4.9.34/drivers/net/ethernet/broadcom/bgmac-bcma.c
+@@ -230,6 +230,7 @@ static int bgmac_probe(struct bcma_devic
+               bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
+               bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
+               bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
++              bgmac->feature_flags |= BGMAC_FEAT_SRAB;
+               break;
+       case BCMA_CHIP_ID_BCM53573:
+               bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
+Index: linux-4.9.34/drivers/net/ethernet/broadcom/bgmac.c
+===================================================================
+--- linux-4.9.34.orig/drivers/net/ethernet/broadcom/bgmac.c
++++ linux-4.9.34/drivers/net/ethernet/broadcom/bgmac.c
 @@ -11,6 +11,7 @@
  
  #include <linux/bcma/bcma.h>
@@ -56,8 +80,10 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
        unregister_netdev(bgmac->net_dev);
        phy_disconnect(bgmac->net_dev->phydev);
        netif_napi_del(&bgmac->napi);
---- a/drivers/net/ethernet/broadcom/bgmac.h
-+++ b/drivers/net/ethernet/broadcom/bgmac.h
+Index: linux-4.9.34/drivers/net/ethernet/broadcom/bgmac.h
+===================================================================
+--- linux-4.9.34.orig/drivers/net/ethernet/broadcom/bgmac.h
++++ linux-4.9.34/drivers/net/ethernet/broadcom/bgmac.h
 @@ -409,6 +409,7 @@
  #define BGMAC_FEAT_CC4_IF_SW_TYPE     BIT(17)
  #define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII       BIT(18)
@@ -76,13 +102,3 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
  };
  
  struct bgmac *bgmac_alloc(struct device *dev);
---- a/drivers/net/ethernet/broadcom/bgmac-bcma.c
-+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c
-@@ -230,6 +230,7 @@ static int bgmac_probe(struct bcma_devic
-               bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
-               bgmac->feature_flags |= BGMAC_FEAT_NO_RESET;
-               bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500;
-+              bgmac->feature_flags |= BGMAC_FEAT_SRAB;
-               break;
-       case BCMA_CHIP_ID_BCM53573:
-               bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST;
diff --git a/target/linux/generic/hack-4.9/835-misc-owl_loader.patch b/target/linux/generic/hack-4.9/835-misc-owl_loader.patch
new file mode 100644 (file)
index 0000000..1c7a28a
--- /dev/null
@@ -0,0 +1,59 @@
+From dd36f935973d91644449bd9749f6062a2bed821b Mon Sep 17 00:00:00 2001
+From: Christian Lamparter <chunkeey@googlemail.com>
+Date: Fri, 7 Jul 2017 17:26:46 +0200
+Subject: misc: owl-loader for delayed Atheros ath9k fixup
+
+Some devices (like the Cisco Meraki Z1 Cloud Managed Teleworker Gateway)
+need to be able to initialize the PCIe wifi device. Normally, this is done
+during the early stages of booting linux, because the necessary init code
+is read from the memory mapped SPI and passed to pci_enable_ath9k_fixup.
+However,this isn't possible for devices which have the init code for the
+Atheros chip stored on NAND in an UBI volume. Hence, this module can be
+used to initialze the chip when the user-space is ready to extract the
+init code.
+
+Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
+Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
+---
+ drivers/misc/Kconfig  | 12 ++++++++++++
+ drivers/misc/Makefile |  1 +
+ 2 files changed, 13 insertions(+)
+
+diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
+index 64971baf11fa..50d2eaa75d41 100644
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -151,6 +151,18 @@ config SGI_IOC4
+         If you have an SGI Altix with an IOC4-based card say Y.
+         Otherwise say N.
++config OWL_LOADER
++      tristate "Owl loader for initializing Atheros PCI(e) Wifi chips"
++      depends on PCI
++      ---help---
++      This kernel module helps to initialize certain Qualcomm
++      Atheros' PCI(e) Wifi chips, which have the init data
++      (which contains the PCI device ID for example) stored
++      together with the calibration data in the file system.
++
++      This is necessary for devices like the Cisco Meraki Z1, say M.
++      Otherwise say N.
++
+ config TIFM_CORE
+       tristate "TI Flash Media interface support"
+       depends on PCI
+diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
+index 31983366090a..48c7e74a6e5a 100644
+--- a/drivers/misc/Makefile
++++ b/drivers/misc/Makefile
+@@ -12,6 +12,7 @@ obj-$(CONFIG_ATMEL_TCLIB)    += atmel_tclib.o
+ obj-$(CONFIG_DUMMY_IRQ)               += dummy-irq.o
+ obj-$(CONFIG_ICS932S401)      += ics932s401.o
+ obj-$(CONFIG_LKDTM)           += lkdtm.o
++obj-$(CONFIG_OWL_LOADER)      += owl-loader.o
+ obj-$(CONFIG_TIFM_CORE)               += tifm_core.o
+ obj-$(CONFIG_TIFM_7XX1)               += tifm_7xx1.o
+ obj-$(CONFIG_PHANTOM)         += phantom.o
+-- 
+2.11.0
+
similarity index 61%
rename from target/linux/generic/patches-4.9/901-debloat_sock_diag.patch
rename to target/linux/generic/hack-4.9/901-debloat_sock_diag.patch
index 2fc52c8ab03d243120a58c0276d41d86c740f978..d46e2ca1e78bcd4f84946ced943683a3db8eb955 100644 (file)
@@ -1,3 +1,21 @@
+From 3b6115d6b57a263bdc8c9b1df273bd4a7955eead Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 8 Jul 2017 08:16:31 +0200
+Subject: debloat: add some debloat patches, strip down procfs and make O_DIRECT support optional, saves ~15K after lzma on MIPS
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/Kconfig         | 3 +++
+ net/core/Makefile   | 3 ++-
+ net/core/sock.c     | 2 ++
+ net/ipv4/Kconfig    | 1 +
+ net/netlink/Kconfig | 1 +
+ net/packet/Kconfig  | 1 +
+ net/unix/Kconfig    | 1 +
+ 7 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/net/Kconfig b/net/Kconfig
+index 38a0c857eb52..b4621e1f3470 100644
 --- a/net/Kconfig
 +++ b/net/Kconfig
 @@ -95,6 +95,9 @@ source "net/netlabel/Kconfig"
  config NETWORK_SECMARK
        bool "Security Marking"
        help
+diff --git a/net/core/Makefile b/net/core/Makefile
+index d6508c2ddca5..bee4adde14d8 100644
 --- a/net/core/Makefile
 +++ b/net/core/Makefile
-@@ -9,8 +9,9 @@ obj-$(CONFIG_SYSCTL) += sysctl_net_core.
+@@ -9,8 +9,9 @@ obj-$(CONFIG_SYSCTL) += sysctl_net_core.o
  
  obj-y              += dev.o ethtool.o dev_addr_lists.o dst.o netevent.o \
                        neighbour.o rtnetlink.o utils.o link_watch.o filter.o \
@@ -23,6 +43,8 @@
  obj-$(CONFIG_XFRM) += flow.o
  obj-y += net-sysfs.o
  obj-$(CONFIG_PROC_FS) += net-procfs.o
+diff --git a/net/core/sock.c b/net/core/sock.c
+index 1989b3dd6d17..d4ca8db4166a 100644
 --- a/net/core/sock.c
 +++ b/net/core/sock.c
 @@ -1457,9 +1457,11 @@ void sk_destruct(struct sock *sk)
@@ -37,6 +59,8 @@
                sk_destruct(sk);
  }
  
+diff --git a/net/ipv4/Kconfig b/net/ipv4/Kconfig
+index b54b3ca939db..74ecf598622c 100644
 --- a/net/ipv4/Kconfig
 +++ b/net/ipv4/Kconfig
 @@ -408,6 +408,7 @@ config INET_XFRM_MODE_BEET
        default y
        ---help---
          Support for INET (TCP, DCCP, etc) socket monitoring interface used by
---- a/net/unix/Kconfig
-+++ b/net/unix/Kconfig
-@@ -22,6 +22,7 @@ config UNIX
- config UNIX_DIAG
-       tristate "UNIX: socket monitoring interface"
-       depends on UNIX
-+      select SOCK_DIAG
-       default n
-       ---help---
-         Support for UNIX socket monitoring interface used by the ss tool.
+diff --git a/net/netlink/Kconfig b/net/netlink/Kconfig
+index 5d6e8c05b3d4..8a2696d66c20 100644
 --- a/net/netlink/Kconfig
 +++ b/net/netlink/Kconfig
 @@ -4,6 +4,7 @@
@@ -67,6 +83,8 @@
        default n
        ---help---
          Support for NETLINK socket monitoring interface used by the ss tool.
+diff --git a/net/packet/Kconfig b/net/packet/Kconfig
+index cc55b35f80e5..9a83c86f5480 100644
 --- a/net/packet/Kconfig
 +++ b/net/packet/Kconfig
 @@ -18,6 +18,7 @@ config PACKET
        default n
        ---help---
          Support for PF_PACKET sockets monitoring interface used by the ss tool.
+diff --git a/net/unix/Kconfig b/net/unix/Kconfig
+index 8b31ab85d050..6548cf3ea7f1 100644
+--- a/net/unix/Kconfig
++++ b/net/unix/Kconfig
+@@ -22,6 +22,7 @@ config UNIX
+ config UNIX_DIAG
+       tristate "UNIX: socket monitoring interface"
+       depends on UNIX
++      select SOCK_DIAG
+       default n
+       ---help---
+         Support for UNIX socket monitoring interface used by the ss tool.
+-- 
+2.11.0
+
similarity index 68%
rename from target/linux/generic/patches-4.9/902-debloat_proc.patch
rename to target/linux/generic/hack-4.9/902-debloat_proc.patch
index 1894757f22e2b2822f6fcf42d5537a00403025f8..5a2eb2bcf0b9b663596ddd1ded2a7ec88eceb2f4 100644 (file)
@@ -1,5 +1,36 @@
---- a/fs/locks.c
-+++ b/fs/locks.c
+From 9e3f1d0805b2d919904dd9a4ff0d956314cc3cba Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 8 Jul 2017 08:20:09 +0200
+Subject: debloat: procfs
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ fs/locks.c               |  2 ++
+ fs/proc/Kconfig          |  5 +++++
+ fs/proc/consoles.c       |  3 +++
+ fs/proc/proc_tty.c       | 11 ++++++++++-
+ include/net/snmp.h       | 18 +++++++++++++++++-
+ ipc/msg.c                |  3 +++
+ ipc/sem.c                |  2 ++
+ ipc/shm.c                |  2 ++
+ ipc/util.c               |  3 +++
+ kernel/exec_domain.c     |  2 ++
+ kernel/irq/proc.c        |  9 +++++++++
+ kernel/time/timer_list.c |  2 ++
+ mm/vmalloc.c             |  2 ++
+ mm/vmstat.c              |  8 +++++---
+ net/8021q/vlanproc.c     |  6 ++++++
+ net/core/net-procfs.c    | 18 ++++++++++++------
+ net/core/sock.c          |  2 ++
+ net/ipv4/fib_trie.c      | 18 ++++++++++++------
+ net/ipv4/proc.c          |  3 +++
+ net/ipv4/route.c         |  3 +++
+ 20 files changed, 105 insertions(+), 17 deletions(-)
+
+Index: linux-4.9.34/fs/locks.c
+===================================================================
+--- linux-4.9.34.orig/fs/locks.c
++++ linux-4.9.34/fs/locks.c
 @@ -2802,6 +2802,8 @@ static const struct file_operations proc
  
  static int __init proc_locks_init(void)
@@ -9,8 +40,10 @@
        proc_create("locks", 0, NULL, &proc_locks_operations);
        return 0;
  }
---- a/fs/proc/Kconfig
-+++ b/fs/proc/Kconfig
+Index: linux-4.9.34/fs/proc/Kconfig
+===================================================================
+--- linux-4.9.34.orig/fs/proc/Kconfig
++++ linux-4.9.34/fs/proc/Kconfig
 @@ -81,3 +81,8 @@ config PROC_CHILDREN
  
          Say Y if you are running any user-space software which takes benefit from
 +      default n
 +      depends on EXPERT
 +      bool "Strip non-essential /proc functionality to reduce code size"
---- a/fs/proc/consoles.c
-+++ b/fs/proc/consoles.c
+Index: linux-4.9.34/fs/proc/consoles.c
+===================================================================
+--- linux-4.9.34.orig/fs/proc/consoles.c
++++ linux-4.9.34/fs/proc/consoles.c
 @@ -106,6 +106,9 @@ static const struct file_operations proc
  
  static int __init proc_consoles_init(void)
        proc_create("consoles", 0, NULL, &proc_consoles_operations);
        return 0;
  }
---- a/fs/proc/proc_tty.c
-+++ b/fs/proc/proc_tty.c
+Index: linux-4.9.34/fs/proc/proc_tty.c
+===================================================================
+--- linux-4.9.34.orig/fs/proc/proc_tty.c
++++ linux-4.9.34/fs/proc/proc_tty.c
 @@ -143,7 +143,10 @@ static const struct file_operations proc
  void proc_tty_register_driver(struct tty_driver *driver)
  {
        if (!proc_mkdir("tty", NULL))
                return;
        proc_mkdir("tty/ldisc", NULL);  /* Preserved: it's userspace visible */
---- a/kernel/exec_domain.c
-+++ b/kernel/exec_domain.c
+Index: linux-4.9.34/include/net/snmp.h
+===================================================================
+--- linux-4.9.34.orig/include/net/snmp.h
++++ linux-4.9.34/include/net/snmp.h
+@@ -123,6 +123,21 @@ struct linux_xfrm_mib {
+ #define DECLARE_SNMP_STAT(type, name) \
+       extern __typeof__(type) __percpu *name
++#ifdef CONFIG_PROC_STRIPPED
++#define __SNMP_STATS_DUMMY(mib)       \
++      do { (void) mib->mibs[0]; } while(0)
++
++#define __SNMP_INC_STATS(mib, field) __SNMP_STATS_DUMMY(mib)
++#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) __SNMP_STATS_DUMMY(mib)
++#define SNMP_INC_STATS(mib, field) __SNMP_STATS_DUMMY(mib)
++#define SNMP_DEC_STATS(mib, field) __SNMP_STATS_DUMMY(mib)
++#define __SNMP_ADD_STATS(mib, field, addend) __SNMP_STATS_DUMMY(mib)
++#define SNMP_ADD_STATS(mib, field, addend) __SNMP_STATS_DUMMY(mib)
++#define SNMP_UPD_PO_STATS(mib, basefield, addend) __SNMP_STATS_DUMMY(mib)
++#define __SNMP_UPD_PO_STATS(mib, basefield, addend) __SNMP_STATS_DUMMY(mib)
++
++#else
++
+ #define __SNMP_INC_STATS(mib, field)  \
+                       __this_cpu_inc(mib->mibs[field])
+@@ -153,8 +168,9 @@ struct linux_xfrm_mib {
+               __this_cpu_add(ptr[basefield##OCTETS], addend); \
+       } while (0)
++#endif
+-#if BITS_PER_LONG==32
++#if (BITS_PER_LONG==32) && !defined(CONFIG_PROC_STRIPPED)
+ #define __SNMP_ADD_STATS64(mib, field, addend)                                \
+       do {                                                            \
+Index: linux-4.9.34/ipc/msg.c
+===================================================================
+--- linux-4.9.34.orig/ipc/msg.c
++++ linux-4.9.34/ipc/msg.c
+@@ -1058,6 +1058,9 @@ void __init msg_init(void)
+ {
+       msg_init_ns(&init_ipc_ns);
++      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++              return;
++
+       ipc_init_proc_interface("sysvipc/msg",
+                               "       key      msqid perms      cbytes       qnum lspid lrpid   uid   gid  cuid  cgid      stime      rtime      ctime\n",
+                               IPC_MSG_IDS, sysvipc_msg_proc_show);
+Index: linux-4.9.34/ipc/sem.c
+===================================================================
+--- linux-4.9.34.orig/ipc/sem.c
++++ linux-4.9.34/ipc/sem.c
+@@ -205,6 +205,8 @@ void sem_exit_ns(struct ipc_namespace *n
+ void __init sem_init(void)
+ {
+       sem_init_ns(&init_ipc_ns);
++      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++              return;
+       ipc_init_proc_interface("sysvipc/sem",
+                               "       key      semid perms      nsems   uid   gid  cuid  cgid      otime      ctime\n",
+                               IPC_SEM_IDS, sysvipc_sem_proc_show);
+Index: linux-4.9.34/ipc/shm.c
+===================================================================
+--- linux-4.9.34.orig/ipc/shm.c
++++ linux-4.9.34/ipc/shm.c
+@@ -118,6 +118,8 @@ pure_initcall(ipc_ns_init);
+ void __init shm_init(void)
+ {
++      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++              return;
+       ipc_init_proc_interface("sysvipc/shm",
+ #if BITS_PER_LONG <= 32
+                               "       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgid      atime      dtime      ctime        rss       swap\n",
+Index: linux-4.9.34/ipc/util.c
+===================================================================
+--- linux-4.9.34.orig/ipc/util.c
++++ linux-4.9.34/ipc/util.c
+@@ -121,6 +121,9 @@ void __init ipc_init_proc_interface(cons
+       struct proc_dir_entry *pde;
+       struct ipc_proc_iface *iface;
++      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
++              return;
++
+       iface = kmalloc(sizeof(*iface), GFP_KERNEL);
+       if (!iface)
+               return;
+Index: linux-4.9.34/kernel/exec_domain.c
+===================================================================
+--- linux-4.9.34.orig/kernel/exec_domain.c
++++ linux-4.9.34/kernel/exec_domain.c
 @@ -41,6 +41,8 @@ static const struct file_operations exec
  
  static int __init proc_execdomains_init(void)
        proc_create("execdomains", 0, NULL, &execdomains_proc_fops);
        return 0;
  }
---- a/kernel/irq/proc.c
-+++ b/kernel/irq/proc.c
+Index: linux-4.9.34/kernel/irq/proc.c
+===================================================================
+--- linux-4.9.34.orig/kernel/irq/proc.c
++++ linux-4.9.34/kernel/irq/proc.c
 @@ -326,6 +326,9 @@ void register_irq_proc(unsigned int irq,
        static DEFINE_MUTEX(register_lock);
        char name [MAX_NAMELEN];
        /* create /proc/irq */
        root_irq_dir = proc_mkdir("irq", NULL);
        if (!root_irq_dir)
---- a/kernel/time/timer_list.c
-+++ b/kernel/time/timer_list.c
+Index: linux-4.9.34/kernel/time/timer_list.c
+===================================================================
+--- linux-4.9.34.orig/kernel/time/timer_list.c
++++ linux-4.9.34/kernel/time/timer_list.c
 @@ -393,6 +393,8 @@ static int __init init_timer_list_procfs
  {
        struct proc_dir_entry *pe;
        pe = proc_create("timer_list", 0444, NULL, &timer_list_fops);
        if (!pe)
                return -ENOMEM;
---- a/mm/vmalloc.c
-+++ b/mm/vmalloc.c
-@@ -2713,6 +2713,8 @@ static const struct file_operations proc
+Index: linux-4.9.34/mm/vmalloc.c
+===================================================================
+--- linux-4.9.34.orig/mm/vmalloc.c
++++ linux-4.9.34/mm/vmalloc.c
+@@ -2703,6 +2703,8 @@ static const struct file_operations proc
  
  static int __init proc_vmalloc_init(void)
  {
        proc_create("vmallocinfo", S_IRUSR, NULL, &proc_vmalloc_operations);
        return 0;
  }
---- a/mm/vmstat.c
-+++ b/mm/vmstat.c
+Index: linux-4.9.34/mm/vmstat.c
+===================================================================
+--- linux-4.9.34.orig/mm/vmstat.c
++++ linux-4.9.34/mm/vmstat.c
 @@ -1791,10 +1791,12 @@ static int __init setup_vmstat(void)
        cpu_notifier_register_done();
  #endif
  #endif
        return 0;
  }
---- a/net/8021q/vlanproc.c
-+++ b/net/8021q/vlanproc.c
+Index: linux-4.9.34/net/8021q/vlanproc.c
+===================================================================
+--- linux-4.9.34.orig/net/8021q/vlanproc.c
++++ linux-4.9.34/net/8021q/vlanproc.c
 @@ -127,6 +127,9 @@ void vlan_proc_cleanup(struct net *net)
  {
        struct vlan_net *vn = net_generic(net, vlan_net_id);
        vn->proc_vlan_dir = proc_net_mkdir(net, name_root, net->proc_net);
        if (!vn->proc_vlan_dir)
                goto err;
---- a/net/core/sock.c
-+++ b/net/core/sock.c
+Index: linux-4.9.34/net/core/net-procfs.c
+===================================================================
+--- linux-4.9.34.orig/net/core/net-procfs.c
++++ linux-4.9.34/net/core/net-procfs.c
+@@ -319,10 +319,12 @@ static int __net_init dev_proc_net_init(
+       if (!proc_create("dev", S_IRUGO, net->proc_net, &dev_seq_fops))
+               goto out;
+-      if (!proc_create("softnet_stat", S_IRUGO, net->proc_net,
++      if (!IS_ENABLED(CONFIG_PROC_STRIPPED) &&
++              !proc_create("softnet_stat", S_IRUGO, net->proc_net,
+                        &softnet_seq_fops))
+               goto out_dev;
+-      if (!proc_create("ptype", S_IRUGO, net->proc_net, &ptype_seq_fops))
++      if (!IS_ENABLED(CONFIG_PROC_STRIPPED) &&
++              !proc_create("ptype", S_IRUGO, net->proc_net, &ptype_seq_fops))
+               goto out_softnet;
+       if (wext_proc_init(net))
+@@ -331,9 +333,11 @@ static int __net_init dev_proc_net_init(
+ out:
+       return rc;
+ out_ptype:
+-      remove_proc_entry("ptype", net->proc_net);
++      if (!IS_ENABLED(CONFIG_PROC_STRIPPED))
++              remove_proc_entry("ptype", net->proc_net);
+ out_softnet:
+-      remove_proc_entry("softnet_stat", net->proc_net);
++      if (!IS_ENABLED(CONFIG_PROC_STRIPPED))
++              remove_proc_entry("softnet_stat", net->proc_net);
+ out_dev:
+       remove_proc_entry("dev", net->proc_net);
+       goto out;
+@@ -343,8 +347,10 @@ static void __net_exit dev_proc_net_exit
+ {
+       wext_proc_exit(net);
+-      remove_proc_entry("ptype", net->proc_net);
+-      remove_proc_entry("softnet_stat", net->proc_net);
++      if (!IS_ENABLED(CONFIG_PROC_STRIPPED)) {
++              remove_proc_entry("ptype", net->proc_net);
++              remove_proc_entry("softnet_stat", net->proc_net);
++      }
+       remove_proc_entry("dev", net->proc_net);
+ }
+Index: linux-4.9.34/net/core/sock.c
+===================================================================
+--- linux-4.9.34.orig/net/core/sock.c
++++ linux-4.9.34/net/core/sock.c
 @@ -3082,6 +3082,8 @@ static __net_initdata struct pernet_oper
  
  static int __init proto_init(void)
        return register_pernet_subsys(&proto_net_ops);
  }
  
---- a/net/ipv4/fib_trie.c
-+++ b/net/ipv4/fib_trie.c
+Index: linux-4.9.34/net/ipv4/fib_trie.c
+===================================================================
+--- linux-4.9.34.orig/net/ipv4/fib_trie.c
++++ linux-4.9.34/net/ipv4/fib_trie.c
 @@ -2667,10 +2667,12 @@ static const struct file_operations fib_
  
  int __net_init fib_proc_init(struct net *net)
        remove_proc_entry("route", net->proc_net);
  }
  
---- a/net/ipv4/proc.c
-+++ b/net/ipv4/proc.c
+Index: linux-4.9.34/net/ipv4/proc.c
+===================================================================
+--- linux-4.9.34.orig/net/ipv4/proc.c
++++ linux-4.9.34/net/ipv4/proc.c
 @@ -564,6 +564,9 @@ static __net_initdata struct pernet_oper
  
  int __init ip_misc_proc_init(void)
        return register_pernet_subsys(&ip_proc_ops);
  }
  
---- a/net/ipv4/route.c
-+++ b/net/ipv4/route.c
+Index: linux-4.9.34/net/ipv4/route.c
+===================================================================
+--- linux-4.9.34.orig/net/ipv4/route.c
++++ linux-4.9.34/net/ipv4/route.c
 @@ -420,6 +420,9 @@ static struct pernet_operations ip_rt_pr
  
  static int __init ip_rt_proc_init(void)
        return register_pernet_subsys(&ip_rt_proc_ops);
  }
  
---- a/ipc/msg.c
-+++ b/ipc/msg.c
-@@ -1058,6 +1058,9 @@ void __init msg_init(void)
- {
-       msg_init_ns(&init_ipc_ns);
-+      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
-+              return;
-+
-       ipc_init_proc_interface("sysvipc/msg",
-                               "       key      msqid perms      cbytes       qnum lspid lrpid   uid   gid  cuid  cgid      stime      rtime      ctime\n",
-                               IPC_MSG_IDS, sysvipc_msg_proc_show);
---- a/ipc/sem.c
-+++ b/ipc/sem.c
-@@ -205,6 +205,8 @@ void sem_exit_ns(struct ipc_namespace *n
- void __init sem_init(void)
- {
-       sem_init_ns(&init_ipc_ns);
-+      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
-+              return;
-       ipc_init_proc_interface("sysvipc/sem",
-                               "       key      semid perms      nsems   uid   gid  cuid  cgid      otime      ctime\n",
-                               IPC_SEM_IDS, sysvipc_sem_proc_show);
---- a/ipc/shm.c
-+++ b/ipc/shm.c
-@@ -118,6 +118,8 @@ pure_initcall(ipc_ns_init);
- void __init shm_init(void)
- {
-+      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
-+              return;
-       ipc_init_proc_interface("sysvipc/shm",
- #if BITS_PER_LONG <= 32
-                               "       key      shmid perms       size  cpid  lpid nattch   uid   gid  cuid  cgid      atime      dtime      ctime        rss       swap\n",
---- a/ipc/util.c
-+++ b/ipc/util.c
-@@ -121,6 +121,9 @@ void __init ipc_init_proc_interface(cons
-       struct proc_dir_entry *pde;
-       struct ipc_proc_iface *iface;
-+      if (IS_ENABLED(CONFIG_PROC_STRIPPED))
-+              return;
-+
-       iface = kmalloc(sizeof(*iface), GFP_KERNEL);
-       if (!iface)
-               return;
---- a/net/core/net-procfs.c
-+++ b/net/core/net-procfs.c
-@@ -319,10 +319,12 @@ static int __net_init dev_proc_net_init(
-       if (!proc_create("dev", S_IRUGO, net->proc_net, &dev_seq_fops))
-               goto out;
--      if (!proc_create("softnet_stat", S_IRUGO, net->proc_net,
-+      if (!IS_ENABLED(CONFIG_PROC_STRIPPED) &&
-+              !proc_create("softnet_stat", S_IRUGO, net->proc_net,
-                        &softnet_seq_fops))
-               goto out_dev;
--      if (!proc_create("ptype", S_IRUGO, net->proc_net, &ptype_seq_fops))
-+      if (!IS_ENABLED(CONFIG_PROC_STRIPPED) &&
-+              !proc_create("ptype", S_IRUGO, net->proc_net, &ptype_seq_fops))
-               goto out_softnet;
-       if (wext_proc_init(net))
-@@ -331,9 +333,11 @@ static int __net_init dev_proc_net_init(
- out:
-       return rc;
- out_ptype:
--      remove_proc_entry("ptype", net->proc_net);
-+      if (!IS_ENABLED(CONFIG_PROC_STRIPPED))
-+              remove_proc_entry("ptype", net->proc_net);
- out_softnet:
--      remove_proc_entry("softnet_stat", net->proc_net);
-+      if (!IS_ENABLED(CONFIG_PROC_STRIPPED))
-+              remove_proc_entry("softnet_stat", net->proc_net);
- out_dev:
-       remove_proc_entry("dev", net->proc_net);
-       goto out;
-@@ -343,8 +347,10 @@ static void __net_exit dev_proc_net_exit
- {
-       wext_proc_exit(net);
--      remove_proc_entry("ptype", net->proc_net);
--      remove_proc_entry("softnet_stat", net->proc_net);
-+      if (!IS_ENABLED(CONFIG_PROC_STRIPPED)) {
-+              remove_proc_entry("ptype", net->proc_net);
-+              remove_proc_entry("softnet_stat", net->proc_net);
-+      }
-       remove_proc_entry("dev", net->proc_net);
- }
---- a/include/net/snmp.h
-+++ b/include/net/snmp.h
-@@ -123,6 +123,21 @@ struct linux_xfrm_mib {
- #define DECLARE_SNMP_STAT(type, name) \
-       extern __typeof__(type) __percpu *name
-+#ifdef CONFIG_PROC_STRIPPED
-+#define __SNMP_STATS_DUMMY(mib)       \
-+      do { (void) mib->mibs[0]; } while(0)
-+
-+#define __SNMP_INC_STATS(mib, field) __SNMP_STATS_DUMMY(mib)
-+#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) __SNMP_STATS_DUMMY(mib)
-+#define SNMP_INC_STATS(mib, field) __SNMP_STATS_DUMMY(mib)
-+#define SNMP_DEC_STATS(mib, field) __SNMP_STATS_DUMMY(mib)
-+#define __SNMP_ADD_STATS(mib, field, addend) __SNMP_STATS_DUMMY(mib)
-+#define SNMP_ADD_STATS(mib, field, addend) __SNMP_STATS_DUMMY(mib)
-+#define SNMP_UPD_PO_STATS(mib, basefield, addend) __SNMP_STATS_DUMMY(mib)
-+#define __SNMP_UPD_PO_STATS(mib, basefield, addend) __SNMP_STATS_DUMMY(mib)
-+
-+#else
-+
- #define __SNMP_INC_STATS(mib, field)  \
-                       __this_cpu_inc(mib->mibs[field])
-@@ -153,8 +168,9 @@ struct linux_xfrm_mib {
-               __this_cpu_add(ptr[basefield##OCTETS], addend); \
-       } while (0)
-+#endif
--#if BITS_PER_LONG==32
-+#if (BITS_PER_LONG==32) && !defined(CONFIG_PROC_STRIPPED)
- #define __SNMP_ADD_STATS64(mib, field, addend)                                \
-       do {                                                            \
similarity index 59%
rename from target/linux/generic/patches-4.9/904-debloat_dma_buf.patch
rename to target/linux/generic/hack-4.9/904-debloat_dma_buf.patch
index 25c9851c5be9340e1b39daa1a12c14b7f0e07507..947471ae7828fb9777c148b0e26abf2411a1b627 100644 (file)
@@ -1,3 +1,18 @@
+From e3692cb2fcd5ba1244512a0f43b8118f65f1c375 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 8 Jul 2017 08:20:43 +0200
+Subject: debloat: dmabuf
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/base/Kconfig      |  2 +-
+ drivers/dma-buf/Makefile  | 10 +++++++---
+ drivers/dma-buf/dma-buf.c |  4 +++-
+ kernel/sched/core.c       |  1 +
+ 4 files changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
+index d02e7c0f5bfd..e1c0e2e0d3a8 100644
 --- a/drivers/base/Kconfig
 +++ b/drivers/base/Kconfig
 @@ -241,7 +241,7 @@ config SOC_BUS
@@ -9,6 +24,8 @@
        default n
        select ANON_INODES
        help
+diff --git a/drivers/dma-buf/Makefile b/drivers/dma-buf/Makefile
+index 210a10bfad2b..36ee68dcdffe 100644
 --- a/drivers/dma-buf/Makefile
 +++ b/drivers/dma-buf/Makefile
 @@ -1,3 +1,7 @@
@@ -22,6 +39,8 @@
 +dma-buf-objs-$(CONFIG_SW_SYNC)                += sw_sync.o sync_debug.o
 +
 +dma-shared-buffer-objs :=  $(dma-buf-objs-y)
+diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
+index 6b54e02da10c..24e69ef1f243 100644
 --- a/drivers/dma-buf/dma-buf.c
 +++ b/drivers/dma-buf/dma-buf.c
 @@ -34,6 +34,7 @@
 -__exitcall(dma_buf_deinit);
 +module_exit(dma_buf_deinit);
 +MODULE_LICENSE("GPL");
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index 692c948ae333..eaf379285cca 100644
 --- a/kernel/sched/core.c
 +++ b/kernel/sched/core.c
-@@ -2170,6 +2170,7 @@ int wake_up_state(struct task_struct *p,
+@@ -2170,6 +2170,7 @@ int wake_up_state(struct task_struct *p, unsigned int state)
  {
        return try_to_wake_up(p, state, 0);
  }
@@ -49,3 +70,6 @@
  
  /*
   * This function clears the sched_dl_entity static params.
+-- 
+2.11.0
+
diff --git a/target/linux/generic/hack-4.9/910-kobject_uevent.patch b/target/linux/generic/hack-4.9/910-kobject_uevent.patch
new file mode 100644 (file)
index 0000000..e0befdf
--- /dev/null
@@ -0,0 +1,36 @@
+From 0d37e6edc09c99e683dd91ca0e83bbc0df8477b3 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sun, 16 Jul 2017 16:56:10 +0200
+Subject: lib: add uevent_next_seqnum()
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/kobject.h |  5 +++++
+ lib/kobject_uevent.c    | 37 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 42 insertions(+)
+
+diff --git a/include/linux/kobject.h b/include/linux/kobject.h
+--- a/lib/kobject_uevent.c
++++ b/lib/kobject_uevent.c
+@@ -52,6 +52,18 @@ static const char *kobject_actions[] = {
+       [KOBJ_OFFLINE] =        "offline",
+ };
++u64 uevent_next_seqnum(void)
++{
++      u64 seq;
++
++      mutex_lock(&uevent_sock_mutex);
++      seq = ++uevent_seqnum;
++      mutex_unlock(&uevent_sock_mutex);
++
++      return seq;
++}
++EXPORT_SYMBOL_GPL(uevent_next_seqnum);
++
+ /**
+  * kobject_action_type - translate action string to numeric type
+  *--- a/include/linux/kobject.h
+-- 
+2.11.0
+
similarity index 57%
rename from target/linux/generic/patches-4.9/911-kobject_add_broadcast_uevent.patch
rename to target/linux/generic/hack-4.9/911-kobject_add_broadcast_uevent.patch
index a3401ff4b34bab14cd85fe64ad4ce31fd2d62634..e794be52bcca3521344f12aceccac7500b750c21 100644 (file)
@@ -1,26 +1,41 @@
+From 0d37e6edc09c99e683dd91ca0e83bbc0df8477b3 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sun, 16 Jul 2017 16:56:10 +0200
+Subject: lib: add uevent_next_seqnum()
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/kobject.h |  5 +++++
+ lib/kobject_uevent.c    | 37 +++++++++++++++++++++++++++++++++++++
+ 2 files changed, 42 insertions(+)
+
+diff --git a/include/linux/kobject.h b/include/linux/kobject.h
+index a7dc9e61f433..3d6950c957cd 100644
 --- a/include/linux/kobject.h
 +++ b/include/linux/kobject.h
-@@ -32,6 +32,8 @@
- #define UEVENT_NUM_ENVP                       32      /* number of env pointers */
- #define UEVENT_BUFFER_SIZE            2048    /* buffer for the variables */
+@@ -34,6 +34,8 @@
+ struct sk_buff;
  
 +struct sk_buff;
 +
  #ifdef CONFIG_UEVENT_HELPER
  /* path to the userspace helper executed on an event */
  extern char uevent_helper[];
-@@ -222,4 +224,7 @@ int add_uevent_var(struct kobj_uevent_en
- int kobject_action_type(const char *buf, size_t count,
-                       enum kobject_action *type);
+@@ -227,4 +229,7 @@ int kobject_action_type(const char *buf, size_t count,
+ int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
+                    gfp_t allocation);
  
 +int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
 +                   gfp_t allocation);
 +
  #endif /* _KOBJECT_H_ */
+diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
+index ac0c7cfa7292..bd13381a410f 100644
 --- a/lib/kobject_uevent.c
 +++ b/lib/kobject_uevent.c
-@@ -423,6 +423,43 @@ int add_uevent_var(struct kobj_uevent_en
- EXPORT_SYMBOL_GPL(add_uevent_var);
+@@ -460,6 +460,43 @@ int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
+ EXPORT_SYMBOL_GPL(broadcast_uevent);
  
  #if defined(CONFIG_NET)
 +int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
@@ -63,3 +78,6 @@
  static int uevent_net_init(struct net *net)
  {
        struct uevent_sock *ue_sk;
+-- 
+2.11.0
+
similarity index 56%
rename from target/linux/generic/patches-4.9/921-always-create-console-node-in-initramfs.patch
rename to target/linux/generic/hack-4.9/921-always-create-console-node-in-initramfs.patch
index 56f3fef902eac89c443dee124ac86763869d3612..7c306bf4ca223aada2455de25e6d84c0165e6aa6 100644 (file)
@@ -1,3 +1,15 @@
+From 5d301596fdc72f6cb672f72eb3c66e7cddefb103 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 8 Jul 2017 08:26:02 +0200
+Subject: initramfs: always create console node
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ scripts/gen_initramfs_list.sh | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh
+index 7710113e6a72..b8d6cb30e054 100755
 --- a/scripts/gen_initramfs_list.sh
 +++ b/scripts/gen_initramfs_list.sh
 @@ -59,6 +59,18 @@ default_initramfs() {
@@ -28,3 +40,6 @@
                echo "${dirlist}" | \
                while read x; do
                        ${dep_list}parse ${x}
+-- 
+2.11.0
+
similarity index 80%
rename from target/linux/generic/patches-4.9/930-crashlog.patch
rename to target/linux/generic/hack-4.9/930-crashlog.patch
index e9041384355d7cf2739338f27e8c717a532b3717..dfff4c78e8ec9fc04c281d6e63e429dce3b4c902 100644 (file)
@@ -1,3 +1,27 @@
+From 6b1ab74a9917012d0c559edc4ed299d9228ac89f Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@nbd.name>
+Date: Sat, 8 Jul 2017 08:26:47 +0200
+Subject: kernel: add the new 'crashlog' feature
+
+this tries to store kernel oops/panic logs in a fixed location in RAM to
+recover them available to user space using debugfs
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/crashlog.h |  17 ++++
+ init/Kconfig             |   4 +
+ kernel/Makefile          |   1 +
+ kernel/crashlog.c        | 213 +++++++++++++++++++++++++++++++++++++++++++++++
+ kernel/module.c          |   3 +
+ mm/bootmem.c             |   2 +
+ mm/memblock.c            |   5 ++
+ 7 files changed, 245 insertions(+)
+ create mode 100644 include/linux/crashlog.h
+ create mode 100644 kernel/crashlog.c
+
+diff --git a/include/linux/crashlog.h b/include/linux/crashlog.h
+new file mode 100644
+index 000000000000..7a9ee6138cc4
 --- /dev/null
 +++ b/include/linux/crashlog.h
 @@ -0,0 +1,17 @@
 +#endif
 +
 +#endif
+diff --git a/init/Kconfig b/init/Kconfig
+index 9f2c0cabbc97..6d8f388fb9b3 100644
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -1308,6 +1308,10 @@ config RELAY
+@@ -1298,6 +1298,10 @@ config RELAY
  
          If unsure, say N.
  
@@ -31,6 +57,8 @@
  config BLK_DEV_INITRD
        bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
        depends on BROKEN || !FRV
+diff --git a/kernel/Makefile b/kernel/Makefile
+index 314e7d62f5f0..5fe0d8c3cb35 100644
 --- a/kernel/Makefile
 +++ b/kernel/Makefile
 @@ -113,6 +113,7 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
@@ -41,6 +69,9 @@
  
  $(obj)/configs.o: $(obj)/config_data.h
  
+diff --git a/kernel/crashlog.c b/kernel/crashlog.c
+new file mode 100644
+index 000000000000..11894b276e54
 --- /dev/null
 +++ b/kernel/crashlog.c
 @@ -0,0 +1,213 @@
 +      return 0;
 +}
 +module_init(crashlog_init_fs);
+diff --git a/kernel/module.c b/kernel/module.c
+index 80b5ac4181c6..51d6e4e6f436 100644
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -253,6 +253,9 @@ static void mod_update_bounds(struct mod
+@@ -253,6 +253,9 @@ static void mod_update_bounds(struct module *mod)
  #ifdef CONFIG_KGDB_KDB
  struct list_head *kdb_modules = &modules; /* kdb needs the list of modules */
  #endif /* CONFIG_KGDB_KDB */
  
  static void module_assert_mutex(void)
  {
+diff --git a/mm/bootmem.c b/mm/bootmem.c
+index e8a55a3c9feb..e0f3c0bf2709 100644
+--- a/mm/bootmem.c
++++ b/mm/bootmem.c
+@@ -14,6 +14,7 @@
+ #include <linux/export.h>
+ #include <linux/kmemleak.h>
+ #include <linux/range.h>
++#include <linux/crashlog.h>
+ #include <linux/bug.h>
+ #include <linux/io.h>
+ #include <linux/bootmem.h>
+@@ -174,6 +175,7 @@ static unsigned long __init free_all_bootmem_core(bootmem_data_t *bdata)
+       if (!bdata->node_bootmem_map)
+               return 0;
++      crashlog_init_bootmem(bdata);
+       map = bdata->node_bootmem_map;
+       start = bdata->node_min_pfn;
+       end = bdata->node_low_pfn;
+diff --git a/mm/memblock.c b/mm/memblock.c
+index 68849d0ead09..aef9ca5e7f52 100644
 --- a/mm/memblock.c
 +++ b/mm/memblock.c
 @@ -19,6 +19,7 @@
  
  #include <asm/sections.h>
  #include <linux/io.h>
-@@ -499,6 +500,8 @@ static void __init_memblock memblock_ins
+@@ -499,6 +500,8 @@ static void __init_memblock memblock_insert_region(struct memblock_type *type,
        memblock_set_region_node(rgn, nid);
        type->cnt++;
        type->total_size += size;
  }
  
  /**
-@@ -538,6 +541,8 @@ int __init_memblock memblock_add_range(s
+@@ -538,6 +541,8 @@ int __init_memblock memblock_add_range(struct memblock_type *type,
                type->regions[0].flags = flags;
                memblock_set_region_node(&type->regions[0], nid);
                type->total_size = size;
                return 0;
        }
  repeat:
---- a/mm/bootmem.c
-+++ b/mm/bootmem.c
-@@ -14,6 +14,7 @@
- #include <linux/export.h>
- #include <linux/kmemleak.h>
- #include <linux/range.h>
-+#include <linux/crashlog.h>
- #include <linux/bug.h>
- #include <linux/io.h>
- #include <linux/bootmem.h>
-@@ -174,6 +175,7 @@ static unsigned long __init free_all_boo
-       if (!bdata->node_bootmem_map)
-               return 0;
-+      crashlog_init_bootmem(bdata);
-       map = bdata->node_bootmem_map;
-       start = bdata->node_min_pfn;
-       end = bdata->node_low_pfn;
+-- 
+2.11.0
+
diff --git a/target/linux/generic/patches-4.9/200-fix_localversion.patch b/target/linux/generic/patches-4.9/200-fix_localversion.patch
deleted file mode 100644 (file)
index 70228bb..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/scripts/setlocalversion
-+++ b/scripts/setlocalversion
-@@ -165,7 +165,7 @@ else
-       # annotated or signed tagged state (as git describe only
-       # looks at signed or annotated tags - git tag -a/-s) and
-       # LOCALVERSION= is not specified
--      if test "${LOCALVERSION+set}" != "set"; then
-+      if test "${CONFIG_LOCALVERSION+set}" != "set"; then
-               scm=$(scm_version --short)
-               res="$res${scm:++}"
-       fi
diff --git a/target/linux/generic/patches-4.9/201-extra_optimization.patch b/target/linux/generic/patches-4.9/201-extra_optimization.patch
deleted file mode 100644 (file)
index d264617..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -639,12 +639,12 @@ KBUILD_CFLAGS    += $(call cc-option,-fdata
- endif
- ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
--KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
- else
- ifdef CONFIG_PROFILE_ALL_BRANCHES
--KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
-+KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
- else
--KBUILD_CFLAGS   += -O2
-+KBUILD_CFLAGS   += -O2 -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)
- endif
- endif
diff --git a/target/linux/generic/patches-4.9/202-reduce_module_size.patch b/target/linux/generic/patches-4.9/202-reduce_module_size.patch
deleted file mode 100644 (file)
index 7ea3558..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -407,7 +407,7 @@ KBUILD_CFLAGS_KERNEL :=
- KBUILD_AFLAGS   := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
- KBUILD_AFLAGS_MODULE  := -DMODULE
- KBUILD_CFLAGS_MODULE  := -DMODULE
--KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
-+KBUILD_LDFLAGS_MODULE = -T $(srctree)/scripts/module-common.lds $(if $(CONFIG_PROFILING),,-s)
- # Read KERNELRELEASE from include/config/kernel.release (if it exists)
- KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
diff --git a/target/linux/generic/patches-4.9/211-host_tools_portability.patch b/target/linux/generic/patches-4.9/211-host_tools_portability.patch
deleted file mode 100644 (file)
index 73fd50d..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/tools/perf/pmu-events/jevents.c
-+++ b/tools/perf/pmu-events/jevents.c
-@@ -35,6 +35,7 @@
- #include <stdlib.h>
- #include <errno.h>
- #include <string.h>
-+#include <strings.h>
- #include <ctype.h>
- #include <unistd.h>
- #include <stdarg.h>
---- a/tools/perf/pmu-events/json.c
-+++ b/tools/perf/pmu-events/json.c
-@@ -38,7 +38,6 @@
- #include <unistd.h>
- #include "jsmn.h"
- #include "json.h"
--#include <linux/kernel.h>
- static char *mapfile(const char *fn, size_t *size)
---- a/tools/build/Build.include
-+++ b/tools/build/Build.include
-@@ -95,4 +95,4 @@ cxx_flags = -Wp,-MD,$(depfile),-MT,$@ $(
- ###
- ## HOSTCC C flags
--host_c_flags = -Wp,-MD,$(depfile),-MT,$@ $(CHOSTFLAGS) -D"BUILD_STR(s)=\#s" $(CHOSTFLAGS_$(basetarget).o) $(CHOSTFLAGS_$(obj))
-+host_c_flags = -MD -MF $(depfile) -MT $@ $(CHOSTFLAGS) -D"BUILD_STR(s)=\#s" $(CHOSTFLAGS_$(basetarget).o) $(CHOSTFLAGS_$(obj))
diff --git a/target/linux/generic/patches-4.9/214-spidev_h_portability.patch b/target/linux/generic/patches-4.9/214-spidev_h_portability.patch
deleted file mode 100644 (file)
index dbee090..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/uapi/linux/spi/spidev.h
-+++ b/include/uapi/linux/spi/spidev.h
-@@ -111,7 +111,7 @@ struct spi_ioc_transfer {
- /* not all platforms use <asm-generic/ioctl.h> or _IOC_TYPECHECK() ... */
- #define SPI_MSGSIZE(N) \
--      ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \
-+      ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << 13)) \
-               ? ((N)*(sizeof (struct spi_ioc_transfer))) : 0)
- #define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)])
diff --git a/target/linux/generic/patches-4.9/222-arm_zimage_none.patch b/target/linux/generic/patches-4.9/222-arm_zimage_none.patch
deleted file mode 100644 (file)
index 8de9851..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-ARM: implement "uncompressed zImage"
-
-Based on RFC patch by Uwe Kleine-König
-http://www.spinics.net/lists/arm-kernel/msg230153.html
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
---- a/arch/arm/boot/compressed/Makefile
-+++ b/arch/arm/boot/compressed/Makefile
-@@ -71,6 +71,7 @@ compress-$(CONFIG_KERNEL_LZO)  = lzo
- compress-$(CONFIG_KERNEL_LZMA) = lzma
- compress-$(CONFIG_KERNEL_XZ)   = xzkern
- compress-$(CONFIG_KERNEL_LZ4)  = lz4
-+compress-$(CONFIG_KERNEL_CAT)  = cat
- # Borrowed libfdt files for the ATAG compatibility mode
---- a/arch/arm/boot/compressed/decompress.c
-+++ b/arch/arm/boot/compressed/decompress.c
-@@ -55,6 +55,10 @@ extern char * strstr(const char * s1, co
- #include "../../../../lib/decompress_unlz4.c"
- #endif
-+#ifdef CONFIG_KERNEL_CAT
-+#include "../../../../lib/decompress_uncat.c"
-+#endif
-+
- int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
- {
-       return __decompress(input, len, NULL, NULL, output, 0, NULL, error);
---- /dev/null
-+++ b/arch/arm/boot/compressed/piggy.cat.S
-@@ -0,0 +1,6 @@
-+      .section .piggydata,#alloc
-+      .globl  input_data
-+input_data:
-+      .incbin "arch/arm/boot/compressed/piggy.cat"
-+      .globl  input_data_end
-+input_data_end:
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -127,6 +127,9 @@ config HAVE_KERNEL_LZO
- config HAVE_KERNEL_LZ4
-       bool
-+config HAVE_KERNEL_CAT
-+      bool
-+
- choice
-       prompt "Kernel compression mode"
-       default KERNEL_GZIP
-@@ -193,9 +196,10 @@ config KERNEL_LZO
-       bool "LZO"
-       depends on HAVE_KERNEL_LZO
-       help
--        Its compression ratio is the poorest among the choices. The kernel
--        size is about 10% bigger than gzip; however its speed
--        (both compression and decompression) is the fastest.
-+        Its compression ratio is the poorest among the choices (apart from
-+        uncompressed below). The kernel size is about 10% bigger than gzip;
-+        however its speed (both compression and decompression) is the
-+        fastest.
- config KERNEL_LZ4
-       bool "LZ4"
-@@ -209,6 +213,12 @@ config KERNEL_LZ4
-         is about 8% bigger than LZO. But the decompression speed is
-         faster than LZO.
-+config KERNEL_CAT
-+      bool "uncompressed"
-+      depends on HAVE_KERNEL_CAT
-+      help
-+        Don't use compression at all.
-+
- endchoice
- config DEFAULT_HOSTNAME
---- /dev/null
-+++ b/lib/decompress_uncat.c
-@@ -0,0 +1,17 @@
-+#include <linux/types.h>
-+#include <linux/compiler.h>
-+
-+#ifdef STATIC
-+
-+STATIC int __decompress(unsigned char *buf, long in_len,
-+                      long (*fill)(void*, unsigned long),
-+                      long (*flush)(void*, unsigned long),
-+                      unsigned char *output, long out_len,
-+                      long *posp,
-+                      void (*error)(char *x))
-+{
-+      memmove(output, buf, in_len);
-+      return 0;
-+}
-+
-+#endif
---- a/scripts/Makefile.lib
-+++ b/scripts/Makefile.lib
-@@ -357,6 +357,13 @@ cmd_lz4 = (cat $(filter-out FORCE,$^) |
-       lz4c -l -c1 stdin stdout && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
-       (rm -f $@ ; false)
-+# uncompressed
-+# ---------------------------------------------------------------------------
-+quiet_cmd_cat = CAT     $@
-+cmd_cat = (cat $(filter-out FORCE,$^) \
-+      && $(call size_append, $(filter-out FORCE,$^))) > $@ || \
-+      (rm -f $@ ; false)
-+
- # U-Boot mkimage
- # ---------------------------------------------------------------------------
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -65,6 +65,7 @@ config ARM
-       select HAVE_KERNEL_LZMA
-       select HAVE_KERNEL_LZO
-       select HAVE_KERNEL_XZ
-+      select HAVE_KERNEL_CAT
-       select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M
-       select HAVE_KRETPROBES if (HAVE_KPROBES)
-       select HAVE_MEMBLOCK
diff --git a/target/linux/generic/patches-4.9/251-sound_kconfig.patch b/target/linux/generic/patches-4.9/251-sound_kconfig.patch
deleted file mode 100644 (file)
index e8f6c02..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/sound/core/Kconfig
-+++ b/sound/core/Kconfig
-@@ -16,13 +16,13 @@ config SND_DMAENGINE_PCM
-       tristate
- config SND_HWDEP
--      tristate
-+      tristate "Sound hardware support"
- config SND_RAWMIDI
-       tristate
- config SND_COMPRESS_OFFLOAD
--      tristate
-+      tristate "Compression offloading support"
- config SND_JACK
-       bool
diff --git a/target/linux/generic/patches-4.9/252-mv_cesa_depends.patch b/target/linux/generic/patches-4.9/252-mv_cesa_depends.patch
deleted file mode 100644 (file)
index 1b261e4..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/drivers/crypto/Kconfig
-+++ b/drivers/crypto/Kconfig
-@@ -176,6 +176,7 @@ config CRYPTO_DEV_MV_CESA
-       tristate "Marvell's Cryptographic Engine"
-       depends on PLAT_ORION
-       select CRYPTO_AES
-+      select CRYPTO_HASH2
-       select CRYPTO_BLKCIPHER
-       select CRYPTO_HASH
-       select SRAM
diff --git a/target/linux/generic/patches-4.9/253-ssb_b43_default_on.patch b/target/linux/generic/patches-4.9/253-ssb_b43_default_on.patch
deleted file mode 100644 (file)
index 29d2a41..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/drivers/ssb/Kconfig
-+++ b/drivers/ssb/Kconfig
-@@ -29,6 +29,7 @@ config SSB_SPROM
- config SSB_BLOCKIO
-       bool
-       depends on SSB
-+      default y
- config SSB_PCIHOST_POSSIBLE
-       bool
-@@ -49,7 +50,7 @@ config SSB_PCIHOST
- config SSB_B43_PCI_BRIDGE
-       bool
-       depends on SSB_PCIHOST
--      default n
-+      default y
- config SSB_PCMCIAHOST_POSSIBLE
-       bool
---- a/drivers/bcma/Kconfig
-+++ b/drivers/bcma/Kconfig
-@@ -17,6 +17,7 @@ config BCMA
- config BCMA_BLOCKIO
-       bool
-       depends on BCMA
-+      default y
- config BCMA_HOST_PCI_POSSIBLE
-       bool
diff --git a/target/linux/generic/patches-4.9/254-textsearch_kconfig_hacks.patch b/target/linux/generic/patches-4.9/254-textsearch_kconfig_hacks.patch
deleted file mode 100644 (file)
index 12cedbe..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/lib/Kconfig
-+++ b/lib/Kconfig
-@@ -334,16 +334,16 @@ config BCH_CONST_T
- # Textsearch support is select'ed if needed
- #
- config TEXTSEARCH
--      bool
-+      boolean "Textsearch support"
- config TEXTSEARCH_KMP
--      tristate
-+      tristate "Textsearch KMP"
- config TEXTSEARCH_BM
--      tristate
-+      tristate "Textsearch BM"
- config TEXTSEARCH_FSM
--      tristate
-+      tristate "Textsearch FSM"
- config BTREE
-       bool
diff --git a/target/linux/generic/patches-4.9/255-lib80211_kconfig_hacks.patch b/target/linux/generic/patches-4.9/255-lib80211_kconfig_hacks.patch
deleted file mode 100644 (file)
index 07b185e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/net/wireless/Kconfig
-+++ b/net/wireless/Kconfig
-@@ -188,7 +188,7 @@ config CFG80211_WEXT_EXPORT
-         wext compatibility symbols to be exported.
- config LIB80211
--      tristate
-+      tristate "LIB80211"
-       default n
-       help
-         This options enables a library of common routines used
-@@ -197,13 +197,16 @@ config LIB80211
-         Drivers should select this themselves if needed.
- config LIB80211_CRYPT_WEP
--      tristate
-+      tristate "LIB80211_CRYPT_WEP"
-+      select LIB80211
- config LIB80211_CRYPT_CCMP
--      tristate
-+      tristate "LIB80211_CRYPT_CCMP"
-+      select LIB80211
- config LIB80211_CRYPT_TKIP
--      tristate
-+      tristate "LIB80211_CRYPT_TKIP"
-+      select LIB80211
- config LIB80211_DEBUG
-       bool "lib80211 debugging messages"
diff --git a/target/linux/generic/patches-4.9/256-crypto_add_kconfig_prompts.patch b/target/linux/generic/patches-4.9/256-crypto_add_kconfig_prompts.patch
deleted file mode 100644 (file)
index fb5d5dc..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/crypto/Kconfig
-+++ b/crypto/Kconfig
-@@ -32,7 +32,7 @@ config CRYPTO_FIPS
-         this is.
- config CRYPTO_ALGAPI
--      tristate
-+      tristate "ALGAPI"
-       select CRYPTO_ALGAPI2
-       help
-         This option provides the API for cryptographic algorithms.
-@@ -41,7 +41,7 @@ config CRYPTO_ALGAPI2
-       tristate
- config CRYPTO_AEAD
--      tristate
-+      tristate "AEAD"
-       select CRYPTO_AEAD2
-       select CRYPTO_ALGAPI
-@@ -52,7 +52,7 @@ config CRYPTO_AEAD2
-       select CRYPTO_RNG2
- config CRYPTO_BLKCIPHER
--      tristate
-+      tristate "BLKCIPHER"
-       select CRYPTO_BLKCIPHER2
-       select CRYPTO_ALGAPI
-@@ -63,7 +63,7 @@ config CRYPTO_BLKCIPHER2
-       select CRYPTO_WORKQUEUE
- config CRYPTO_HASH
--      tristate
-+      tristate "HASH"
-       select CRYPTO_HASH2
-       select CRYPTO_ALGAPI
-@@ -72,7 +72,7 @@ config CRYPTO_HASH2
-       select CRYPTO_ALGAPI2
- config CRYPTO_RNG
--      tristate
-+      tristate "RNG"
-       select CRYPTO_RNG2
-       select CRYPTO_ALGAPI
diff --git a/target/linux/generic/patches-4.9/257-wireless_ext_kconfig_hack.patch b/target/linux/generic/patches-4.9/257-wireless_ext_kconfig_hack.patch
deleted file mode 100644 (file)
index daac589..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/net/wireless/Kconfig
-+++ b/net/wireless/Kconfig
-@@ -1,5 +1,5 @@
- config WIRELESS_EXT
--      bool
-+      bool "Wireless extensions"
- config WEXT_CORE
-       def_bool y
-@@ -11,10 +11,10 @@ config WEXT_PROC
-       depends on WEXT_CORE
- config WEXT_SPY
--      bool
-+      bool "WEXT_SPY"
- config WEXT_PRIV
--      bool
-+      bool "WEXT_PRIV"
- config CFG80211
-       tristate "cfg80211 - wireless configuration API"
diff --git a/target/linux/generic/patches-4.9/258-netfilter_netlink_kconfig_hack.patch b/target/linux/generic/patches-4.9/258-netfilter_netlink_kconfig_hack.patch
deleted file mode 100644 (file)
index 4206c9a..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/net/netfilter/Kconfig
-+++ b/net/netfilter/Kconfig
-@@ -10,7 +10,7 @@ config NETFILTER_INGRESS
-         infrastructure.
- config NETFILTER_NETLINK
--      tristate
-+      tristate "Netfilter NFNETLINK interface"
- config NETFILTER_NETLINK_ACCT
- tristate "Netfilter NFACCT over NFNETLINK interface"
diff --git a/target/linux/generic/patches-4.9/261-enable_wilink_platform_without_drivers.patch b/target/linux/generic/patches-4.9/261-enable_wilink_platform_without_drivers.patch
deleted file mode 100644 (file)
index 597e324..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-We use backports for driver updates - make sure we can compile in the glue code regardless
-
-Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
-
---- a/drivers/net/wireless/ti/Kconfig
-+++ b/drivers/net/wireless/ti/Kconfig
-@@ -19,7 +19,7 @@ source "drivers/net/wireless/ti/wlcore/K
- config WILINK_PLATFORM_DATA
-       bool "TI WiLink platform data"
--      depends on WLCORE_SDIO || WL1251_SDIO
-+      depends on WLCORE_SDIO || WL1251_SDIO || ARCH_OMAP2PLUS
-       default y
-       ---help---
-       Small platform data bit needed to pass data to the sdio modules.
diff --git a/target/linux/generic/patches-4.9/301-mips_image_cmdline_hack.patch b/target/linux/generic/patches-4.9/301-mips_image_cmdline_hack.patch
deleted file mode 100644 (file)
index c2927f0..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
---- a/arch/mips/Kconfig
-+++ b/arch/mips/Kconfig
-@@ -1150,6 +1150,10 @@ config SYNC_R4K
- config MIPS_MACHINE
-       def_bool n
-+config IMAGE_CMDLINE_HACK
-+      bool "OpenWrt specific image command line hack"
-+      default n
-+
- config NO_IOPORT_MAP
-       def_bool n
---- a/arch/mips/kernel/head.S
-+++ b/arch/mips/kernel/head.S
-@@ -79,6 +79,12 @@ FEXPORT(__kernel_entry)
-       j       kernel_entry
- #endif
-+#ifdef CONFIG_IMAGE_CMDLINE_HACK
-+      .ascii  "CMDLINE:"
-+EXPORT(__image_cmdline)
-+      .fill   0x400
-+#endif /* CONFIG_IMAGE_CMDLINE_HACK */
-+
-       __REF
- NESTED(kernel_entry, 16, sp)                  # kernel entry point
diff --git a/target/linux/generic/patches-4.9/302-mips_no_branch_likely.patch b/target/linux/generic/patches-4.9/302-mips_no_branch_likely.patch
deleted file mode 100644 (file)
index 82b75ad..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/arch/mips/Makefile
-+++ b/arch/mips/Makefile
-@@ -90,7 +90,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
- # machines may also.  Since BFD is incredibly buggy with respect to
- # crossformat linking we rely on the elf2ecoff tool for format conversion.
- #
--cflags-y                      += -G 0 -mno-abicalls -fno-pic -pipe
-+cflags-y                      += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
- cflags-y                      += -msoft-float
- LDFLAGS_vmlinux                       += -G 0 -static -n -nostdlib
- KBUILD_AFLAGS_MODULE          += -mlong-calls
diff --git a/target/linux/generic/patches-4.9/307-mips_highmem_offset.patch b/target/linux/generic/patches-4.9/307-mips_highmem_offset.patch
deleted file mode 100644 (file)
index d3425d6..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-Adjust highmem offset to 0x10000000 to ensure that all kmalloc allocations
-stay within the same 256M boundary. This ensures that -mlong-calls is not
-needed on systems with more than 256M RAM.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
---- a/arch/mips/include/asm/mach-generic/spaces.h
-+++ b/arch/mips/include/asm/mach-generic/spaces.h
-@@ -46,7 +46,7 @@
-  * Memory above this physical address will be considered highmem.
-  */
- #ifndef HIGHMEM_START
--#define HIGHMEM_START         _AC(0x20000000, UL)
-+#define HIGHMEM_START         _AC(0x10000000, UL)
- #endif
- #endif /* CONFIG_32BIT */
diff --git a/target/linux/generic/patches-4.9/310-arm_module_unresolved_weak_sym.patch b/target/linux/generic/patches-4.9/310-arm_module_unresolved_weak_sym.patch
deleted file mode 100644 (file)
index 327a475..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/arch/arm/kernel/module.c
-+++ b/arch/arm/kernel/module.c
-@@ -88,6 +88,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons
-                       return -ENOEXEC;
-               }
-+              if ((IS_ERR_VALUE(sym->st_value) || !sym->st_value) &&
-+                  ELF_ST_BIND(sym->st_info) == STB_WEAK)
-+                      continue;
-+
-               loc = dstsec->sh_addr + rel->r_offset;
-               switch (ELF32_R_TYPE(rel->r_info)) {
diff --git a/target/linux/generic/patches-4.9/321-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-4.9/321-powerpc_crtsavres_prereq.patch
deleted file mode 100644 (file)
index d25c695..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/arch/powerpc/Makefile
-+++ b/arch/powerpc/Makefile
-@@ -179,7 +179,6 @@ else
- CHECKFLAGS    += -D__LITTLE_ENDIAN__
- endif
--KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
- ifeq ($(CONFIG_476FPE_ERR46),y)
-       KBUILD_LDFLAGS_MODULE += --ppc476-workaround \
diff --git a/target/linux/generic/patches-4.9/410-mtd-move-forward-declaration-of-struct-mtd_info.patch b/target/linux/generic/patches-4.9/410-mtd-move-forward-declaration-of-struct-mtd_info.patch
deleted file mode 100644 (file)
index 7c92735..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/include/linux/mtd/partitions.h
-+++ b/include/linux/mtd/partitions.h
-@@ -41,6 +41,7 @@
-  * Note: writeable partitions require their size and offset be
-  * erasesize aligned (e.g. use MTDPART_OFS_NEXTBLK).
-  */
-+struct mtd_info;
- struct mtd_partition {
-       const char *name;               /* identifier string */
-@@ -57,7 +58,6 @@ struct mtd_partition {
- #define MTDPART_SIZ_FULL      (0)
--struct mtd_info;
- struct device_node;
- /**
diff --git a/target/linux/generic/patches-4.9/412-mtd-partial_eraseblock_unlock.patch b/target/linux/generic/patches-4.9/412-mtd-partial_eraseblock_unlock.patch
deleted file mode 100644 (file)
index da4a902..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/drivers/mtd/mtdpart.c
-+++ b/drivers/mtd/mtdpart.c
-@@ -343,7 +343,16 @@ static int part_lock(struct mtd_info *mt
- static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
- {
-       struct mtd_part *part = mtd_to_part(mtd);
--      return part->parent->_unlock(part->parent, ofs + part->offset, len);
-+
-+      ofs += part->offset;
-+
-+      if (mtd->flags & MTD_ERASE_PARTIAL) {
-+              /* round up len to next erasesize and round down offset to prev block */
-+              len = (mtd_div_by_eb(len, part->parent) + 1) * part->parent->erasesize;
-+              ofs &= ~(part->parent->erasesize - 1);
-+      }
-+
-+      return part->parent->_unlock(part->parent, ofs, len);
- }
- static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len)
diff --git a/target/linux/generic/patches-4.9/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch b/target/linux/generic/patches-4.9/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
deleted file mode 100644 (file)
index b87ae90..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/mtd/chips/cfi_cmdset_0002.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -807,7 +807,7 @@ static int get_chip(struct map_info *map
-               return 0;
-       case FL_ERASING:
--              if (!cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
-+              if (1 /* no suspend */ || !cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
-                   !(mode == FL_READY || mode == FL_POINT ||
-                   (mode == FL_WRITING && (cfip->EraseSuspend & 0x2))))
-                       goto sleep;
diff --git a/target/linux/generic/patches-4.9/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/patches-4.9/465-m25p80-mx-disable-software-protection.patch
deleted file mode 100644 (file)
index 16bdfb3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Disable software protection bits for Macronix flashes.
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
-
---- a/drivers/mtd/spi-nor/spi-nor.c
-+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1595,6 +1595,7 @@ int spi_nor_scan(struct spi_nor *nor, co
-       if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
-           JEDEC_MFR(info) == SNOR_MFR_INTEL ||
-+          JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
-           JEDEC_MFR(info) == SNOR_MFR_SST ||
-           info->flags & SPI_NOR_HAS_LOCK) {
-               write_enable(nor);
diff --git a/target/linux/generic/patches-4.9/616-net_optimize_xfrm_calls.patch b/target/linux/generic/patches-4.9/616-net_optimize_xfrm_calls.patch
deleted file mode 100644 (file)
index adef94f..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/net/netfilter/nf_nat_core.c
-+++ b/net/netfilter/nf_nat_core.c
-@@ -95,6 +95,9 @@ int nf_xfrm_me_harder(struct net *net, s
-       struct dst_entry *dst;
-       int err;
-+      if (skb->dev && !dev_net(skb->dev)->xfrm.policy_count[XFRM_POLICY_OUT])
-+              return 0;
-+
-       err = xfrm_decode_session(skb, &fl, family);
-       if (err < 0)
-               return err;
diff --git a/target/linux/generic/patches-4.9/650-pppoe_header_pad.patch b/target/linux/generic/patches-4.9/650-pppoe_header_pad.patch
deleted file mode 100644 (file)
index ea717da..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/drivers/net/ppp/pppoe.c
-+++ b/drivers/net/ppp/pppoe.c
-@@ -861,7 +861,7 @@ static int pppoe_sendmsg(struct socket *
-               goto end;
--      skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32,
-+      skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32 + NET_SKB_PAD,
-                          0, GFP_KERNEL);
-       if (!skb) {
-               error = -ENOMEM;
-@@ -869,7 +869,7 @@ static int pppoe_sendmsg(struct socket *
-       }
-       /* Reserve space for headers. */
--      skb_reserve(skb, dev->hard_header_len);
-+      skb_reserve(skb, dev->hard_header_len + NET_SKB_PAD);
-       skb_reset_network_header(skb);
-       skb->dev = dev;
diff --git a/target/linux/generic/patches-4.9/651-wireless_mesh_header.patch b/target/linux/generic/patches-4.9/651-wireless_mesh_header.patch
deleted file mode 100644 (file)
index 1f3aead..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
-@@ -137,8 +137,8 @@ static inline bool dev_xmit_complete(int
- #if defined(CONFIG_HYPERV_NET)
- # define LL_MAX_HEADER 128
--#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25)
--# if defined(CONFIG_MAC80211_MESH)
-+#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) || 1
-+# if defined(CONFIG_MAC80211_MESH) || 1
- #  define LL_MAX_HEADER 128
- # else
- #  define LL_MAX_HEADER 96
diff --git a/target/linux/generic/patches-4.9/655-increase_skb_pad.patch b/target/linux/generic/patches-4.9/655-increase_skb_pad.patch
deleted file mode 100644 (file)
index bad824c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -2298,7 +2298,7 @@ static inline int pskb_network_may_pull(
-  * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
-  */
- #ifndef NET_SKB_PAD
--#define NET_SKB_PAD   max(32, L1_CACHE_BYTES)
-+#define NET_SKB_PAD   max(64, L1_CACHE_BYTES)
- #endif
- int ___pskb_trim(struct sk_buff *skb, unsigned int len);
diff --git a/target/linux/generic/patches-4.9/660-fq_codel_defaults.patch b/target/linux/generic/patches-4.9/660-fq_codel_defaults.patch
deleted file mode 100644 (file)
index b5b7562..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/net/sched/sch_fq_codel.c
-+++ b/net/sched/sch_fq_codel.c
-@@ -479,7 +479,7 @@ static int fq_codel_init(struct Qdisc *s
-       sch->limit = 10*1024;
-       q->flows_cnt = 1024;
--      q->memory_limit = 32 << 20; /* 32 MBytes */
-+      q->memory_limit = 4 << 20; /* 4 MBytes */
-       q->drop_batch_size = 64;
-       q->quantum = psched_mtu(qdisc_dev(sch));
-       q->perturbation = prandom_u32();
diff --git a/target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch b/target/linux/generic/patches-4.9/702-phy_add_aneg_done_function.patch
deleted file mode 100644 (file)
index 5c0c22e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -499,6 +499,12 @@ struct phy_driver {
-       /* Determines the negotiated speed and duplex */
-       int (*read_status)(struct phy_device *phydev);
-+      /* 
-+       * Update the value in phydev->link to reflect the 
-+       * current link value
-+       */
-+      int (*update_link)(struct phy_device *phydev);
-+
-       /* Clears any pending interrupts */
-       int (*ack_interrupt)(struct phy_device *phydev);
---- a/drivers/net/phy/phy_device.c
-+++ b/drivers/net/phy/phy_device.c
-@@ -1309,6 +1309,9 @@ int genphy_update_link(struct phy_device
- {
-       int status;
-+      if (phydev->drv && phydev->drv->update_link)
-+              return phydev->drv->update_link(phydev);
-+
-       /* Do a fake read */
-       status = phy_read(phydev, MII_BMSR);
-       if (status < 0)
diff --git a/target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/patches-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch
deleted file mode 100644 (file)
index c85937d..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/drivers/net/phy/phy_device.c
-+++ b/drivers/net/phy/phy_device.c
-@@ -1001,6 +1001,9 @@ void phy_detach(struct phy_device *phyde
-       struct mii_bus *bus;
-       int i;
-+      if (phydev->drv && phydev->drv->detach)
-+              phydev->drv->detach(phydev);
-+
-       phydev->attached_dev->phydev = NULL;
-       phydev->attached_dev = NULL;
-       phy_suspend(phydev);
---- a/include/linux/phy.h
-+++ b/include/linux/phy.h
-@@ -517,6 +517,12 @@ struct phy_driver {
-        */
-       int (*did_interrupt)(struct phy_device *phydev);
-+      /*
-+       * Called before an ethernet device is detached
-+       * from the PHY.
-+       */
-+      void (*detach)(struct phy_device *phydev);
-+
-       /* Clears up any memory if needed */
-       void (*remove)(struct phy_device *phydev);
diff --git a/target/linux/generic/patches-4.9/831-ledtrig_netdev.patch b/target/linux/generic/patches-4.9/831-ledtrig_netdev.patch
deleted file mode 100644 (file)
index 8422aa3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/drivers/leds/trigger/Kconfig
-+++ b/drivers/leds/trigger/Kconfig
-@@ -126,4 +126,11 @@ config LEDS_TRIGGER_PANIC
-         a different trigger.
-         If unsure, say Y.
-+config LEDS_TRIGGER_NETDEV
-+      tristate "LED Netdev Trigger"
-+      depends on NET && LEDS_TRIGGERS
-+      help
-+        This allows LEDs to be controlled by network device activity.
-+        If unsure, say Y.
-+
- endif # LEDS_TRIGGERS
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -77,3 +77,4 @@ obj-$(CONFIG_LEDS_DAC124S085)                += leds-d
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGERS)           += trigger/
-+obj-$(CONFIG_LEDS_TRIGGER_NETDEV)     += ledtrig-netdev.o
diff --git a/target/linux/generic/patches-4.9/835-misc-owl_loader.patch b/target/linux/generic/patches-4.9/835-misc-owl_loader.patch
deleted file mode 100644 (file)
index 4f26ae5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/drivers/misc/Kconfig
-+++ b/drivers/misc/Kconfig
-@@ -151,6 +151,18 @@ config SGI_IOC4
-         If you have an SGI Altix with an IOC4-based card say Y.
-         Otherwise say N.
-+config OWL_LOADER
-+      tristate "Owl loader for initializing Atheros PCI(e) Wifi chips"
-+      depends on PCI
-+      ---help---
-+      This kernel module helps to initialize certain Qualcomm
-+      Atheros' PCI(e) Wifi chips, which have the init data
-+      (which contains the PCI device ID for example) stored
-+      together with the calibration data in the file system.
-+
-+      This is necessary for devices like the Cisco Meraki Z1, say M.
-+      Otherwise say N.
-+
- config TIFM_CORE
-       tristate "TI Flash Media interface support"
-       depends on PCI
---- a/drivers/misc/Makefile
-+++ b/drivers/misc/Makefile
-@@ -12,6 +12,7 @@ obj-$(CONFIG_ATMEL_TCLIB)    += atmel_tclib
- obj-$(CONFIG_DUMMY_IRQ)               += dummy-irq.o
- obj-$(CONFIG_ICS932S401)      += ics932s401.o
- obj-$(CONFIG_LKDTM)           += lkdtm.o
-+obj-$(CONFIG_OWL_LOADER)      += owl-loader.o
- obj-$(CONFIG_TIFM_CORE)               += tifm_core.o
- obj-$(CONFIG_TIFM_7XX1)               += tifm_7xx1.o
- obj-$(CONFIG_PHANTOM)         += phantom.o
diff --git a/target/linux/generic/patches-4.9/840-rtc7301.patch b/target/linux/generic/patches-4.9/840-rtc7301.patch
deleted file mode 100644 (file)
index 4122048..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
---- a/drivers/rtc/Kconfig
-+++ b/drivers/rtc/Kconfig
-@@ -1202,6 +1202,15 @@ config RTC_DRV_ZYNQMP
-         If you say yes here you get support for the RTC controller found on
-         Xilinx Zynq Ultrascale+ MPSoC.
-+config RTC_DRV_RTC7301
-+      tristate "Epson RTC-7301 SF/DG"
-+      help
-+        If you say Y here you will get support for the
-+        Epson RTC-7301 SF/DG RTC chips.
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-7301.
-+
- comment "on-CPU RTC drivers"
- config RTC_DRV_ASM9260
---- a/drivers/rtc/Makefile
-+++ b/drivers/rtc/Makefile
-@@ -127,6 +127,7 @@ obj-$(CONFIG_RTC_DRV_RP5C01)       += rtc-rp5c
- obj-$(CONFIG_RTC_DRV_RS5C313) += rtc-rs5c313.o
- obj-$(CONFIG_RTC_DRV_RS5C348) += rtc-rs5c348.o
- obj-$(CONFIG_RTC_DRV_RS5C372) += rtc-rs5c372.o
-+obj-$(CONFIG_RTC_DRV_RTC7301) += rtc-rtc7301.o
- obj-$(CONFIG_RTC_DRV_RV3029C2)        += rtc-rv3029c2.o
- obj-$(CONFIG_RTC_DRV_RV8803)  += rtc-rv8803.o
- obj-$(CONFIG_RTC_DRV_RX4581)  += rtc-rx4581.o
---- /dev/null
-+++ b/drivers/rtc/rtc-rtc7301.c
-@@ -0,0 +1,219 @@
-+/*
-+ * Driver for Epson RTC-7301SF/DG
-+ *
-+ * Copyright (C) 2009 Jose Vasconcellos
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/rtc.h>
-+#include <linux/platform_device.h>
-+#include <linux/io.h>
-+#include <linux/delay.h>
-+#include <linux/bcd.h>
-+
-+#define RTC_NAME "rtc7301"
-+#define RTC_VERSION "0.1"
-+
-+/* Epson RTC-7301 register addresses */
-+#define RTC7301_SEC           0x00
-+#define RTC7301_SEC10         0x01
-+#define RTC7301_MIN           0x02
-+#define RTC7301_MIN10         0x03
-+#define RTC7301_HOUR          0x04
-+#define RTC7301_HOUR10                0x05
-+#define RTC7301_WEEKDAY               0x06
-+#define RTC7301_DAY           0x07
-+#define RTC7301_DAY10         0x08
-+#define RTC7301_MON           0x09
-+#define RTC7301_MON10         0x0A
-+#define RTC7301_YEAR          0x0B
-+#define RTC7301_YEAR10                0x0C
-+#define RTC7301_YEAR100               0x0D
-+#define RTC7301_YEAR1000      0x0E
-+#define RTC7301_CTRLREG               0x0F
-+
-+static uint8_t __iomem *rtc7301_base;
-+
-+#define read_reg(offset) (readb(rtc7301_base + offset) & 0xf)
-+#define write_reg(offset, data) writeb(data, rtc7301_base + (offset))
-+
-+#define rtc7301_isbusy() (read_reg(RTC7301_CTRLREG) & 1)
-+
-+static void rtc7301_init_settings(void)
-+{
-+      int i;
-+
-+      write_reg(RTC7301_CTRLREG, 2);
-+      write_reg(RTC7301_YEAR1000, 2);
-+      udelay(122);
-+
-+      /* bank 1 */
-+      write_reg(RTC7301_CTRLREG, 6);
-+      for (i=0; i<15; i++)
-+              write_reg(i, 0);
-+
-+      /* bank 2 */
-+      write_reg(RTC7301_CTRLREG, 14);
-+      for (i=0; i<15; i++)
-+              write_reg(i, 0);
-+      write_reg(RTC7301_CTRLREG, 0);
-+}
-+
-+static int rtc7301_get_datetime(struct device *dev, struct rtc_time *dt)
-+{
-+      int cnt;
-+      uint8_t buf[16];
-+
-+      cnt = 0;
-+      while (rtc7301_isbusy()) {
-+              udelay(244);
-+              if (cnt++ > 100) {
-+                      dev_err(dev, "%s: timeout error %x\n", __func__, rtc7301_base[RTC7301_CTRLREG]);
-+                      return -EIO;
-+              }
-+      }
-+
-+      for (cnt=0; cnt<16; cnt++)
-+              buf[cnt] = read_reg(cnt);
-+
-+      if (buf[RTC7301_SEC10] & 8) {
-+              dev_err(dev, "%s: RTC not set\n", __func__);
-+              return -EINVAL;
-+      }
-+
-+      memset(dt, 0, sizeof(*dt));
-+
-+      dt->tm_sec =  buf[RTC7301_SEC] + buf[RTC7301_SEC10]*10;
-+      dt->tm_min =  buf[RTC7301_MIN] + buf[RTC7301_MIN10]*10;
-+      dt->tm_hour = buf[RTC7301_HOUR] + buf[RTC7301_HOUR10]*10;
-+
-+      dt->tm_mday = buf[RTC7301_DAY] + buf[RTC7301_DAY10]*10;
-+      dt->tm_mon =  buf[RTC7301_MON] + buf[RTC7301_MON10]*10 - 1;
-+      dt->tm_year = buf[RTC7301_YEAR] + buf[RTC7301_YEAR10]*10 +
-+                    buf[RTC7301_YEAR100]*100 +
-+                    ((buf[RTC7301_YEAR1000] & 3)*1000) - 1900;
-+
-+      /* the rtc device may contain illegal values on power up
-+       * according to the data sheet. make sure they are valid.
-+       */
-+
-+      return rtc_valid_tm(dt);
-+}
-+
-+static int rtc7301_set_datetime(struct device *dev, struct rtc_time *dt)
-+{
-+      int data;
-+
-+      data = dt->tm_year + 1900;
-+      if (data >= 2100 || data < 1900)
-+              return -EINVAL;
-+
-+      write_reg(RTC7301_CTRLREG, 2);
-+              udelay(122);
-+
-+      data = bin2bcd(dt->tm_sec);
-+      write_reg(RTC7301_SEC, data);
-+      write_reg(RTC7301_SEC10, (data >> 4));
-+
-+      data = bin2bcd(dt->tm_min);
-+      write_reg(RTC7301_MIN, data );
-+      write_reg(RTC7301_MIN10, (data >> 4));
-+
-+      data = bin2bcd(dt->tm_hour);
-+      write_reg(RTC7301_HOUR, data);
-+      write_reg(RTC7301_HOUR10, (data >> 4));
-+
-+      data = bin2bcd(dt->tm_mday);
-+      write_reg(RTC7301_DAY, data);
-+      write_reg(RTC7301_DAY10, (data>> 4));
-+
-+      data = bin2bcd(dt->tm_mon + 1);
-+      write_reg(RTC7301_MON, data);
-+      write_reg(RTC7301_MON10, (data >> 4));
-+
-+      data = bin2bcd(dt->tm_year % 100);
-+      write_reg(RTC7301_YEAR, data);
-+      write_reg(RTC7301_YEAR10, (data >> 4));
-+      data = bin2bcd((1900 + dt->tm_year) / 100);
-+      write_reg(RTC7301_YEAR100, data);
-+
-+      data = bin2bcd(dt->tm_wday);
-+      write_reg(RTC7301_WEEKDAY, data);
-+
-+      write_reg(RTC7301_CTRLREG, 0);
-+
-+      return 0;
-+}
-+
-+static const struct rtc_class_ops rtc7301_rtc_ops = {
-+      .read_time      = rtc7301_get_datetime,
-+      .set_time       = rtc7301_set_datetime,
-+};
-+
-+static int rtc7301_probe(struct platform_device *pdev)
-+{
-+      struct rtc_device *rtc;
-+      struct resource *res;
-+
-+      res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+      if (!res)
-+              return -ENOENT;
-+
-+      rtc7301_base = ioremap_nocache(res->start, 0x1000 /*res->end - res->start + 1*/);
-+      if (!rtc7301_base)
-+              return -EINVAL;
-+
-+      rtc = rtc_device_register(RTC_NAME, &pdev->dev,
-+                              &rtc7301_rtc_ops, THIS_MODULE);
-+      if (IS_ERR(rtc)) {
-+              iounmap(rtc7301_base);
-+              return PTR_ERR(rtc);
-+      }
-+
-+      platform_set_drvdata(pdev, rtc);
-+
-+      rtc7301_init_settings();
-+      return 0;
-+}
-+
-+static int rtc7301_remove(struct platform_device *pdev)
-+{
-+      struct rtc_device *rtc = platform_get_drvdata(pdev);
-+
-+      if (rtc)
-+              rtc_device_unregister(rtc);
-+      if (rtc7301_base)
-+              iounmap(rtc7301_base);
-+      return 0;
-+}
-+
-+static struct platform_driver rtc7301_driver = {
-+      .driver = {
-+              .name   = RTC_NAME,
-+              .owner  = THIS_MODULE,
-+      },
-+      .probe  = rtc7301_probe,
-+      .remove = rtc7301_remove,
-+};
-+
-+static __init int rtc7301_init(void)
-+{
-+      return platform_driver_register(&rtc7301_driver);
-+}
-+module_init(rtc7301_init);
-+
-+static __exit void rtc7301_exit(void)
-+{
-+      platform_driver_unregister(&rtc7301_driver);
-+}
-+module_exit(rtc7301_exit);
-+
-+MODULE_DESCRIPTION("Epson 7301 RTC driver");
-+MODULE_AUTHOR("Jose Vasconcellos <jvasco@verizon.net>");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:" RTC_NAME);
-+MODULE_VERSION(RTC_VERSION);
diff --git a/target/linux/generic/patches-4.9/841-rtc_pt7c4338.patch b/target/linux/generic/patches-4.9/841-rtc_pt7c4338.patch
deleted file mode 100644 (file)
index 083f1f1..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
---- a/drivers/rtc/Kconfig
-+++ b/drivers/rtc/Kconfig
-@@ -610,6 +610,15 @@ config RTC_DRV_S5M
-         This driver can also be built as a module. If so, the module
-         will be called rtc-s5m.
-+config RTC_DRV_PT7C4338
-+      tristate "Pericom Technology Inc. PT7C4338 RTC"
-+      help
-+        If you say yes here you get support for the Pericom Technology
-+        Inc. PT7C4338 RTC chip.
-+
-+        This driver can also be built as a module. If so, the module
-+        will be called rtc-pt7c4338.
-+
- endif # I2C
- comment "SPI RTC drivers"
---- a/drivers/rtc/Makefile
-+++ b/drivers/rtc/Makefile
-@@ -118,6 +118,7 @@ obj-$(CONFIG_RTC_DRV_PL030)        += rtc-pl030
- obj-$(CONFIG_RTC_DRV_PL031)   += rtc-pl031.o
- obj-$(CONFIG_RTC_DRV_PM8XXX)  += rtc-pm8xxx.o
- obj-$(CONFIG_RTC_DRV_PS3)     += rtc-ps3.o
-+obj-$(CONFIG_RTC_DRV_PT7C4338)        += rtc-pt7c4338.o
- obj-$(CONFIG_RTC_DRV_PUV3)    += rtc-puv3.o
- obj-$(CONFIG_RTC_DRV_PXA)     += rtc-pxa.o
- obj-$(CONFIG_RTC_DRV_R9701)   += rtc-r9701.o
---- /dev/null
-+++ b/drivers/rtc/rtc-pt7c4338.c
-@@ -0,0 +1,216 @@
-+/*
-+ * Copyright 2010 Freescale Semiconductor, Inc.
-+ *
-+ * Author:    Priyanka Jain <Priyanka.Jain@freescale.com>
-+ *
-+ * See file CREDITS for list of people who contributed to this
-+ * project.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
-+ * the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * MA 02111-1307 USA
-+ */
-+
-+/*
-+ * This file provides Date & Time support (no alarms) for PT7C4338 chip.
-+ *
-+ * This file is based on drivers/rtc/rtc-ds1307.c
-+ *
-+ * PT7C4338 chip is manufactured by Pericom Technology Inc.
-+ * It is a serial real-time clock which provides
-+ * 1)Low-power clock/calendar.
-+ * 2)Programmable square-wave output.
-+ * It has 56 bytes of nonvolatile RAM.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/i2c.h>
-+#include <linux/rtc.h>
-+#include <linux/bcd.h>
-+
-+/* RTC register addresses */
-+#define PT7C4338_REG_SECONDS          0x00
-+#define PT7C4338_REG_MINUTES          0x01
-+#define PT7C4338_REG_HOURS            0x02
-+#define PT7C4338_REG_AMPM             0x02
-+#define PT7C4338_REG_DAY              0x03
-+#define PT7C4338_REG_DATE             0x04
-+#define PT7C4338_REG_MONTH            0x05
-+#define PT7C4338_REG_YEAR             0x06
-+#define PT7C4338_REG_CTRL_STAT        0x07
-+
-+/* RTC second register address bit */
-+#define PT7C4338_SEC_BIT_CH           0x80    /*Clock Halt (in Register 0)*/
-+
-+/* RTC control and status register bits */
-+#define PT7C4338_CTRL_STAT_BIT_RS0    0x1     /*Rate select 0*/
-+#define PT7C4338_CTRL_STAT_BIT_RS1    0x2     /*Rate select 1*/
-+#define PT7C4338_CTRL_STAT_BIT_SQWE   0x10    /*Square Wave Enable*/
-+#define PT7C4338_CTRL_STAT_BIT_OSF    0x20    /*Oscillator Stop Flag*/
-+#define PT7C4338_CTRL_STAT_BIT_OUT    0x80    /*Output Level Control*/
-+
-+static const struct i2c_device_id pt7c4338_id[] = {
-+      { "pt7c4338", 0 },
-+      { }
-+};
-+MODULE_DEVICE_TABLE(i2c, pt7c4338_id);
-+
-+struct pt7c4338{
-+      struct i2c_client *client;
-+      struct rtc_device *rtc;
-+};
-+
-+static int pt7c4338_read_time(struct device *dev, struct rtc_time *time)
-+{
-+      struct i2c_client *client = to_i2c_client(dev);
-+      int ret;
-+      u8 buf[7];
-+      u8 year, month, day, hour, minute, second;
-+      u8 week, twelve_hr, am_pm;
-+
-+      ret = i2c_smbus_read_i2c_block_data(client,
-+                      PT7C4338_REG_SECONDS, 7, buf);
-+      if (ret < 0)
-+              return ret;
-+      if (ret < 7)
-+              return -EIO;
-+
-+      second = buf[0];
-+      minute = buf[1];
-+      hour = buf[2];
-+      week = buf[3];
-+      day = buf[4];
-+      month = buf[5];
-+      year = buf[6];
-+
-+      /* Extract additional information for AM/PM */
-+      twelve_hr = hour & 0x40;
-+      am_pm = hour & 0x20;
-+
-+      /* Write to rtc_time structure */
-+      time->tm_sec = bcd2bin(second & 0x7f);
-+      time->tm_min = bcd2bin(minute & 0x7f);
-+      if (twelve_hr) {
-+              /* Convert to 24 hr */
-+              if (am_pm)
-+                      time->tm_hour = bcd2bin(hour & 0x10) + 12;
-+              else
-+                      time->tm_hour = bcd2bin(hour & 0xBF);
-+      } else {
-+              time->tm_hour = bcd2bin(hour);
-+      }
-+
-+      time->tm_wday = bcd2bin(week & 0x07) - 1;
-+      time->tm_mday = bcd2bin(day & 0x3f);
-+      time->tm_mon = bcd2bin(month & 0x1F) - 1;
-+      /* assume 20YY not 19YY */
-+      time->tm_year = bcd2bin(year) + 100;
-+
-+      return 0;
-+}
-+
-+static int pt7c4338_set_time(struct device *dev, struct rtc_time *time)
-+{
-+      struct i2c_client *client = to_i2c_client(dev);
-+      u8 buf[7];
-+
-+      /* Extract time from rtc_time and load into pt7c4338*/
-+      buf[0] = bin2bcd(time->tm_sec);
-+      buf[1] = bin2bcd(time->tm_min);
-+      buf[2] = bin2bcd(time->tm_hour);
-+      buf[3] = bin2bcd(time->tm_wday + 1); /* Day of the week */
-+      buf[4] = bin2bcd(time->tm_mday); /* Date */
-+      buf[5] = bin2bcd(time->tm_mon + 1);
-+
-+      /* assume 20YY not 19YY */
-+      if (time->tm_year >= 100)
-+              buf[6] = bin2bcd(time->tm_year - 100);
-+      else
-+              buf[6] = bin2bcd(time->tm_year);
-+
-+      return i2c_smbus_write_i2c_block_data(client,
-+                                      PT7C4338_REG_SECONDS, 7, buf);
-+}
-+
-+static const struct rtc_class_ops pt7c4338_rtc_ops = {
-+      .read_time = pt7c4338_read_time,
-+      .set_time = pt7c4338_set_time,
-+};
-+
-+static int pt7c4338_probe(struct i2c_client *client,
-+              const struct i2c_device_id *id)
-+{
-+      struct pt7c4338 *pt7c4338;
-+      struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
-+      int ret;
-+
-+      pt7c4338 = kzalloc(sizeof(struct pt7c4338), GFP_KERNEL);
-+      if (!pt7c4338)
-+              return -ENOMEM;
-+
-+      pt7c4338->client = client;
-+      i2c_set_clientdata(client, pt7c4338);
-+      pt7c4338->rtc = rtc_device_register(client->name, &client->dev,
-+                                      &pt7c4338_rtc_ops, THIS_MODULE);
-+      if (IS_ERR(pt7c4338->rtc)) {
-+              ret = PTR_ERR(pt7c4338->rtc);
-+              dev_err(&client->dev, "unable to register the class device\n");
-+              goto out_free;
-+      }
-+
-+      return 0;
-+out_free:
-+      i2c_set_clientdata(client, NULL);
-+      kfree(pt7c4338);
-+      return ret;
-+}
-+
-+static int pt7c4338_remove(struct i2c_client *client)
-+{
-+      struct pt7c4338 *pt7c4338 = i2c_get_clientdata(client);
-+
-+      rtc_device_unregister(pt7c4338->rtc);
-+      i2c_set_clientdata(client, NULL);
-+      kfree(pt7c4338);
-+      return 0;
-+}
-+
-+static struct i2c_driver pt7c4338_driver = {
-+      .driver = {
-+              .name = "rtc-pt7c4338",
-+              .owner = THIS_MODULE,
-+      },
-+      .probe = pt7c4338_probe,
-+      .remove = pt7c4338_remove,
-+      .id_table = pt7c4338_id,
-+};
-+
-+static int __init pt7c4338_init(void)
-+{
-+      return i2c_add_driver(&pt7c4338_driver);
-+}
-+
-+static void __exit pt7c4338_exit(void)
-+{
-+      i2c_del_driver(&pt7c4338_driver);
-+}
-+
-+module_init(pt7c4338_init);
-+module_exit(pt7c4338_exit);
-+
-+MODULE_AUTHOR("Priyanka Jain <Priyanka.Jain@freescale.com>");
-+MODULE_DESCRIPTION("pericom Technology Inc. PT7C4338 RTC Driver");
-+MODULE_LICENSE("GPL");
diff --git a/target/linux/generic/patches-4.9/890-uart_optional_sysrq.patch b/target/linux/generic/patches-4.9/890-uart_optional_sysrq.patch
deleted file mode 100644 (file)
index 5f7de2b..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/lib/Kconfig.debug
-+++ b/lib/Kconfig.debug
-@@ -397,6 +397,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE
-         This may be set to 1 or 0 to enable or disable them all, or
-         to a bitmask as described in Documentation/sysrq.txt.
-+config MAGIC_SYSRQ_SERIAL
-+      bool "Enable magic SysRq key over serial"
-+      depends on MAGIC_SYSRQ
-+      default y
-+
- config DEBUG_KERNEL
-       bool "Kernel debugging"
-       help
---- a/include/linux/serial_core.h
-+++ b/include/linux/serial_core.h
-@@ -448,7 +448,7 @@ extern void uart_handle_cts_change(struc
- extern void uart_insert_char(struct uart_port *port, unsigned int status,
-                unsigned int overrun, unsigned int ch, unsigned int flag);
--#ifdef SUPPORT_SYSRQ
-+#if defined(SUPPORT_SYSRQ) && defined(CONFIG_MAGIC_SYSRQ_SERIAL)
- static inline int
- uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
- {
diff --git a/target/linux/generic/patches-4.9/910-kobject_uevent.patch b/target/linux/generic/patches-4.9/910-kobject_uevent.patch
deleted file mode 100644 (file)
index a2c935f..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/lib/kobject_uevent.c
-+++ b/lib/kobject_uevent.c
-@@ -52,6 +52,18 @@ static const char *kobject_actions[] = {
-       [KOBJ_OFFLINE] =        "offline",
- };
-+u64 uevent_next_seqnum(void)
-+{
-+      u64 seq;
-+
-+      mutex_lock(&uevent_sock_mutex);
-+      seq = ++uevent_seqnum;
-+      mutex_unlock(&uevent_sock_mutex);
-+
-+      return seq;
-+}
-+EXPORT_SYMBOL_GPL(uevent_next_seqnum);
-+
- /**
-  * kobject_action_type - translate action string to numeric type
-  *
similarity index 89%
rename from target/linux/generic/patches-4.9/100-MIPS-fix-cache-flushing-for-highmem-pages.patch
rename to target/linux/generic/pending-4.9/100-MIPS-fix-cache-flushing-for-highmem-pages.patch
index cbe666a61fcb8b0ccb104e691401276ac9d38282..622fab65b7e05224819a15bac9c92d3c5a9e1ce9 100644 (file)
@@ -1,6 +1,5 @@
 From: Felix Fietkau <nbd@nbd.name>
-Date: Sun, 24 Jan 2016 01:03:51 +0100
-Subject: [PATCH] MIPS: fix cache flushing for highmem pages
+Subject: MIPS: fix cache flushing for highmem pages
 
 Most cache flush ops were no-op for highmem pages. This led to nasty
 segfaults and (in the case of page_address(page) == NULL) kernel
similarity index 93%
rename from target/linux/generic/patches-4.9/110-ehci_hcd_ignore_oc.patch
rename to target/linux/generic/pending-4.9/110-ehci_hcd_ignore_oc.patch
index 2d1f53be268c6a99e146baccb7437bb65bdeda19..644d936574e27b826938b9d2a3e1e88bc4734172 100644 (file)
@@ -1,8 +1,5 @@
-From 1e311820ec3055e3f08e687de6564692a7cec675 Mon Sep 17 00:00:00 2001
 From: Florian Fainelli <florian@openwrt.org>
-Date: Mon, 28 Jan 2013 20:06:29 +0100
-Subject: [PATCH 11/12] USB: EHCI: add ignore_oc flag to disable overcurrent
- checking
+Subject: USB: EHCI: add ignore_oc flag to disable overcurrent checking
 
 This patch adds an ignore_oc flag which can be set by EHCI controller
 not supporting or wanting to disable overcurrent checking. The EHCI
similarity index 95%
rename from target/linux/generic/patches-4.9/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
rename to target/linux/generic/pending-4.9/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch
index 3f746ebd0a7cdd05fa8f17bec7cfc0986bcbe552..a5d3a3db32b988370fe801aea3d293c534b9ca16 100644 (file)
@@ -1,9 +1,5 @@
 From: Tobias Wolf <dev-NTEO@vplace.de>
-Date: Wed, 30 Nov 2016 09:16:41 +0100
-Subject: [PATCH] mm: Fix alloc_node_mem_map with ARCH_PFN_OFFSET
- calculation
-
-Dear folks,
+Subject: mm: Fix alloc_node_mem_map with ARCH_PFN_OFFSET calculation
 
 An rt288x (ralink) based router (Belkin F5D8235 v1) does not boot with any
 kernel beyond version 4.3 resulting in:
similarity index 55%
rename from target/linux/generic/patches-4.9/130-add-linux-spidev-compatible-si3210.patch
rename to target/linux/generic/pending-4.9/130-add-linux-spidev-compatible-si3210.patch
index 300ec61ad8008c5bee018fff671bc552bb79ea1f..01ac900b81999c357ad872ffd3bf4e414433eb19 100644 (file)
@@ -1,8 +1,13 @@
-Add the linux,spidev compatible in spidev
-Several device in ramips have this binding in the dts
+From: Giuseppe Lippolis <giu.lippolis@gmail.com>
+Subject: Add the linux,spidev compatible in spidev Several device in ramips have this binding in the dts
 
 Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
 ---
+ drivers/spi/spidev.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c
+index 2e05046f866b..09d03763f39b 100644
 --- a/drivers/spi/spidev.c
 +++ b/drivers/spi/spidev.c
 @@ -696,6 +696,7 @@ static struct class *spidev_class;
@@ -13,3 +18,6 @@ Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
        {},
  };
  MODULE_DEVICE_TABLE(of, spidev_dt_ids);
+-- 
+2.11.0
+
similarity index 72%
rename from target/linux/generic/patches-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch
rename to target/linux/generic/pending-4.9/131-spi-use-gpio_set_value_cansleep-for-setting-chipsele.patch
index 62d6b0085203912d80d74814263a12dca47a3bbe..e11e7148d9a858816fb686bb1b0a874145cf3288 100644 (file)
@@ -1,6 +1,5 @@
 From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 30 Dec 2016 14:53:45 +0100
-Subject: [PATCH] spi: use gpio_set_value_cansleep for setting chipselect GPIO
+Subject: spi: use gpio_set_value_cansleep for setting chipselect GPIO
 
 Sleeping is safe inside spi_transfer_one_message, and some GPIO chips
 need to sleep for setting values
@@ -10,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/drivers/spi/spi.c
 +++ b/drivers/spi/spi.c
-@@ -700,7 +700,7 @@ static void spi_set_cs(struct spi_device
+@@ -698,7 +698,7 @@ static void spi_set_cs(struct spi_device
                enable = !enable;
  
        if (gpio_is_valid(spi->cs_gpio))
similarity index 93%
rename from target/linux/generic/patches-4.9/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
rename to target/linux/generic/pending-4.9/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch
index 10548020d34dee8f224e53c71ddc44336af663f2..b9bb3f71f1081b0dac8147a1c232b61b7d595f12 100644 (file)
@@ -1,6 +1,5 @@
 From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 10 Apr 2015 13:35:29 +0200
-Subject: [PATCH] jffs2: use .rename2 and add RENAME_WHITEOUT support
+Subject: jffs2: use .rename2 and add RENAME_WHITEOUT support
 
 It is required for renames on overlayfs
 
similarity index 96%
rename from target/linux/generic/patches-4.9/141-jffs2-add-RENAME_EXCHANGE-support.patch
rename to target/linux/generic/pending-4.9/141-jffs2-add-RENAME_EXCHANGE-support.patch
index 88187bbdb8bbca384df07f98aed4d45b36469b58..4b30bc7cd0f4250b035c85e4752f806ee89df27f 100644 (file)
@@ -1,6 +1,5 @@
 From: Felix Fietkau <nbd@nbd.name>
-Date: Sat, 25 Apr 2015 12:41:32 +0200
-Subject: [PATCH] jffs2: add RENAME_EXCHANGE support
+Subject: jffs2: add RENAME_EXCHANGE support
 
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
 ---
similarity index 96%
rename from target/linux/generic/patches-4.9/160-mtd-part-add-generic-parsing-of-linux-part-probe.patch
rename to target/linux/generic/pending-4.9/160-mtd-part-add-generic-parsing-of-linux-part-probe.patch
index 41609d5aaeddda310614338a74eb913943baa242..5e9ad8cf07fbea707f7c7817a8d9ee1f180e8991 100644 (file)
@@ -1,7 +1,5 @@
-From 3e7056c3a369e9ef9ca804bc626b60ef6b62ee27 Mon Sep 17 00:00:00 2001
 From: Hauke Mehrtens <hauke@hauke-m.de>
-Date: Sun, 17 May 2015 18:48:38 +0200
-Subject: [PATCH 2/3] mtd: part: add generic parsing of linux,part-probe
+Subject: mtd: part: add generic parsing of linux,part-probe
 
 This moves the linux,part-probe device tree parsing code from
 physmap_of.c to mtdpart.c. Now all drivers can use this feature by just
similarity index 96%
rename from target/linux/generic/patches-4.9/170-MIPS-PCI-add-controllers-before-the-specified-head.patch
rename to target/linux/generic/pending-4.9/170-MIPS-PCI-add-controllers-before-the-specified-head.patch
index b6db663fc27a97b748481a91fafc3f81e6a8e3a9..3eed80e71427b6feb77f210dcc6f2444e3cc4078 100644 (file)
@@ -1,5 +1,4 @@
 From: Mathias Kresin <dev@kresin.me>
-Date: Sun, 26 Mar 2017 19:05:36 +0200
 Subject: MIPS: PCI: add controllers before the specified head
 
 With commit 23dac14d058f ("MIPS: PCI: Use struct list_head lists") new
similarity index 95%
rename from target/linux/generic/patches-4.9/180-net-phy-at803x-add-support-for-AT8032.patch
rename to target/linux/generic/pending-4.9/180-net-phy-at803x-add-support-for-AT8032.patch
index 98ba6915893bd45c4453385e9a76f37200796bee..f2d5df503f8927b7fa246fb1299a977df3992c71 100644 (file)
@@ -1,6 +1,5 @@
 From: Felix Fietkau <nbd@nbd.name>
-Date: Wed, 30 Nov 2016 11:31:03 +0100
-Subject: [PATCH] net: phy: at803x: add support for AT8032
+Subject: net: phy: at803x: add support for AT8032
 
 Like AT8030, this PHY needs the GPIO reset workaround
 
diff --git a/target/linux/generic/pending-4.9/201-extra_optimization.patch b/target/linux/generic/pending-4.9/201-extra_optimization.patch
new file mode 100644 (file)
index 0000000..b0ad420
--- /dev/null
@@ -0,0 +1,37 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: Upgrade to Linux 2.6.19
+
+- Includes large parts of the patch from #1021 by dpalffy
+- Includes RB532 NAND driver changes by n0-1
+
+[john@phrozen.org: feix will add this to his upstream queue]
+
+lede-commit: bff468813f78f81e36ebb2a3f4354de7365e640f
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 598494bc9a4b..1f02ac9b571a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -637,12 +637,12 @@ KBUILD_CFLAGS    += $(call cc-option,-fdata-sections,)
+ endif
+ ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
+-KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,)
++KBUILD_CFLAGS += -Os $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+ else
+ ifdef CONFIG_PROFILE_ALL_BRANCHES
+-KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,)
++KBUILD_CFLAGS += -O2 $(call cc-disable-warning,maybe-uninitialized,) $(EXTRA_OPTIMIZATION)
+ else
+-KBUILD_CFLAGS   += -O2
++KBUILD_CFLAGS   += -O2 -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)
+ endif
+ endif
+-- 
+2.11.0
+
similarity index 69%
rename from target/linux/generic/patches-4.9/203-kallsyms_uncompressed.patch
rename to target/linux/generic/pending-4.9/203-kallsyms_uncompressed.patch
index e3c9562c3d766235345c759c6015bf1fe2cad4b0..78255f5bcda0e471e6c455a3b6d0f74681319f4e 100644 (file)
@@ -1,6 +1,69 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: add a config option for keeping the kallsyms table uncompressed, saving ~9kb kernel size after lzma on ar71xx
+
+[john@phrozen.org: added to my upstream queue 30.12.2016]
+lede-commit: e0e3509b5ce2ccf93d4d67ea907613f5f7ec2eed
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ init/Kconfig            | 11 +++++++++++
+ kernel/kallsyms.c       |  8 ++++++++
+ scripts/kallsyms.c      | 12 ++++++++++++
+ scripts/link-vmlinux.sh |  4 ++++
+ 4 files changed, 35 insertions(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 34407f15e6d3..9063c81b9665 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1370,6 +1370,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
+         the unaligned access emulation.
+         see arch/parisc/kernel/unaligned.c for reference
++config KALLSYMS_UNCOMPRESSED
++      bool "Keep kallsyms uncompressed"
++      depends on KALLSYMS
++      help
++              Normally kallsyms contains compressed symbols (using a token table),
++              reducing the uncompressed kernel image size. Keeping the symbol table
++              uncompressed significantly improves the size of this part in compressed
++              kernel images.
++
++              Say N unless you need compressed kernel images to be small.
++
+ config HAVE_PCSPKR_PLATFORM
+       bool
+diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
+index fafd1a3ef0da..abe49579212f 100644
+--- a/kernel/kallsyms.c
++++ b/kernel/kallsyms.c
+@@ -113,6 +113,11 @@ static unsigned int kallsyms_expand_symbol(unsigned int off,
+        * For every byte on the compressed symbol data, copy the table
+        * entry for that byte.
+        */
++#ifdef CONFIG_KALLSYMS_UNCOMPRESSED
++      memcpy(result, data + 1, len - 1);
++      result += len - 1;
++      len = 0;
++#endif
+       while (len) {
+               tptr = &kallsyms_token_table[kallsyms_token_index[*data]];
+               data++;
+@@ -145,6 +150,9 @@ static unsigned int kallsyms_expand_symbol(unsigned int off,
+  */
+ static char kallsyms_get_symbol_type(unsigned int off)
+ {
++#ifdef CONFIG_KALLSYMS_UNCOMPRESSED
++      return kallsyms_names[off + 1];
++#endif
+       /*
+        * Get just the first code, look it up in the token table,
+        * and return the first char from this token.
+diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
+index 1f22a186c18c..e7f0f19e39a9 100644
 --- a/scripts/kallsyms.c
 +++ b/scripts/kallsyms.c
-@@ -61,6 +61,7 @@ static struct addr_range percpu_range =
+@@ -61,6 +61,7 @@ static struct addr_range percpu_range = {
  static struct sym_entry *table;
  static unsigned int table_size, table_cnt;
  static int all_symbols = 0;
@@ -18,7 +81,7 @@
        output_label("kallsyms_token_table");
        off = 0;
        for (i = 0; i < 256; i++) {
-@@ -504,6 +508,9 @@ static void *find_token(unsigned char *s
+@@ -504,6 +508,9 @@ static void *find_token(unsigned char *str, int len, unsigned char *token)
  {
        int i;
  
                        else
                                usage();
                }
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -1370,6 +1370,17 @@ config SYSCTL_ARCH_UNALIGN_ALLOW
-         the unaligned access emulation.
-         see arch/parisc/kernel/unaligned.c for reference
-+config KALLSYMS_UNCOMPRESSED
-+      bool "Keep kallsyms uncompressed"
-+      depends on KALLSYMS
-+      help
-+              Normally kallsyms contains compressed symbols (using a token table),
-+              reducing the uncompressed kernel image size. Keeping the symbol table
-+              uncompressed significantly improves the size of this part in compressed
-+              kernel images.
-+
-+              Say N unless you need compressed kernel images to be small.
-+
- config HAVE_PCSPKR_PLATFORM
-       bool
+diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
+index f742c65108b9..6aabf1d71bb6 100755
 --- a/scripts/link-vmlinux.sh
 +++ b/scripts/link-vmlinux.sh
 @@ -136,6 +136,10 @@ kallsyms()
        local aflags="${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL}               \
                      ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS}"
  
---- a/kernel/kallsyms.c
-+++ b/kernel/kallsyms.c
-@@ -113,6 +113,11 @@ static unsigned int kallsyms_expand_symb
-        * For every byte on the compressed symbol data, copy the table
-        * entry for that byte.
-        */
-+#ifdef CONFIG_KALLSYMS_UNCOMPRESSED
-+      memcpy(result, data + 1, len - 1);
-+      result += len - 1;
-+      len = 0;
-+#endif
-       while (len) {
-               tptr = &kallsyms_token_table[kallsyms_token_index[*data]];
-               data++;
-@@ -145,6 +150,9 @@ tail:
-  */
- static char kallsyms_get_symbol_type(unsigned int off)
- {
-+#ifdef CONFIG_KALLSYMS_UNCOMPRESSED
-+      return kallsyms_names[off + 1];
-+#endif
-       /*
-        * Get just the first code, look it up in the token table,
-        * and return the first char from this token.
+-- 
+2.11.0
+
similarity index 54%
rename from target/linux/generic/patches-4.9/205-backtrace_module_info.patch
rename to target/linux/generic/pending-4.9/205-backtrace_module_info.patch
index 25fe3751aa62c28d234ccb063be94c0abba0e8c4..e8a55cc391cf1748356f68f091f809c95b39d3cf 100644 (file)
@@ -1,6 +1,19 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: when KALLSYMS is disabled, print module address + size for matching backtrace entries
+
+[john@phrozen.org: felix will add this to his upstream queue]
+
+lede-commit 53827cdc824556cda910b23ce5030c363b8f1461
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ lib/vsprintf.c | 15 +++++++++++----
+ 1 file changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/lib/vsprintf.c b/lib/vsprintf.c
+index 0967771d8f7f..5d27eae49198 100644
 --- a/lib/vsprintf.c
 +++ b/lib/vsprintf.c
-@@ -669,8 +669,10 @@ char *symbol_string(char *buf, char *end
+@@ -669,8 +669,10 @@ char *symbol_string(char *buf, char *end, void *ptr,
                    struct printf_spec spec, const char *fmt)
  {
        unsigned long value;
@@ -12,7 +25,7 @@
  #endif
  
        if (fmt[1] == 'R')
-@@ -684,11 +686,16 @@ char *symbol_string(char *buf, char *end
+@@ -684,11 +686,16 @@ char *symbol_string(char *buf, char *end, void *ptr,
                sprint_symbol(sym, value);
        else
                sprint_symbol_no_offset(sym, value);
@@ -32,3 +45,6 @@
  }
  
  static noinline_for_stack
+-- 
+2.11.0
+
similarity index 58%
rename from target/linux/generic/patches-4.9/206-mips-disable-vdso.patch
rename to target/linux/generic/pending-4.9/206-mips-disable-vdso.patch
index e45e734cd36e0a78df64b247dcc7d2e5d33747d3..9785f932e70fbd2060dc1d7f3e6e9b980fa60306 100644 (file)
@@ -1,7 +1,14 @@
-Disable MIPS VDSO until the cache issues have been sorted out.
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: disable MIPS VDSO by default until the cache issues have been resolved
 
+lede-commit: 1185e645a773c86aa88cf04d0e2911dc62eb43f5
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/mips/vdso/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
+diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
+index c3dc12a8b7d9..28f66e3bb2c3 100644
 --- a/arch/mips/vdso/Makefile
 +++ b/arch/mips/vdso/Makefile
 @@ -28,9 +28,9 @@ aflags-vdso := $(ccflags-vdso) \
@@ -16,3 +23,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  endif
  
  # VDSO linker flags.
+-- 
+2.11.0
+
similarity index 58%
rename from target/linux/generic/patches-4.9/240-remove-unsane-filenames-from-deps_initramfs-list.patch
rename to target/linux/generic/pending-4.9/240-remove-unsane-filenames-from-deps_initramfs-list.patch
index ac13c9e673680a6bdd06ea0cb941b8c61d11f44b..dd1404fbd60c302f2da69f30eb3021d6e520a168 100644 (file)
@@ -1,6 +1,26 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: usr: sanitize deps_initramfs list
+
+If any filename in the intramfs dependency
+list contains a colon, that causes a kernel
+build error like this:
+
+/devel/openwrt/build_dir/linux-ar71xx_generic/linux-3.6.6/usr/Makefile:58: *** multiple target patterns.  Stop.
+make[5]: *** [usr] Error 2
+
+Fix it by removing such filenames from the
+deps_initramfs list.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ usr/Makefile | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/usr/Makefile b/usr/Makefile
+index e767f019accf..17328d3c11cc 100644
 --- a/usr/Makefile
 +++ b/usr/Makefile
-@@ -53,6 +53,8 @@ ifneq ($(wildcard $(obj)/.initramfs_data
+@@ -53,6 +53,8 @@ ifneq ($(wildcard $(obj)/.initramfs_data.cpio.d),)
        include $(obj)/.initramfs_data.cpio.d
  endif
  
@@ -9,7 +29,7 @@
  quiet_cmd_initfs = GEN     $@
        cmd_initfs = $(initramfs) -o $@ $(ramfs-args) $(ramfs-input)
  
-@@ -61,14 +63,14 @@ targets := initramfs_data.cpio.gz initra
+@@ -61,14 +63,14 @@ targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 \
        initramfs_data.cpio.lzo initramfs_data.cpio.lz4 \
        initramfs_data.cpio
  # do not try to update files included in initramfs
@@ -27,3 +47,6 @@
 +$(obj)/initramfs_data.cpio$(suffix_y): $(obj)/gen_init_cpio $(deps_initramfs_sane) klibcdirs
        $(Q)$(initramfs) -l $(ramfs-input) > $(obj)/.initramfs_data.cpio.d
        $(call if_changed,initfs)
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/261-enable_wilink_platform_without_drivers.patch b/target/linux/generic/pending-4.9/261-enable_wilink_platform_without_drivers.patch
new file mode 100644 (file)
index 0000000..961fe6a
--- /dev/null
@@ -0,0 +1,25 @@
+From: Imre Kaloz <kaloz@openwrt.org>
+Subject: [PATCH] hack: net: wireless: make the wl12xx glue code available with
+ compat-wireless, too
+
+Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
+---
+ drivers/net/wireless/ti/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/wireless/ti/Kconfig b/drivers/net/wireless/ti/Kconfig
+index 92fbd6597e34..3b1f951cacf7 100644
+--- a/drivers/net/wireless/ti/Kconfig
++++ b/drivers/net/wireless/ti/Kconfig
+@@ -19,7 +19,7 @@ source "drivers/net/wireless/ti/wlcore/Kconfig"
+ config WILINK_PLATFORM_DATA
+       bool "TI WiLink platform data"
+-      depends on WLCORE_SDIO || WL1251_SDIO
++      depends on WLCORE_SDIO || WL1251_SDIO || ARCH_OMAP2PLUS
+       default y
+       ---help---
+       Small platform data bit needed to pass data to the sdio modules.
+-- 
+2.11.0
+
similarity index 85%
rename from target/linux/generic/patches-4.9/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch
rename to target/linux/generic/pending-4.9/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch
index 762f4989b6dc0a73f6210e3e14353c4a554724d3..9c30fa81bf1ec51efd5b6d440bffdc1a226ae08d 100644 (file)
@@ -1,7 +1,5 @@
-From 8b05e325824d3b38e52a7748b3b5dc34dc1c0f6d Mon Sep 17 00:00:00 2001
 From: David Heidelberger <david.heidelberger@ixit.cz>
-Date: Mon, 29 Jun 2015 14:37:54 +0200
-Subject: [PATCH 1/3] uapi/kernel.h: glibc specific inclusion of sysinfo.h
+Subject: uapi/kernel.h: glibc specific inclusion of sysinfo.h
 
 including sysinfo.h from kernel.h makes no sense whatsoever,
 but removing it breaks glibc's userspace header,
similarity index 95%
rename from target/linux/generic/patches-4.9/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch
rename to target/linux/generic/pending-4.9/271-uapi-libc-compat.h-do-not-rely-on-__GLIBC__.patch
index ff47e75e735f2385404089b222d2ac8416a6e94c..a4aa1567e13ec3899243d02f63e962d5a2b9516c 100644 (file)
@@ -1,7 +1,5 @@
-From f972afc2509eebcb00d370256c55b112a3b5ffca Mon Sep 17 00:00:00 2001
 From: David Heidelberger <david.heidelberger@ixit.cz>
-Date: Mon, 29 Jun 2015 16:50:40 +0200
-Subject: [PATCH 2/3] uapi/libc-compat.h: do not rely on __GLIBC__
+Subject: uapi/libc-compat.h: do not rely on __GLIBC__
 
 Musl provides the same structs as glibc, but does not provide a define to
 allow its detection. Since the absence of __GLIBC__ also can mean that it
similarity index 91%
rename from target/linux/generic/patches-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
rename to target/linux/generic/pending-4.9/272-uapi-if_ether.h-prevent-redefinition-of-struct-ethhd.patch
index ce61f61a743fa68f1f216d1b2b111e889457ae16..7b7b403ed0295689693f33aae038e357bfb5bb9d 100644 (file)
@@ -1,7 +1,5 @@
-From fcbb6fed85ea9ff4feb4f1ebd4f0f235fdaf06b6 Mon Sep 17 00:00:00 2001
 From: David Heidelberger <david.heidelberger@ixit.cz>
-Date: Mon, 29 Jun 2015 16:53:03 +0200
-Subject: [PATCH 3/3] uapi/if_ether.h: prevent redefinition of struct ethhdr
+Subject: uapi/if_ether.h: prevent redefinition of struct ethhdr
 
 Musl provides its own ethhdr struct definition. Add a guard to prevent
 its definition of the appropriate musl header has already been included.
similarity index 95%
rename from target/linux/generic/patches-4.9/300-mips_expose_boot_raw.patch
rename to target/linux/generic/pending-4.9/300-mips_expose_boot_raw.patch
index 6925ddec6c283dd019fe55b7d89a51539413dd27..d7a3effa4cbb32328cc4a40bea6ecace781ccd99 100644 (file)
@@ -1,4 +1,5 @@
 From: Mark Miller <mark@mirell.org>
+Subject: mips: expose CONFIG_BOOT_RAW
 
 This exposes the CONFIG_BOOT_RAW symbol in Kconfig. This is needed on
 certain Broadcom chipsets running CFE in order to load the kernel.
diff --git a/target/linux/generic/pending-4.9/302-mips_no_branch_likely.patch b/target/linux/generic/pending-4.9/302-mips_no_branch_likely.patch
new file mode 100644 (file)
index 0000000..a7c26df
--- /dev/null
@@ -0,0 +1,27 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: mips: use -mno-branch-likely for kernel and userspace
+
+saves ~11k kernel size after lzma and ~12k squashfs size in the
+
+lede-commit: 41a039f46450ffae9483d6216422098669da2900
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/mips/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/mips/Makefile b/arch/mips/Makefile
+index 1a6bac7b076f..5b656d9a1bbe 100644
+--- a/arch/mips/Makefile
++++ b/arch/mips/Makefile
+@@ -90,7 +90,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
+ # machines may also.  Since BFD is incredibly buggy with respect to
+ # crossformat linking we rely on the elf2ecoff tool for format conversion.
+ #
+-cflags-y                      += -G 0 -mno-abicalls -fno-pic -pipe
++cflags-y                      += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
+ cflags-y                      += -msoft-float
+ LDFLAGS_vmlinux                       += -G 0 -static -n -nostdlib
+ KBUILD_AFLAGS_MODULE          += -mlong-calls
+-- 
+2.11.0
+
similarity index 97%
rename from target/linux/generic/patches-4.9/304-mips_disable_fpu.patch
rename to target/linux/generic/pending-4.9/304-mips_disable_fpu.patch
index a69ea5767878fc5253ae33aecc8c535c40868a8e..aac9c79da850c62d28e49b527dedb344a684cad1 100644 (file)
@@ -1,7 +1,5 @@
 From:   Manuel Lauss <manuel.lauss@gmail.com>
 Subject: [RFC PATCH v4 2/2] MIPS: make FPU emulator optional
-Date:   Mon,  7 Apr 2014 12:57:04 +0200
-Message-Id: <1396868224-252888-2-git-send-email-manuel.lauss@gmail.com>
 
 This small patch makes the MIPS FPU emulator optional. The kernel
 kills float-users on systems without a hardware FPU by sending a SIGILL.
similarity index 88%
rename from target/linux/generic/patches-4.9/305-mips_module_reloc.patch
rename to target/linux/generic/pending-4.9/305-mips_module_reloc.patch
index 1c2bd0aa9f23cfb5cfb5f4664cc151ef52f2888f..f0776b205f5253f4c88983bfaf574b72b0dd08e0 100644 (file)
@@ -1,6 +1,19 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: mips: replace -mlong-calls with -mno-long-calls to make function calls faster in kernel modules to achieve this, try to
+
+lede-commit: 3b3d64743ba2a874df9d70cd19e242205b0a788c
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/mips/Makefile             |   5 +
+ arch/mips/include/asm/module.h |   5 +
+ arch/mips/kernel/module.c      | 279 ++++++++++++++++++++++++++++++++++++++++-
+ 3 files changed, 284 insertions(+), 5 deletions(-)
+
+diff --git a/arch/mips/Makefile b/arch/mips/Makefile
+index 48dc1a9c3e42..77bf5db20d65 100644
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -93,8 +93,13 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin
+@@ -93,8 +93,13 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
  cflags-y                      += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely
  cflags-y                      += -msoft-float
  LDFLAGS_vmlinux                       += -G 0 -static -n -nostdlib
@@ -14,6 +27,8 @@
  
  ifeq ($(CONFIG_RELOCATABLE),y)
  LDFLAGS_vmlinux                       += --emit-relocs
+diff --git a/arch/mips/include/asm/module.h b/arch/mips/include/asm/module.h
+index 702c273e67a9..1d4f3b37cefe 100644
 --- a/arch/mips/include/asm/module.h
 +++ b/arch/mips/include/asm/module.h
 @@ -11,6 +11,11 @@ struct mod_arch_specific {
@@ -28,6 +43,8 @@
  };
  
  typedef uint8_t Elf64_Byte;           /* Type for a 8-bit quantity.  */
+diff --git a/arch/mips/kernel/module.c b/arch/mips/kernel/module.c
+index 94627a3a6a0d..947981a9aa72 100644
 --- a/arch/mips/kernel/module.c
 +++ b/arch/mips/kernel/module.c
 @@ -44,14 +44,221 @@ struct mips_hi16 {
  
  int apply_r_mips_none(struct module *me, u32 *location, Elf_Addr v)
  {
-@@ -65,8 +272,39 @@ static int apply_r_mips_32_rel(struct mo
+@@ -65,8 +272,39 @@ static int apply_r_mips_32_rel(struct module *me, u32 *location, Elf_Addr v)
        return 0;
  }
  
        if (v % 4) {
                pr_err("module %s: dangerous R_MIPS_26 REL relocation\n",
                       me->name);
-@@ -74,13 +312,17 @@ static int apply_r_mips_26_rel(struct mo
+@@ -74,13 +312,17 @@ static int apply_r_mips_26_rel(struct module *me, u32 *location, Elf_Addr v)
        }
  
        if ((v & 0xf0000000) != (((unsigned long)location + 4) & 0xf0000000)) {
  void module_arch_cleanup(struct module *mod)
  {
        spin_lock_irq(&dbe_lock);
+-- 
+2.11.0
+
similarity index 66%
rename from target/linux/generic/patches-4.9/306-mips_mem_functions_performance.patch
rename to target/linux/generic/pending-4.9/306-mips_mem_functions_performance.patch
index dc83a62c865f2b2e77993e5437347cabd84607e5..b3d319cbc482332acd1ef6901eec3b4147af7e93 100644 (file)
@@ -1,6 +1,35 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: [PATCH] mips: allow the compiler to optimize memset, memcmp, memcpy  for better performance and (in some instances) smaller code
+
+lede-commit: 07e59c7bc7f375f792ec9734be42fe4fa391a8bb
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/mips/boot/compressed/Makefile |  3 ++-
+ arch/mips/include/asm/string.h     | 38 ++++++++++++++++++++++++++++++++++++++
+ arch/mips/lib/Makefile             |  2 +-
+ arch/mips/lib/memcmp.c             | 22 ++++++++++++++++++++++
+ 4 files changed, 63 insertions(+), 2 deletions(-)
+ create mode 100644 arch/mips/lib/memcmp.c
+
+diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
+index 90aca95fe314..3cd3b391ef49 100644
+--- a/arch/mips/boot/compressed/Makefile
++++ b/arch/mips/boot/compressed/Makefile
+@@ -23,7 +23,8 @@ KBUILD_CFLAGS := $(shell echo $(KBUILD_CFLAGS) | sed -e "s/-pg//")
+ KBUILD_CFLAGS := $(filter-out -fstack-protector, $(KBUILD_CFLAGS))
+ KBUILD_CFLAGS := $(LINUXINCLUDE) $(KBUILD_CFLAGS) -D__KERNEL__ \
+-      -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull"
++      -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull" \
++      -D__ZBOOT__
+ KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
+       -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
+diff --git a/arch/mips/include/asm/string.h b/arch/mips/include/asm/string.h
+index 29030cb398ee..7b737f9b6d58 100644
 --- a/arch/mips/include/asm/string.h
 +++ b/arch/mips/include/asm/string.h
-@@ -140,4 +140,42 @@ extern void *memcpy(void *__to, __const_
+@@ -140,4 +140,42 @@ extern void *memcpy(void *__to, __const__ void *__from, size_t __n);
  #define __HAVE_ARCH_MEMMOVE
  extern void *memmove(void *__dest, __const__ void *__src, size_t __n);
  
@@ -43,6 +72,8 @@
 +#endif
 +
  #endif /* _ASM_STRING_H */
+diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
+index 0344e575f522..33a0211e954a 100644
 --- a/arch/mips/lib/Makefile
 +++ b/arch/mips/lib/Makefile
 @@ -4,7 +4,7 @@
@@ -54,6 +85,9 @@
  
  obj-y                 += iomap.o
  obj-$(CONFIG_PCI)     += iomap-pci.o
+diff --git a/arch/mips/lib/memcmp.c b/arch/mips/lib/memcmp.c
+new file mode 100644
+index 000000000000..35ef1646286e
 --- /dev/null
 +++ b/arch/mips/lib/memcmp.c
 @@ -0,0 +1,22 @@
 +}
 +EXPORT_SYMBOL(memcmp);
 +
---- a/arch/mips/boot/compressed/Makefile
-+++ b/arch/mips/boot/compressed/Makefile
-@@ -23,7 +23,8 @@ KBUILD_CFLAGS := $(shell echo $(KBUILD_C
- KBUILD_CFLAGS := $(filter-out -fstack-protector, $(KBUILD_CFLAGS))
- KBUILD_CFLAGS := $(LINUXINCLUDE) $(KBUILD_CFLAGS) -D__KERNEL__ \
--      -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull"
-+      -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull" \
-+      -D__ZBOOT__
- KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
-       -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/307-mips_highmem_offset.patch b/target/linux/generic/pending-4.9/307-mips_highmem_offset.patch
new file mode 100644 (file)
index 0000000..7f298fc
--- /dev/null
@@ -0,0 +1,24 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: adjust mips highmem offset to avoid the need for -mlong-calls on systems with >256M RAM
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/mips/include/asm/mach-generic/spaces.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/mips/include/asm/mach-generic/spaces.h b/arch/mips/include/asm/mach-generic/spaces.h
+index 952b0fdfda0e..fbb4e4cd4537 100644
+--- a/arch/mips/include/asm/mach-generic/spaces.h
++++ b/arch/mips/include/asm/mach-generic/spaces.h
+@@ -46,7 +46,7 @@
+  * Memory above this physical address will be considered highmem.
+  */
+ #ifndef HIGHMEM_START
+-#define HIGHMEM_START         _AC(0x20000000, UL)
++#define HIGHMEM_START         _AC(0x10000000, UL)
+ #endif
+ #endif /* CONFIG_32BIT */
+-- 
+2.11.0
+
similarity index 69%
rename from target/linux/generic/patches-4.9/308-mips32r2_tune.patch
rename to target/linux/generic/pending-4.9/308-mips32r2_tune.patch
index f2dbdac911b7a9c8f779724030309f80e2c9ad25..4814eebb236b50d69dbb024445c7b4bf49bebe7d 100644 (file)
@@ -1,12 +1,19 @@
-Add -mtune=34kc to MIPS CFLAGS when building for mips32r2
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: add -mtune=34kc to MIPS CFLAGS when building for mips32r2
+
 This provides a good tradeoff across at least 24Kc-74Kc, while also
 producing smaller code.
 
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/mips/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
+diff --git a/arch/mips/Makefile b/arch/mips/Makefile
+index 77bf5db20d65..1ac83e281f90 100644
 --- a/arch/mips/Makefile
 +++ b/arch/mips/Makefile
-@@ -148,7 +148,7 @@ cflags-$(CONFIG_CPU_R4X00) += -march=r46
+@@ -148,7 +148,7 @@ cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_TX49XX)   += -march=r4600 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R1)        += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
                        -Wa,-mips32 -Wa,--trap
@@ -15,3 +22,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                        -Wa,-mips32r2 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS32_R6)        += -march=mips32r6 -Wa,--trap
  cflags-$(CONFIG_CPU_MIPS64_R1)        += $(call cc-option,-march=mips64,-mips64 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS64) \
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/310-arm_module_unresolved_weak_sym.patch b/target/linux/generic/pending-4.9/310-arm_module_unresolved_weak_sym.patch
new file mode 100644 (file)
index 0000000..8de2b99
--- /dev/null
@@ -0,0 +1,27 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: fix errors in unresolved weak symbols on arm
+
+lede-commit: 570699d4838a907c3ef9f2819bf19eb72997b32f
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ arch/arm/kernel/module.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
+index 4f14b5ce6535..4b4b0461663f 100644
+--- a/arch/arm/kernel/module.c
++++ b/arch/arm/kernel/module.c
+@@ -88,6 +88,10 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
+                       return -ENOEXEC;
+               }
++              if ((IS_ERR_VALUE(sym->st_value) || !sym->st_value) &&
++                  ELF_ST_BIND(sym->st_info) == STB_WEAK)
++                      continue;
++
+               loc = dstsec->sh_addr + rel->r_offset;
+               switch (ELF32_R_TYPE(rel->r_info)) {
+-- 
+2.11.0
+
similarity index 97%
rename from target/linux/generic/patches-4.9/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
rename to target/linux/generic/pending-4.9/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch
index 28975e26342f2b7b849755d261435afcf26d8a9e..ff85a13fdae0b697081dd61423104e653a599099 100644 (file)
@@ -1,8 +1,5 @@
-From d8582dcf1ed66eee88a11e4760f42c0d6c8822be Mon Sep 17 00:00:00 2001
 From: Yousong Zhou <yszhou4tech@gmail.com>
-Date: Sat, 31 Jan 2015 22:26:03 +0800
-Subject: [PATCH 331/331] MIPS: kexec: Accept command line parameters from
- userspace.
+Subject: MIPS: kexec: Accept command line parameters from userspace.
 
 Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
 ---
similarity index 93%
rename from target/linux/generic/patches-4.9/332-arc-add-OWRTDTB-section.patch
rename to target/linux/generic/pending-4.9/332-arc-add-OWRTDTB-section.patch
index 9761fa37111e3ac3dd17d0c6c12395d5354df0c6..79d67c8bf0858df2868d81ce1588e43497ed1148 100644 (file)
@@ -1,7 +1,5 @@
-From 690e7f2cad271595ff68cace1c45fb10779bde41 Mon Sep 17 00:00:00 2001
 From: Alexey Brodkin <abrodkin@synopsys.com>
-Date: Fri, 15 Jan 2016 00:34:01 +0300
-Subject: [PATCH 2/2] openwrt: arc - add OWRTDTB section
+Subject: openwrt: arc - add OWRTDTB section
 
 This change allows OpenWRT to patch resulting kernel binary with
 external .dtb.
similarity index 81%
rename from target/linux/generic/patches-4.9/333-arc-enable-unaligned-access-in-kernel-mode.patch
rename to target/linux/generic/pending-4.9/333-arc-enable-unaligned-access-in-kernel-mode.patch
index 082f525f1bce427558ae4d2d2f1a0bb9c05d86a2..4e0265aef5b395ace8cd5cc93c13426e0e9ba11c 100644 (file)
@@ -1,7 +1,5 @@
-From af737b55fc7c61f17da9ae89fba536e0a9338e98 Mon Sep 17 00:00:00 2001
 From: Alexey Brodkin <abrodkin@synopsys.com>
-Date: Mon, 14 Mar 2016 17:26:34 +0300
-Subject: [PATCH] arc: enable unaligned access in kernel mode
+Subject: arc: enable unaligned access in kernel mode
 
 This enables misaligned access handling even in kernel mode.
 Some wireless drivers (ath9k-htc and mt7601u) use misaligned accesses
similarity index 72%
rename from target/linux/generic/patches-4.9/400-mtd-add-rootfs-split-support.patch
rename to target/linux/generic/pending-4.9/400-mtd-add-rootfs-split-support.patch
index 96a50c88dc327833892fec1fd9b9994c25dbfc9b..9ca70e7892fb7f7a172b5cb87ff19a1d92578078 100644 (file)
@@ -1,3 +1,16 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: make rootfs split/detection more generic - patch can be moved to generic-2.6 after testing on other platforms
+
+lede-commit: 328e660b31f0937d52c5ae3d6e7029409918a9df
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/Kconfig            | 17 +++++++++++++++++
+ drivers/mtd/mtdpart.c          | 35 +++++++++++++++++++++++++++++++++++
+ include/linux/mtd/partitions.h |  2 ++
+ 3 files changed, 54 insertions(+)
+
+diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
+index 5a2d71729b9a..f5ac04e288eb 100644
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
 @@ -12,6 +12,23 @@ menuconfig MTD
@@ -24,6 +37,8 @@
  config MTD_TESTS
        tristate "MTD tests support (DANGEROUS)"
        depends on m
+diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
+index dd86b430e46e..33d152d1876a 100644
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
 @@ -29,10 +29,12 @@
@@ -48,7 +63,7 @@
  /*
   * Given a pointer to the MTD object in the mtd_part structure, we can retrieve
   * the pointer to that structure.
-@@ -678,6 +682,7 @@ int mtd_add_partition(struct mtd_info *p
+@@ -678,6 +682,7 @@ int mtd_add_partition(struct mtd_info *parent, const char *name,
        mutex_unlock(&mtd_partitions_mutex);
  
        add_mtd_device(&new->mtd);
@@ -56,7 +71,7 @@
  
        mtd_add_partition_attrs(new);
  
-@@ -756,6 +761,35 @@ int mtd_del_partition(struct mtd_info *m
+@@ -756,6 +761,35 @@ int mtd_del_partition(struct mtd_info *mtd, int partno)
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
  /*
   * This function, given a master MTD object and a partition table, creates
   * and registers slave MTD objects which are bound to the master according to
-@@ -787,6 +821,7 @@ int add_mtd_partitions(struct mtd_info *
+@@ -787,6 +821,7 @@ int add_mtd_partitions(struct mtd_info *master,
                mutex_unlock(&mtd_partitions_mutex);
  
                add_mtd_device(&slave->mtd);
                mtd_add_partition_attrs(slave);
                if (parts[i].types)
                        mtd_parse_part(slave, parts[i].types);
+diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
+index c4beb70dacbd..320a791290c5 100644
 --- a/include/linux/mtd/partitions.h
 +++ b/include/linux/mtd/partitions.h
-@@ -109,5 +109,7 @@ int mtd_add_partition(struct mtd_info *m
+@@ -109,5 +109,7 @@ int mtd_add_partition(struct mtd_info *master, const char *name,
                      long long offset, long long length);
  int mtd_del_partition(struct mtd_info *master, int partno);
  uint64_t mtd_get_device_size(const struct mtd_info *mtd);
 +                                     const char *name, int offset, int size);
  
  #endif
+-- 
+2.11.0
+
similarity index 93%
rename from target/linux/generic/patches-4.9/401-mtd-add-support-for-different-partition-parser-types.patch
rename to target/linux/generic/pending-4.9/401-mtd-add-support-for-different-partition-parser-types.patch
index 2cf69ffa17278250f5e1bfefe4b039202f582c19..c11245349894e693a9726c049b0fed64263101cd 100644 (file)
@@ -1,7 +1,5 @@
-From 02cff0ccaa6d364f5c1eeea83f47ac80ccc967d4 Mon Sep 17 00:00:00 2001
 From: Gabor Juhos <juhosg@openwrt.org>
-Date: Tue, 3 Sep 2013 18:11:50 +0200
-Subject: [PATCH] mtd: add support for different partition parser types
+Subject: mtd: add support for different partition parser types
 
 Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 ---
similarity index 67%
rename from target/linux/generic/patches-4.9/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
rename to target/linux/generic/pending-4.9/402-mtd-use-typed-mtd-parsers-for-rootfs-and-firmware-split.patch
index 490107ec4043d8d79ca08963e0868aaf4abbefb1..466f315642d765a46e407bed4492d03820273c64 100644 (file)
@@ -1,6 +1,18 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: kernel/3.10: allow to use partition parsers for rootfs and firmware split
+
+lede-commit: 3b71cd94bc9517bc25267dccb393b07d4b54564e
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/mtd/mtdpart.c          | 37 +++++++++++++++++++++++++++++++++++++
+ include/linux/mtd/partitions.h |  2 ++
+ 2 files changed, 39 insertions(+)
+
+diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
+index f20207e32075..28f76315dfa0 100644
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -761,6 +761,36 @@ int mtd_del_partition(struct mtd_info *m
+@@ -761,6 +761,36 @@ int mtd_del_partition(struct mtd_info *mtd, int partno)
  }
  EXPORT_SYMBOL_GPL(mtd_del_partition);
  
@@ -45,7 +57,7 @@
  }
  
  void __weak arch_split_mtd_part(struct mtd_info *master, const char *name,
-@@ -783,6 +814,12 @@ static void mtd_partition_split(struct m
+@@ -783,6 +814,12 @@ static void mtd_partition_split(struct mtd_info *master, struct mtd_part *part)
        if (rootfs_found)
                return;
  
@@ -58,6 +70,8 @@
        if (!strcmp(part->mtd.name, SPLIT_FIRMWARE_NAME) &&
            IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE))
                split_firmware(master, part);
+diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
+index baafd542432e..356e29815aa2 100644
 --- a/include/linux/mtd/partitions.h
 +++ b/include/linux/mtd/partitions.h
 @@ -74,6 +74,8 @@ struct mtd_part_parser_data {
@@ -69,3 +83,6 @@
  };
  
  struct mtd_part_parser {
+-- 
+2.11.0
+
similarity index 51%
rename from target/linux/generic/patches-4.9/403-mtd-hook-mtdsplit-to-Kbuild.patch
rename to target/linux/generic/pending-4.9/403-mtd-hook-mtdsplit-to-Kbuild.patch
index 0cf1c38555110040230fa5781688280df45e6eef..ded664c6f917bd291f3ed88cbbb6474bae1272e2 100644 (file)
@@ -1,3 +1,15 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: [PATCH] kernel/3.10: move squashfs check from rootfs split code into a separate file
+
+lede-commit: d89bea92b31b4e157a0fa438e75370f089f73427
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/mtd/Kconfig  | 2 ++
+ drivers/mtd/Makefile | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
+index f5ac04e288eb..4185e04760dd 100644
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
 @@ -27,6 +27,8 @@ config MTD_SPLIT_FIRMWARE_NAME
@@ -9,6 +21,8 @@
  endmenu
  
  config MTD_TESTS
+diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
+index 151d60df303a..48fd01e9f6e3 100644
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
 @@ -6,6 +6,8 @@
@@ -20,3 +34,6 @@
  obj-$(CONFIG_MTD_OF_PARTS)    += ofpart.o
  obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o
  obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o
+-- 
+2.11.0
+
similarity index 67%
rename from target/linux/generic/patches-4.9/404-mtd-add-more-helper-functions.patch
rename to target/linux/generic/pending-4.9/404-mtd-add-more-helper-functions.patch
index ef7b671b8b90673f95be49a774c2ce7e503075a0..74e59e09ba39664b57454cc538fe9ac309153e6b 100644 (file)
@@ -1,6 +1,19 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: kernel/3.10: add separate rootfs partition parser
+
+lede-commit: daec7ad7688415156e2730e401503d09bd3acf91
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/mtd/mtdpart.c          | 29 +++++++++++++++++++++++++++++
+ include/linux/mtd/mtd.h        | 18 ++++++++++++++++++
+ include/linux/mtd/partitions.h |  2 ++
+ 3 files changed, 49 insertions(+)
+
+diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
+index 28f76315dfa0..fce83882fd4e 100644
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
-@@ -791,6 +791,17 @@ run_parsers_by_type(struct mtd_part *sla
+@@ -791,6 +791,17 @@ run_parsers_by_type(struct mtd_part *slave, enum mtd_parser_type type)
        return nr_parts;
  }
  
@@ -18,7 +31,7 @@
  #ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #define SPLIT_FIRMWARE_NAME   CONFIG_MTD_SPLIT_FIRMWARE_NAME
  #else
-@@ -1146,6 +1157,24 @@ int mtd_is_partition(const struct mtd_in
+@@ -1146,6 +1157,24 @@ int mtd_is_partition(const struct mtd_info *mtd)
  }
  EXPORT_SYMBOL_GPL(mtd_is_partition);
  
  /* Returns the size of the entire flash chip */
  uint64_t mtd_get_device_size(const struct mtd_info *mtd)
  {
---- a/include/linux/mtd/partitions.h
-+++ b/include/linux/mtd/partitions.h
-@@ -114,6 +114,8 @@ int mtd_is_partition(const struct mtd_in
- int mtd_add_partition(struct mtd_info *master, const char *name,
-                     long long offset, long long length);
- int mtd_del_partition(struct mtd_info *master, int partno);
-+struct mtd_info *mtdpart_get_master(const struct mtd_info *mtd);
-+uint64_t mtdpart_get_offset(const struct mtd_info *mtd);
- uint64_t mtd_get_device_size(const struct mtd_info *mtd);
- extern void __weak arch_split_mtd_part(struct mtd_info *master,
-                                      const char *name, int offset, int size);
+diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
+index 5bb42c6dacdc..e7d5091bb447 100644
 --- a/include/linux/mtd/mtd.h
 +++ b/include/linux/mtd/mtd.h
-@@ -485,6 +485,24 @@ static inline uint32_t mtd_mod_by_eb(uin
+@@ -485,6 +485,24 @@ static inline uint32_t mtd_mod_by_eb(uint64_t sz, struct mtd_info *mtd)
        return do_div(sz, mtd->erasesize);
  }
  
  static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd)
  {
        if (mtd->writesize_shift)
+diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h
+index 356e29815aa2..c0937ff4797b 100644
+--- a/include/linux/mtd/partitions.h
++++ b/include/linux/mtd/partitions.h
+@@ -114,6 +114,8 @@ int mtd_is_partition(const struct mtd_info *mtd);
+ int mtd_add_partition(struct mtd_info *master, const char *name,
+                     long long offset, long long length);
+ int mtd_del_partition(struct mtd_info *master, int partno);
++struct mtd_info *mtdpart_get_master(const struct mtd_info *mtd);
++uint64_t mtdpart_get_offset(const struct mtd_info *mtd);
+ uint64_t mtd_get_device_size(const struct mtd_info *mtd);
+ extern void __weak arch_split_mtd_part(struct mtd_info *master,
+                                      const char *name, int offset, int size);
+-- 
+2.11.0
+
similarity index 81%
rename from target/linux/generic/patches-4.9/411-mtd-partial_eraseblock_write.patch
rename to target/linux/generic/pending-4.9/411-mtd-partial_eraseblock_write.patch
index 359eb5a6f8a2f3a9b1b8a210b32f481dbc5a0103..307445fffa4572de789b171875b682594a7c8ea2 100644 (file)
@@ -1,3 +1,15 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: mtd: implement write support for partitions covering only a part of an eraseblock (buffer data that would otherwise be erased)
+
+lede-commit: 87a8e8ac1067f58ba831c4aae443f3655c31cd80
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/mtdpart.c   | 90 ++++++++++++++++++++++++++++++++++++++++++++-----
+ include/linux/mtd/mtd.h |  4 +++
+ 2 files changed, 85 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
+index fce83882fd4e..0238b0babe2f 100644
 --- a/drivers/mtd/mtdpart.c
 +++ b/drivers/mtd/mtdpart.c
 @@ -36,6 +36,8 @@
@@ -9,7 +21,7 @@
  /* Our partition linked list */
  static LIST_HEAD(mtd_partitions);
  static DEFINE_MUTEX(mtd_partitions_mutex);
-@@ -241,13 +243,61 @@ static int part_erase(struct mtd_info *m
+@@ -241,13 +243,61 @@ static int part_erase(struct mtd_info *mtd, struct erase_info *instr)
        struct mtd_part *part = mtd_to_part(mtd);
        int ret;
  
@@ -71,7 +83,7 @@
        return ret;
  }
  
-@@ -255,6 +305,25 @@ void mtd_erase_callback(struct erase_inf
+@@ -255,6 +305,25 @@ void mtd_erase_callback(struct erase_info *instr)
  {
        if (instr->mtd->_erase == part_erase) {
                struct mtd_part *part = mtd_to_part(instr->mtd);
  
                if (instr->fail_addr != MTD_FAIL_ADDR_UNKNOWN)
                        instr->fail_addr -= part->offset;
-@@ -590,19 +659,22 @@ static struct mtd_part *allocate_partiti
+@@ -590,19 +659,22 @@ static struct mtd_part *allocate_partition(struct mtd_info *parent,
        remainder = do_div(tmp, wr_alignment);
        if ((slave->mtd.flags & MTD_WRITEABLE) && remainder) {
                /* Doesn't start on a boundary of major erase size */
        }
  
        mtd_set_ooblayout(&slave->mtd, &part_ooblayout_ops);
+diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h
+index e7d5091bb447..0db85491f085 100644
 --- a/include/linux/mtd/mtd.h
 +++ b/include/linux/mtd/mtd.h
 @@ -55,6 +55,10 @@ struct erase_info {
  };
  
  struct mtd_erase_region_info {
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/412-mtd-partial_eraseblock_unlock.patch b/target/linux/generic/pending-4.9/412-mtd-partial_eraseblock_unlock.patch
new file mode 100644 (file)
index 0000000..8969de5
--- /dev/null
@@ -0,0 +1,45 @@
+From: Tim Harvey <tharvey@gateworks.com>
+Subject: mtd: allow partial block unlock
+
+This allows sysupgrade for devices such as the Gateworks Avila/Cambria
+product families based on the ixp4xx using the redboot bootloader with
+combined FIS directory and RedBoot config partitions on larger FLASH
+devices with larger eraseblocks.
+
+This second iteration of this patch addresses previous issues:
+- whitespace breakage fixed
+- unlock in all scenarios
+- simplification and fix logic bug
+
+[john@phrozen.org: this should be moved to the ixp4xx folder]
+
+Signed-off-by: Tim Harvey <tharvey@gateworks.com>
+---
+ drivers/mtd/mtdpart.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/mtd/mtdpart.c b/drivers/mtd/mtdpart.c
+index 0238b0babe2f..d41418524833 100644
+--- a/drivers/mtd/mtdpart.c
++++ b/drivers/mtd/mtdpart.c
+@@ -343,7 +343,16 @@ static int part_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
+ static int part_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len)
+ {
+       struct mtd_part *part = mtd_to_part(mtd);
+-      return part->parent->_unlock(part->parent, ofs + part->offset, len);
++
++      ofs += part->offset;
++
++      if (mtd->flags & MTD_ERASE_PARTIAL) {
++              /* round up len to next erasesize and round down offset to prev block */
++              len = (mtd_div_by_eb(len, part->parent) + 1) * part->parent->erasesize;
++              ofs &= ~(part->parent->erasesize - 1);
++      }
++
++      return part->parent->_unlock(part->parent, ofs, len);
+ }
+ static int part_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len)
+-- 
+2.11.0
+
similarity index 60%
rename from target/linux/generic/patches-4.9/420-mtd-redboot_space.patch
rename to target/linux/generic/pending-4.9/420-mtd-redboot_space.patch
index f74affcef70ea00effa3ecee9a73c9a2caed2cc0..acd3af20d862d6af56773cbe01ec90d3b68a2efb 100644 (file)
@@ -1,6 +1,19 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: add patch for including unpartitioned space in the rootfs partition for redboot devices (if applicable)
+
+[john@phrozen.org: used by ixp and others]
+
+lede-commit: 394918851f84e4d00fa16eb900e7700e95091f00
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/redboot.c | 19 +++++++++++++------
+ 1 file changed, 13 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/mtd/redboot.c b/drivers/mtd/redboot.c
+index 7623ac5fc586..181ea0fb3c91 100644
 --- a/drivers/mtd/redboot.c
 +++ b/drivers/mtd/redboot.c
-@@ -265,14 +265,21 @@ static int parse_redboot_partitions(stru
+@@ -265,14 +265,21 @@ static int parse_redboot_partitions(struct mtd_info *master,
  #endif
                names += strlen(names)+1;
  
@@ -28,3 +41,6 @@
                tmp_fl = fl;
                fl = fl->next;
                kfree(tmp_fl);
+-- 
+2.11.0
+
similarity index 69%
rename from target/linux/generic/patches-4.9/430-mtd-add-myloader-partition-parser.patch
rename to target/linux/generic/pending-4.9/430-mtd-add-myloader-partition-parser.patch
index 9bf014e881ad87d823a7a5535a9a84af69440e8f..c3a44aea18446363ceb7acf7c08e0e9dbe0c032c 100644 (file)
@@ -1,3 +1,17 @@
+From: Florian Fainelli <f.fainelli@gmail.com>
+Subject: Add myloader partition table parser
+
+[john@phozen.org: shoud be upstreamable]
+
+lede-commit: d8bf22859b51faa09d22c056fe221a45d2f7a3b8
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+---
+ drivers/mtd/Kconfig  | 16 ++++++++++++++++
+ drivers/mtd/Makefile |  1 +
+ 2 files changed, 17 insertions(+)
+
+diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
+index 4185e04760dd..cb55144d4db6 100644
 --- a/drivers/mtd/Kconfig
 +++ b/drivers/mtd/Kconfig
 @@ -178,6 +178,22 @@ menu "Partition parsers"
@@ -23,6 +37,8 @@
  comment "User Modules And Translation Layers"
  
  #
+diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile
+index 48fd01e9f6e3..5bca69c63bdc 100644
 --- a/drivers/mtd/Makefile
 +++ b/drivers/mtd/Makefile
 @@ -15,6 +15,7 @@ obj-$(CONFIG_MTD_AFS_PARTS)  += afs.o
@@ -33,3 +49,6 @@
  obj-y                         += parsers/
  
  # 'Users' - code which presents functionality to userspace.
+-- 
+2.11.0
+
similarity index 92%
rename from target/linux/generic/patches-4.9/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch
rename to target/linux/generic/pending-4.9/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch
index 2726220b8e11be6cc8810ab2d57b03f61781476f..9299e886712401ce4418bd3eb97b509cd4c32de9 100644 (file)
@@ -1,10 +1,5 @@
 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
-Date: Sat, 2 Jan 2016 01:04:52 +0100
-Subject: [PATCH] mtd: bcm47xxpart: check for bad blocks when calculating
- offsets
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
+Subject: [PATCH] mtd: bcm47xxpart: check for bad blocks when calculating offsets
 
 Signed-off-by: RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
 ---
similarity index 81%
rename from target/linux/generic/patches-4.9/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch
rename to target/linux/generic/pending-4.9/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch
index b7b56cb5aaf75d85f52a763bdc36c3786d07b77c..a6d0828b995f34526116452ded440c72b1f3f4cb 100644 (file)
@@ -1,10 +1,5 @@
-From fd54aa583296f9adfb1f519affbc10ba521eb809 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
-Date: Wed, 28 Jan 2015 22:14:41 +0100
-Subject: [PATCH] mtd: bcm47xxpart: detect T_Meter partition
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
+Subject: mtd: bcm47xxpart: detect T_Meter partition
 
 It can be found on many Netgear devices. It consists of many 0x30 blocks
 starting with 4D 54.
similarity index 71%
rename from target/linux/generic/patches-4.9/440-block2mtd_init.patch
rename to target/linux/generic/pending-4.9/440-block2mtd_init.patch
index f2e62b4401a70dc2307d278a149720ea3f42e2ce..acb94cd278a6463d2a750f04fa88c67fbd61e092 100644 (file)
@@ -1,3 +1,13 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: block2mtd
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/devices/block2mtd.c | 30 ++++++++++++++++++++----------
+ 1 file changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
+index 7c887f111a7d..22135cc48879 100644
 --- a/drivers/mtd/devices/block2mtd.c
 +++ b/drivers/mtd/devices/block2mtd.c
 @@ -26,6 +26,7 @@
@@ -8,7 +18,7 @@
  #include <linux/mutex.h>
  #include <linux/mount.h>
  #include <linux/slab.h>
-@@ -219,7 +220,7 @@ static void block2mtd_free_device(struct
+@@ -219,7 +220,7 @@ static void block2mtd_free_device(struct block2mtd_dev *dev)
  
  
  static struct block2mtd_dev *add_device(char *devname, int erase_size,
@@ -17,7 +27,7 @@
  {
  #ifndef MODULE
        int i;
-@@ -227,6 +228,7 @@ static struct block2mtd_dev *add_device(
+@@ -227,6 +228,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
        const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL;
        struct block_device *bdev = ERR_PTR(-ENODEV);
        struct block2mtd_dev *dev;
@@ -25,7 +35,7 @@
        char *name;
  
        if (!devname)
-@@ -283,13 +285,16 @@ static struct block2mtd_dev *add_device(
+@@ -283,13 +285,16 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
  
        /* Setup the MTD structure */
        /* make the name contain the block device in */
@@ -44,7 +54,7 @@
        dev->mtd.erasesize = erase_size;
        dev->mtd.writesize = 1;
        dev->mtd.writebufsize = PAGE_SIZE;
-@@ -302,7 +307,11 @@ static struct block2mtd_dev *add_device(
+@@ -302,7 +307,11 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
        dev->mtd.priv = dev;
        dev->mtd.owner = THIS_MODULE;
  
@@ -57,7 +67,7 @@
                /* Device didn't get added, so free the entry */
                goto err_destroy_mutex;
        }
-@@ -310,8 +319,7 @@ static struct block2mtd_dev *add_device(
+@@ -310,8 +319,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size,
        list_add(&dev->list, &blkmtd_device_list);
        pr_info("mtd%d: [%s] erase_size = %dKiB [%d]\n",
                dev->mtd.index,
@@ -67,7 +77,7 @@
        return dev;
  
  err_destroy_mutex:
-@@ -384,7 +392,7 @@ static int block2mtd_setup2(const char *
+@@ -384,7 +392,7 @@ static int block2mtd_setup2(const char *val)
        /* 80 for device, 12 for erase size, 80 for name, 8 for timeout */
        char buf[80 + 12 + 80 + 8];
        char *str = buf;
@@ -76,7 +86,7 @@
        char *name;
        size_t erase_size = PAGE_SIZE;
        unsigned long timeout = MTD_DEFAULT_TIMEOUT;
-@@ -398,7 +406,7 @@ static int block2mtd_setup2(const char *
+@@ -398,7 +406,7 @@ static int block2mtd_setup2(const char *val)
        strcpy(str, val);
        kill_final_newline(str);
  
@@ -85,7 +95,7 @@
                token[i] = strsep(&str, ",");
  
        if (str) {
-@@ -424,8 +432,10 @@ static int block2mtd_setup2(const char *
+@@ -424,8 +432,10 @@ static int block2mtd_setup2(const char *val)
                        return 0;
                }
        }
  
        return 0;
  }
-@@ -459,7 +469,7 @@ static int block2mtd_setup(const char *v
+@@ -459,7 +469,7 @@ static int block2mtd_setup(const char *val, struct kernel_param *kp)
  
  
  module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200);
  
  static int __init block2mtd_init(void)
  {
+-- 
+2.11.0
+
similarity index 62%
rename from target/linux/generic/patches-4.9/441-block2mtd_probe.patch
rename to target/linux/generic/pending-4.9/441-block2mtd_probe.patch
index ed14537a6c21f523c619e0c313bde55b3b996814..11ff292aa795f6cc14e57d7dd5f0630aa6468cc0 100644 (file)
@@ -1,6 +1,16 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: block2mtd
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/devices/block2mtd.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
+index 22135cc48879..9865041c347b 100644
 --- a/drivers/mtd/devices/block2mtd.c
 +++ b/drivers/mtd/devices/block2mtd.c
-@@ -392,7 +392,7 @@ static int block2mtd_setup2(const char *
+@@ -392,7 +392,7 @@ static int block2mtd_setup2(const char *val)
        /* 80 for device, 12 for erase size, 80 for name, 8 for timeout */
        char buf[80 + 12 + 80 + 8];
        char *str = buf;
@@ -9,7 +19,7 @@
        char *name;
        size_t erase_size = PAGE_SIZE;
        unsigned long timeout = MTD_DEFAULT_TIMEOUT;
-@@ -406,7 +406,7 @@ static int block2mtd_setup2(const char *
+@@ -406,7 +406,7 @@ static int block2mtd_setup2(const char *val)
        strcpy(str, val);
        kill_final_newline(str);
  
@@ -18,7 +28,7 @@
                token[i] = strsep(&str, ",");
  
        if (str) {
-@@ -435,6 +435,9 @@ static int block2mtd_setup2(const char *
+@@ -435,6 +435,9 @@ static int block2mtd_setup2(const char *val)
        if (token[2] && (strlen(token[2]) + 1 > 80))
                pr_err("mtd device name too long\n");
  
@@ -28,7 +38,7 @@
        add_device(name, erase_size, token[2], timeout);
  
        return 0;
-@@ -469,7 +472,7 @@ static int block2mtd_setup(const char *v
+@@ -469,7 +472,7 @@ static int block2mtd_setup(const char *val, struct kernel_param *kp)
  
  
  module_param_call(block2mtd, block2mtd_setup, NULL, NULL, 0200);
@@ -37,3 +47,6 @@
  
  static int __init block2mtd_init(void)
  {
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch b/target/linux/generic/pending-4.9/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch
new file mode 100644 (file)
index 0000000..3cabff3
--- /dev/null
@@ -0,0 +1,30 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: disable cfi cmdset 0002 erase suspend
+
+on some platforms, erase suspend leads to data corruption and lockups when write
+ops collide with erase ops. this has been observed on the buffalo wzr-hp-g300nh.
+rather than play whack-a-mole with a hard to reproduce issue on a variety of devices,
+simply disable erase suspend, as it will usually not produce any useful gain on
+the small filesystems used on embedded hardware.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/chips/cfi_cmdset_0002.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
+index 9dca881bb378..ea4db1917334 100644
+--- a/drivers/mtd/chips/cfi_cmdset_0002.c
++++ b/drivers/mtd/chips/cfi_cmdset_0002.c
+@@ -807,7 +807,7 @@ static int get_chip(struct map_info *map, struct flchip *chip, unsigned long adr
+               return 0;
+       case FL_ERASING:
+-              if (!cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
++              if (1 /* no suspend */ || !cfip || !(cfip->EraseSuspend & (0x1|0x2)) ||
+                   !(mode == FL_READY || mode == FL_POINT ||
+                   (mode == FL_WRITING && (cfip->EraseSuspend & 0x2))))
+                       goto sleep;
+-- 
+2.11.0
+
similarity index 82%
rename from target/linux/generic/patches-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
rename to target/linux/generic/pending-4.9/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch
index 0ba0f86480b97e61bee3c722b98faca36311d9a6..c1b0d4f16b8927ba033f6ca1cf3daf3c2dc7da69 100644 (file)
@@ -1,7 +1,6 @@
 From: George Kashperko <george@znau.edu.ua>
+Subject: Issue map read after Write Buffer Load command to ensure chip is ready to receive data.
 
-Issue map read after Write Buffer Load command to ensure chip is ready
-to receive data.
 Signed-off-by: George Kashperko <george@znau.edu.ua>
 ---
  drivers/mtd/chips/cfi_cmdset_0002.c |    1 +
diff --git a/target/linux/generic/pending-4.9/465-m25p80-mx-disable-software-protection.patch b/target/linux/generic/pending-4.9/465-m25p80-mx-disable-software-protection.patch
new file mode 100644 (file)
index 0000000..a4bad53
--- /dev/null
@@ -0,0 +1,23 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: Disable software protection bits for Macronix flashes.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
+index 54868b19bf32..30adbc34ccac 100644
+--- a/drivers/mtd/spi-nor/spi-nor.c
++++ b/drivers/mtd/spi-nor/spi-nor.c
+@@ -1588,6 +1588,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
+       if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
+           JEDEC_MFR(info) == SNOR_MFR_INTEL ||
++          JEDEC_MFR(info) == SNOR_MFR_MACRONIX ||
+           JEDEC_MFR(info) == SNOR_MFR_SST ||
+           info->flags & SPI_NOR_HAS_LOCK) {
+               write_enable(nor);
+-- 
+2.11.0
+
similarity index 55%
rename from target/linux/generic/patches-4.9/476-mtd-spi-nor-add-eon-en25q128.patch
rename to target/linux/generic/pending-4.9/476-mtd-spi-nor-add-eon-en25q128.patch
index e586e73cdab2f124b32c1f492e80af7989c6843c..3a5e24e617d79b5b6cfcf35e0b619609a4f2acde 100644 (file)
@@ -1,6 +1,16 @@
+From: Piotr Dymacz <pepe2k@gmail.com>
+Subject: kernel/mtd: add support for EON EN25Q128
+
+Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
+index 30adbc34ccac..8c0ad628ddc6 100644
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -954,6 +954,7 @@ static const struct flash_info spi_nor_i
+@@ -954,6 +954,7 @@ static const struct flash_info spi_nor_ids[] = {
        { "en25q32b",   INFO(0x1c3016, 0, 64 * 1024,   64, 0) },
        { "en25p64",    INFO(0x1c2017, 0, 64 * 1024,  128, 0) },
        { "en25q64",    INFO(0x1c3017, 0, 64 * 1024,  128, SECT_4K) },
@@ -8,3 +18,6 @@
        { "en25qh128",  INFO(0x1c7018, 0, 64 * 1024,  256, 0) },
        { "en25qh256",  INFO(0x1c7019, 0, 64 * 1024,  512, 0) },
        { "en25s64",    INFO(0x1c3817, 0, 64 * 1024,  128, SECT_4K) },
+-- 
+2.11.0
+
similarity index 53%
rename from target/linux/generic/patches-4.9/477-mtd-add-spi-nor-add-mx25u3235f.patch
rename to target/linux/generic/pending-4.9/477-mtd-add-spi-nor-add-mx25u3235f.patch
index 3960122b4f0959a9d6b7d3f86c77bed2b6ca5e25..abeb69ab10ba0a49036223bd9f3805c429a631a8 100644 (file)
@@ -1,6 +1,16 @@
+From: André Valentin <avalentin@marcant.net>
+Subject: linux/mtd: add id for mx25u3235f needed by ZyXEL NBG6817
+
+Signed-off-by: André Valentin <avalentin@marcant.net>
+---
+ drivers/mtd/spi-nor/spi-nor.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
+index 8c0ad628ddc6..5288fcfbdb3b 100644
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1014,6 +1014,7 @@ static const struct flash_info spi_nor_i
+@@ -1014,6 +1014,7 @@ static const struct flash_info spi_nor_ids[] = {
        { "mx25l3205d",  INFO(0xc22016, 0, 64 * 1024,  64, SECT_4K) },
        { "mx25l3255e",  INFO(0xc29e16, 0, 64 * 1024,  64, SECT_4K) },
        { "mx25l6405d",  INFO(0xc22017, 0, 64 * 1024, 128, SECT_4K) },
@@ -8,3 +18,6 @@
        { "mx25u6435f",  INFO(0xc22537, 0, 64 * 1024, 128, SECT_4K) },
        { "mx25l12805d", INFO(0xc22018, 0, 64 * 1024, 256, 0) },
        { "mx25l12855e", INFO(0xc22618, 0, 64 * 1024, 256, 0) },
+-- 
+2.11.0
+
similarity index 58%
rename from target/linux/generic/patches-4.9/480-mtd-set-rootfs-to-be-root-dev.patch
rename to target/linux/generic/pending-4.9/480-mtd-set-rootfs-to-be-root-dev.patch
index 27875d2288f8be8b2009d40bd3a4bda09c50ce35..62cf4eb2e2a029ec59ce9c2dfa3414449c270e96 100644 (file)
@@ -1,3 +1,17 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: kernel/3.1[02]: move MTD root device setup code to mtdcore
+
+The current code only allows to automatically set
+root device on MTD partitions. Move the code to MTD
+core to allow to use it with all MTD devices.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/mtd/mtdcore.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
+index d46e4adf6d2b..4d62d898dadc 100644
 --- a/drivers/mtd/mtdcore.c
 +++ b/drivers/mtd/mtdcore.c
 @@ -40,6 +40,7 @@
@@ -24,3 +38,6 @@
        return 0;
  
  fail_added:
+-- 
+2.11.0
+
similarity index 89%
rename from target/linux/generic/patches-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
rename to target/linux/generic/pending-4.9/490-ubi-auto-attach-mtd-device-named-ubi-or-data-on-boot.patch
index e4f92379df317b82032609e2ef53ea168a9031d7..a8dcad458f820dc4cef5127d88c7f07d44889a09 100644 (file)
@@ -1,8 +1,5 @@
-From 8a52e4100d7c3a4a1dfddfa02b8864a9b0068c13 Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel@makrotopia.org>
-Date: Sat, 17 May 2014 03:36:18 +0200
-Subject: [PATCH 1/5] ubi: auto-attach mtd device named "ubi" or "data" on boot
-To: openwrt-devel@lists.openwrt.org
+Subject: ubi: auto-attach mtd device named "ubi" or "data" on boot
 
 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 ---
similarity index 88%
rename from target/linux/generic/patches-4.9/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
rename to target/linux/generic/pending-4.9/491-ubi-auto-create-ubiblock-device-for-rootfs.patch
index c41bee963c43b8d0a0c3cae27f973f6a300d83e9..2e7933ba2beb09e5bbf03acde2a24bc33d214ce8 100644 (file)
@@ -1,8 +1,5 @@
-From 0f3966579815f889bb2fcb4846152c35f65e79c4 Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel@makrotopia.org>
-Date: Thu, 15 May 2014 21:06:33 +0200
-Subject: [PATCH 2/5] ubi: auto-create ubiblock device for rootfs
-To: openwrt-devel@lists.openwrt.org
+Subject: ubi: auto-create ubiblock device for rootfs
 
 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 ---
similarity index 81%
rename from target/linux/generic/patches-4.9/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
rename to target/linux/generic/pending-4.9/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch
index ab8b8bb0a264c57b5e0cf45784825f4906f17025..69a35c25e77755f5c4acb9904127efcd5077e257 100644 (file)
@@ -1,8 +1,5 @@
-From eea9e1785e4c05c2a3444506aabafa0ae958538f Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel@makrotopia.org>
-Date: Sat, 17 May 2014 03:35:02 +0200
-Subject: [PATCH 4/5] try auto-mounting ubi0:rootfs in init/do_mounts.c
-To: openwrt-devel@lists.openwrt.org
+Subject: try auto-mounting ubi0:rootfs in init/do_mounts.c
 
 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 ---
similarity index 81%
rename from target/linux/generic/patches-4.9/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
rename to target/linux/generic/pending-4.9/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch
index fea2854b8280828ccba582b4dded801b3f7efd76..e41dca6c93ba9d0c5080f3b27c431d8b34f39402 100644 (file)
@@ -1,8 +1,5 @@
-From cd68d1b12b5ea4c01a664c064179ada42bf55d3d Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel@makrotopia.org>
-Date: Thu, 15 May 2014 20:55:42 +0200
-Subject: [PATCH 5/5] ubi: set ROOT_DEV to ubiblock "rootfs" if unset
-To: openwrt-devel@lists.openwrt.org
+Subject: ubi: set ROOT_DEV to ubiblock "rootfs" if unset
 
 Signed-off-by: Daniel Golle <daniel@makrotopia.org>
 ---
similarity index 64%
rename from target/linux/generic/patches-4.9/494-mtd-ubi-add-EOF-marker-support.patch
rename to target/linux/generic/pending-4.9/494-mtd-ubi-add-EOF-marker-support.patch
index 64a361a50aecac7e3888566279ceb2752fe09ccc..b681fc6a07e0fc70de6363a073a756253301283b 100644 (file)
@@ -1,3 +1,14 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: mtd: add EOF marker support to the UBI layer
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/mtd/ubi/attach.c | 25 ++++++++++++++++++++++---
+ drivers/mtd/ubi/ubi.h    |  1 +
+ 2 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/mtd/ubi/attach.c b/drivers/mtd/ubi/attach.c
+index 93ceea4f27d5..a4f849d69104 100644
 --- a/drivers/mtd/ubi/attach.c
 +++ b/drivers/mtd/ubi/attach.c
 @@ -939,6 +939,13 @@ static bool vol_ignored(int vol_id)
@@ -14,7 +25,7 @@
  /**
   * scan_peb - scan and process UBI headers of a PEB.
   * @ubi: UBI device description object
-@@ -971,9 +978,21 @@ static int scan_peb(struct ubi_device *u
+@@ -971,9 +978,21 @@ static int scan_peb(struct ubi_device *ubi, struct ubi_attach_info *ai,
                return 0;
        }
  
@@ -39,6 +50,8 @@
        switch (err) {
        case 0:
                break;
+diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h
+index 697dbcba7371..92d207ff2458 100644
 --- a/drivers/mtd/ubi/ubi.h
 +++ b/drivers/mtd/ubi/ubi.h
 @@ -779,6 +779,7 @@ struct ubi_attach_info {
@@ -49,3 +62,6 @@
        struct kmem_cache *aeb_slab_cache;
        struct ubi_ec_hdr *ech;
        struct ubi_vid_io_buf *vidb;
+-- 
+2.11.0
+
similarity index 97%
rename from target/linux/generic/patches-4.9/530-jffs2_make_lzma_available.patch
rename to target/linux/generic/pending-4.9/530-jffs2_make_lzma_available.patch
index 842558b4785921b5f0a58d44df1403354d28dbb6..d7f879b49e9cb869c3bf51a164d3f3f5d377355b 100644 (file)
@@ -1,3 +1,43 @@
+From: Alexandros C. Couloumbis <alex@ozo.com>
+Subject: fs: add jffs2/lzma support (not activated by default yet)
+
+lede-commit: c2c88d315fa0e881f8b19da07b62859b915b11b2
+Signed-off-by: Alexandros C. Couloumbis <alex@ozo.com>
+---
+ fs/jffs2/Kconfig             |    9 +
+ fs/jffs2/Makefile            |    3 +
+ fs/jffs2/compr.c             |    6 +
+ fs/jffs2/compr.h             |   10 +-
+ fs/jffs2/compr_lzma.c        |  128 +++
+ fs/jffs2/super.c             |   33 +-
+ include/linux/lzma.h         |   62 ++
+ include/linux/lzma/LzFind.h  |  115 +++
+ include/linux/lzma/LzHash.h  |   54 +
+ include/linux/lzma/LzmaDec.h |  231 +++++
+ include/linux/lzma/LzmaEnc.h |   80 ++
+ include/linux/lzma/Types.h   |  226 +++++
+ include/uapi/linux/jffs2.h   |    1 +
+ lib/Kconfig                  |    6 +
+ lib/Makefile                 |   12 +
+ lib/lzma/LzFind.c            |  761 ++++++++++++++
+ lib/lzma/LzmaDec.c           |  999 +++++++++++++++++++
+ lib/lzma/LzmaEnc.c           | 2271 ++++++++++++++++++++++++++++++++++++++++++
+ lib/lzma/Makefile            |    7 +
+ 19 files changed, 5008 insertions(+), 6 deletions(-)
+ create mode 100644 fs/jffs2/compr_lzma.c
+ create mode 100644 include/linux/lzma.h
+ create mode 100644 include/linux/lzma/LzFind.h
+ create mode 100644 include/linux/lzma/LzHash.h
+ create mode 100644 include/linux/lzma/LzmaDec.h
+ create mode 100644 include/linux/lzma/LzmaEnc.h
+ create mode 100644 include/linux/lzma/Types.h
+ create mode 100644 lib/lzma/LzFind.c
+ create mode 100644 lib/lzma/LzmaDec.c
+ create mode 100644 lib/lzma/LzmaEnc.c
+ create mode 100644 lib/lzma/Makefile
+
+diff --git a/fs/jffs2/Kconfig b/fs/jffs2/Kconfig
+index d8bb6c411e96..74bf4b162e36 100644
 --- a/fs/jffs2/Kconfig
 +++ b/fs/jffs2/Kconfig
 @@ -139,6 +139,15 @@ config JFFS2_LZO
  config JFFS2_RTIME
        bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
        depends on JFFS2_FS
+diff --git a/fs/jffs2/Makefile b/fs/jffs2/Makefile
+index 60e5d49ca03e..23ba6efd1f3f 100644
 --- a/fs/jffs2/Makefile
 +++ b/fs/jffs2/Makefile
-@@ -18,4 +18,7 @@ jffs2-$(CONFIG_JFFS2_RUBIN)  += compr_rub
+@@ -18,4 +18,7 @@ jffs2-$(CONFIG_JFFS2_RUBIN)  += compr_rubin.o
  jffs2-$(CONFIG_JFFS2_RTIME)   += compr_rtime.o
  jffs2-$(CONFIG_JFFS2_ZLIB)    += compr_zlib.o
  jffs2-$(CONFIG_JFFS2_LZO)     += compr_lzo.o
@@ -26,6 +68,8 @@
  jffs2-$(CONFIG_JFFS2_SUMMARY)   += summary.o
 +
 +CFLAGS_compr_lzma.o += -Iinclude/linux -Ilib/lzma
+diff --git a/fs/jffs2/compr.c b/fs/jffs2/compr.c
+index 4849a4c9a0e2..6ec806abb7b9 100644
 --- a/fs/jffs2/compr.c
 +++ b/fs/jffs2/compr.c
 @@ -378,6 +378,9 @@ int __init jffs2_compressors_init(void)
@@ -48,6 +92,8 @@
  #ifdef CONFIG_JFFS2_LZO
        jffs2_lzo_exit();
  #endif
+diff --git a/fs/jffs2/compr.h b/fs/jffs2/compr.h
+index 5e91d578f4ed..32db2e1ec610 100644
 --- a/fs/jffs2/compr.h
 +++ b/fs/jffs2/compr.h
 @@ -29,9 +29,9 @@
 +#endif
  
  #endif /* __JFFS2_COMPR_H__ */
+diff --git a/fs/jffs2/compr_lzma.c b/fs/jffs2/compr_lzma.c
+new file mode 100644
+index 000000000000..0fe3b75d7dcc
 --- /dev/null
 +++ b/fs/jffs2/compr_lzma.c
 @@ -0,0 +1,128 @@
 +      jffs2_unregister_compressor(&jffs2_lzma_comp);
 +      lzma_free_workspace();
 +}
+diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c
+index 5ef21f4c4c77..62e730216e7d 100644
 --- a/fs/jffs2/super.c
 +++ b/fs/jffs2/super.c
 @@ -372,14 +372,41 @@ static int __init init_jffs2_fs(void)
  
        jffs2_inode_cachep = kmem_cache_create("jffs2_i",
                                             sizeof(struct jffs2_inode_info),
---- a/include/uapi/linux/jffs2.h
-+++ b/include/uapi/linux/jffs2.h
-@@ -46,6 +46,7 @@
- #define JFFS2_COMPR_DYNRUBIN  0x05
- #define JFFS2_COMPR_ZLIB      0x06
- #define JFFS2_COMPR_LZO               0x07
-+#define JFFS2_COMPR_LZMA      0x08
- /* Compatibility flags. */
- #define JFFS2_COMPAT_MASK 0xc000      /* What do to if an unknown nodetype is found */
- #define JFFS2_NODE_ACCURATE 0x2000
+diff --git a/include/linux/lzma.h b/include/linux/lzma.h
+new file mode 100644
+index 000000000000..5f31334dfc31
 --- /dev/null
 +++ b/include/linux/lzma.h
 @@ -0,0 +1,62 @@
 +static ISzAlloc lzma_alloc = {p_lzma_malloc, p_lzma_free};
 +
 +#endif
+diff --git a/include/linux/lzma/LzFind.h b/include/linux/lzma/LzFind.h
+new file mode 100644
+index 000000000000..010c4b92ba33
 --- /dev/null
 +++ b/include/linux/lzma/LzFind.h
 @@ -0,0 +1,115 @@
 +#endif
 +
 +#endif
+diff --git a/include/linux/lzma/LzHash.h b/include/linux/lzma/LzHash.h
+new file mode 100644
+index 000000000000..f3e89966cc70
 --- /dev/null
 +++ b/include/linux/lzma/LzHash.h
 @@ -0,0 +1,54 @@
 +  hash4Value = (temp ^ ((UInt32)cur[2] << 8) ^ (p->crc[cur[3]] << 5)) & (kHash4Size - 1); }
 +
 +#endif
+diff --git a/include/linux/lzma/LzmaDec.h b/include/linux/lzma/LzmaDec.h
+new file mode 100644
+index 000000000000..bf7f084ba3dd
 --- /dev/null
 +++ b/include/linux/lzma/LzmaDec.h
 @@ -0,0 +1,231 @@
 +#endif
 +
 +#endif
+diff --git a/include/linux/lzma/LzmaEnc.h b/include/linux/lzma/LzmaEnc.h
+new file mode 100644
+index 000000000000..200d60eb83cd
 --- /dev/null
 +++ b/include/linux/lzma/LzmaEnc.h
 @@ -0,0 +1,80 @@
 +#endif
 +
 +#endif
+diff --git a/include/linux/lzma/Types.h b/include/linux/lzma/Types.h
+new file mode 100644
+index 000000000000..4751acde0722
 --- /dev/null
 +++ b/include/linux/lzma/Types.h
 @@ -0,0 +1,226 @@
 +EXTERN_C_END
 +
 +#endif
+diff --git a/include/uapi/linux/jffs2.h b/include/uapi/linux/jffs2.h
+index a18b719f49d4..f3431a5ff4ff 100644
+--- a/include/uapi/linux/jffs2.h
++++ b/include/uapi/linux/jffs2.h
+@@ -46,6 +46,7 @@
+ #define JFFS2_COMPR_DYNRUBIN  0x05
+ #define JFFS2_COMPR_ZLIB      0x06
+ #define JFFS2_COMPR_LZO               0x07
++#define JFFS2_COMPR_LZMA      0x08
+ /* Compatibility flags. */
+ #define JFFS2_COMPAT_MASK 0xc000      /* What do to if an unknown nodetype is found */
+ #define JFFS2_NODE_ACCURATE 0x2000
+diff --git a/lib/Kconfig b/lib/Kconfig
+index 260a80e313b9..2e20b2b1ba02 100644
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
 @@ -241,6 +241,12 @@ config LZ4_DECOMPRESS
  #
  # These all provide a common interface (hence the apparent duplication with
  # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
+diff --git a/lib/Makefile b/lib/Makefile
+index 50144a3aeebd..603630df298d 100644
 --- a/lib/Makefile
 +++ b/lib/Makefile
 @@ -2,6 +2,16 @@
  
  lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o
  lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o
+diff --git a/lib/lzma/LzFind.c b/lib/lzma/LzFind.c
+new file mode 100644
+index 000000000000..e3ecb05420eb
 --- /dev/null
 +++ b/lib/lzma/LzFind.c
 @@ -0,0 +1,761 @@
 +    vTable->Skip = (Mf_Skip_Func)Bt4_MatchFinder_Skip;
 +  }
 +}
+diff --git a/lib/lzma/LzmaDec.c b/lib/lzma/LzmaDec.c
+new file mode 100644
+index 000000000000..2036761bf146
 --- /dev/null
 +++ b/lib/lzma/LzmaDec.c
 @@ -0,0 +1,999 @@
 +  LzmaDec_FreeProbs(&p, alloc);
 +  return res;
 +}
+diff --git a/lib/lzma/LzmaEnc.c b/lib/lzma/LzmaEnc.c
+new file mode 100644
+index 000000000000..6dadf00dfab2
 --- /dev/null
 +++ b/lib/lzma/LzmaEnc.c
 @@ -0,0 +1,2271 @@
 +  LzmaEnc_Destroy(p, alloc, allocBig);
 +  return res;
 +}
+diff --git a/lib/lzma/Makefile b/lib/lzma/Makefile
+new file mode 100644
+index 000000000000..02e799c99381
 --- /dev/null
 +++ b/lib/lzma/Makefile
 @@ -0,0 +1,7 @@
 +obj-$(CONFIG_LZMA_DECOMPRESS) += lzma_decompress.o
 +
 +EXTRA_CFLAGS += -Iinclude/linux -Iinclude/linux/lzma -include types.h
+-- 
+2.11.0
+
similarity index 69%
rename from target/linux/generic/patches-4.9/532-jffs2_eofdetect.patch
rename to target/linux/generic/pending-4.9/532-jffs2_eofdetect.patch
index 7bb62873ce4149bfd1a7a996588b6af48abfc75e..3fc61c8cff5c20a657490e7ad4d487120287af3b 100644 (file)
@@ -1,6 +1,17 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: fs: jffs2: EOF marker
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ fs/jffs2/build.c | 10 ++++++++++
+ fs/jffs2/scan.c  | 21 +++++++++++++++++++--
+ 2 files changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/fs/jffs2/build.c b/fs/jffs2/build.c
+index b288c8ae1236..e768f9d41661 100644
 --- a/fs/jffs2/build.c
 +++ b/fs/jffs2/build.c
-@@ -117,6 +117,16 @@ static int jffs2_build_filesystem(struct
+@@ -117,6 +117,16 @@ static int jffs2_build_filesystem(struct jffs2_sb_info *c)
        dbg_fsbuild("scanned flash completely\n");
        jffs2_dbg_dump_block_lists_nolock(c);
  
        dbg_fsbuild("pass 1 starting\n");
        c->flags |= JFFS2_SB_FLAG_BUILDING;
        /* Now scan the directory tree, increasing nlink according to every dirent found. */
+diff --git a/fs/jffs2/scan.c b/fs/jffs2/scan.c
+index 90431dd613b8..8c78ab19cdab 100644
 --- a/fs/jffs2/scan.c
 +++ b/fs/jffs2/scan.c
-@@ -148,8 +148,14 @@ int jffs2_scan_medium(struct jffs2_sb_in
+@@ -148,8 +148,14 @@ int jffs2_scan_medium(struct jffs2_sb_info *c)
                /* reset summary info for next eraseblock scan */
                jffs2_sum_reset_collected(s);
  
@@ -36,7 +49,7 @@
  
                if (ret < 0)
                        goto out;
-@@ -561,6 +567,17 @@ full_scan:
+@@ -561,6 +567,17 @@ static int jffs2_scan_eraseblock (struct jffs2_sb_info *c, struct jffs2_eraseblo
                        return err;
        }
  
@@ -54,3 +67,6 @@
        /* We temporarily use 'ofs' as a pointer into the buffer/jeb */
        ofs = 0;
        max_ofs = EMPTY_SCAN_SIZE(c->sector_size);
+-- 
+2.11.0
+
similarity index 64%
rename from target/linux/generic/patches-4.9/551-ubifs-fix-default-compression-selection.patch
rename to target/linux/generic/pending-4.9/551-ubifs-fix-default-compression-selection.patch
index 1b0f30718cf7f5549ce4e98f4e058e11e4a266d2..ed0b7df5eea96becf8d2188969476435adf1469d 100644 (file)
@@ -1,3 +1,13 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: fs: ubifs: fix default compression selection in ubifs
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ fs/ubifs/sb.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
+index 3cbb904a6d7d..460cb9e3b4ea 100644
 --- a/fs/ubifs/sb.c
 +++ b/fs/ubifs/sb.c
 @@ -63,6 +63,17 @@
@@ -18,7 +28,7 @@
  /**
   * create_default_filesystem - format empty UBI volume.
   * @c: UBIFS file-system description object
-@@ -183,7 +194,7 @@ static int create_default_filesystem(str
+@@ -183,7 +194,7 @@ static int create_default_filesystem(struct ubifs_info *c)
        if (c->mount_opts.override_compr)
                sup->default_compr = cpu_to_le16(c->mount_opts.compr_type);
        else
@@ -27,3 +37,6 @@
  
        generate_random_uuid(sup->uuid);
  
+-- 
+2.11.0
+
similarity index 77%
rename from target/linux/generic/patches-4.9/600-netfilter_conntrack_flush.patch
rename to target/linux/generic/pending-4.9/600-netfilter_conntrack_flush.patch
index 825a16d28dfc46f717ac494fa6bd6c88116469f1..606ef8baad93c264c723dc150476766b5f261c44 100644 (file)
@@ -1,3 +1,14 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: netfilter: add support for flushing conntrack via /proc
+
+lede-commit 8193bbe59a74d34d6a26d4a8cb857b1952905314
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/netfilter/nf_conntrack_standalone.c | 59 ++++++++++++++++++++++++++++++++-
+ 1 file changed, 58 insertions(+), 1 deletion(-)
+
+diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
+index 5f446cd9f3fd..4c1856b5151f 100644
 --- a/net/netfilter/nf_conntrack_standalone.c
 +++ b/net/netfilter/nf_conntrack_standalone.c
 @@ -17,6 +17,7 @@
@@ -8,7 +19,7 @@
  #include <net/net_namespace.h>
  #ifdef CONFIG_SYSCTL
  #include <linux/sysctl.h>
-@@ -298,10 +299,66 @@ static int ct_open(struct inode *inode,
+@@ -298,10 +299,66 @@ static int ct_open(struct inode *inode, struct file *file)
                        sizeof(struct ct_iter_state));
  }
  
@@ -75,7 +86,7 @@
        .llseek  = seq_lseek,
        .release = seq_release_net,
  };
-@@ -405,7 +462,7 @@ static int nf_conntrack_standalone_init_
+@@ -405,7 +462,7 @@ static int nf_conntrack_standalone_init_proc(struct net *net)
        kuid_t root_uid;
        kgid_t root_gid;
  
@@ -84,3 +95,6 @@
        if (!pde)
                goto out_nf_conntrack;
  
+-- 
+2.11.0
+
similarity index 70%
rename from target/linux/generic/patches-4.9/610-netfilter_match_bypass_default_checks.patch
rename to target/linux/generic/pending-4.9/610-netfilter_match_bypass_default_checks.patch
index 746a2f70e2a4784fa5732cab49fa724a38d011d1..480bb3ff7491fdcf3b9dae91b2d53b87781fd694 100644 (file)
@@ -1,3 +1,14 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: add a new version of my netfilter speedup patches for linux 2.6.39 and 3.0
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/uapi/linux/netfilter_ipv4/ip_tables.h |  1 +
+ net/ipv4/netfilter/ip_tables.c                | 37 +++++++++++++++++++++++++++
+ 2 files changed, 38 insertions(+)
+
+diff --git a/include/uapi/linux/netfilter_ipv4/ip_tables.h b/include/uapi/linux/netfilter_ipv4/ip_tables.h
+index d0da53d96d93..f279daa13c0f 100644
 --- a/include/uapi/linux/netfilter_ipv4/ip_tables.h
 +++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h
 @@ -88,6 +88,7 @@ struct ipt_ip {
@@ -8,6 +19,8 @@
  
  /* Values for "inv" field in struct ipt_ip. */
  #define IPT_INV_VIA_IN                0x01    /* Invert the sense of IN IFACE. */
+diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
+index 7c00ce90adb8..d919350a0e8b 100644
 --- a/net/ipv4/netfilter/ip_tables.c
 +++ b/net/ipv4/netfilter/ip_tables.c
 @@ -58,6 +58,9 @@ ip_packet_match(const struct iphdr *ip,
@@ -50,7 +63,7 @@
  static bool
  ip_checkentry(const struct ipt_ip *ip)
  {
-@@ -545,6 +571,8 @@ find_check_entry(struct ipt_entry *e, st
+@@ -545,6 +571,8 @@ find_check_entry(struct ipt_entry *e, struct net *net, const char *name,
        struct xt_entry_match *ematch;
        unsigned long pcnt;
  
@@ -59,7 +72,7 @@
        pcnt = xt_percpu_counter_alloc();
        if (IS_ERR_VALUE(pcnt))
                return -ENOMEM;
-@@ -824,6 +852,7 @@ copy_entries_to_user(unsigned int total_
+@@ -824,6 +852,7 @@ copy_entries_to_user(unsigned int total_size,
        const struct xt_table_info *private = table->private;
        int ret = 0;
        const void *loc_cpu_entry;
  
        counters = alloc_counters(table);
        if (IS_ERR(counters))
-@@ -850,6 +879,14 @@ copy_entries_to_user(unsigned int total_
-                       ret = -EFAULT;
+@@ -851,6 +880,14 @@ copy_entries_to_user(unsigned int total_size,
                        goto free_counters;
                }
-+
 +              flags = e->ip.flags & IPT_F_MASK;
 +              if (copy_to_user(userptr + off
 +                               + offsetof(struct ipt_entry, ip.flags),
 +                      ret = -EFAULT;
 +                      goto free_counters;
 +              }
++
                for (i = sizeof(struct ipt_entry);
                     i < e->target_offset;
+                    i += m->u.match_size) {
+-- 
+2.11.0
+
similarity index 87%
rename from target/linux/generic/patches-4.9/611-netfilter_match_bypass_default_table.patch
rename to target/linux/generic/pending-4.9/611-netfilter_match_bypass_default_table.patch
index c91f34e14c6d72a9f851ad93c3017a6761f00e6c..a4fee4d2e25c5bfec53796d55269fafaa1c23cc5 100644 (file)
@@ -1,6 +1,16 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: netfilter: match bypass default table
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/ipv4/netfilter/ip_tables.c | 79 +++++++++++++++++++++++++++++++-----------
+ 1 file changed, 58 insertions(+), 21 deletions(-)
+
+diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
+index d919350a0e8b..9178930fca17 100644
 --- a/net/ipv4/netfilter/ip_tables.c
 +++ b/net/ipv4/netfilter/ip_tables.c
-@@ -254,6 +254,33 @@ struct ipt_entry *ipt_next_entry(const s
+@@ -254,6 +254,33 @@ struct ipt_entry *ipt_next_entry(const struct ipt_entry *entry)
        return (void *)entry + entry->next_offset;
  }
  
  
        do {
                const struct xt_entry_target *t;
+-- 
+2.11.0
+
similarity index 60%
rename from target/linux/generic/patches-4.9/612-netfilter_match_reduce_memory_access.patch
rename to target/linux/generic/pending-4.9/612-netfilter_match_reduce_memory_access.patch
index cd0414be1e08a4d885d798c1c027167b0e0cb863..20e0e862f3250bfdeb0dd02f5a772798bd2dde62 100644 (file)
@@ -1,3 +1,13 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: netfilter: reduce match memory access
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/ipv4/netfilter/ip_tables.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
+index 9178930fca17..35d1db7b78f1 100644
 --- a/net/ipv4/netfilter/ip_tables.c
 +++ b/net/ipv4/netfilter/ip_tables.c
 @@ -61,9 +61,9 @@ ip_packet_match(const struct iphdr *ip,
@@ -12,3 +22,6 @@
                    (ip->daddr & ipinfo->dmsk.s_addr) != ipinfo->dst.s_addr))
                return false;
  
+-- 
+2.11.0
+
similarity index 65%
rename from target/linux/generic/patches-4.9/613-netfilter_optional_tcp_window_check.patch
rename to target/linux/generic/pending-4.9/613-netfilter_optional_tcp_window_check.patch
index ab9d415334a6d41a2959ce299521dd91f1dde6dd..b11337e94451948b04c0423fdc3b60dd18e172cb 100644 (file)
@@ -1,3 +1,13 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: netfilter: optional tcp window check
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/netfilter/nf_conntrack_proto_tcp.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c
+index 69f687740c76..f24b62668dc8 100644
 --- a/net/netfilter/nf_conntrack_proto_tcp.c
 +++ b/net/netfilter/nf_conntrack_proto_tcp.c
 @@ -33,6 +33,9 @@
@@ -10,7 +20,7 @@
  /* "Be conservative in what you do,
      be liberal in what you accept from others."
      If it's non-zero, we mark only out of window RST segments as INVALID. */
-@@ -513,6 +516,9 @@ static bool tcp_in_window(const struct n
+@@ -513,6 +516,9 @@ static bool tcp_in_window(const struct nf_conn *ct,
        s32 receiver_offset;
        bool res, in_recv_win;
  
@@ -20,7 +30,7 @@
        /*
         * Get the required data from the packet.
         */
-@@ -1479,6 +1485,13 @@ static struct ctl_table tcp_sysctl_table
+@@ -1479,6 +1485,13 @@ static struct ctl_table tcp_sysctl_table[] = {
                .mode           = 0644,
                .proc_handler   = proc_dointvec,
        },
@@ -34,3 +44,6 @@
        { }
  };
  #endif /* CONFIG_SYSCTL */
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/616-net_optimize_xfrm_calls.patch b/target/linux/generic/pending-4.9/616-net_optimize_xfrm_calls.patch
new file mode 100644 (file)
index 0000000..d39b531
--- /dev/null
@@ -0,0 +1,25 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: add a small xfrm related performance optimization
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ net/netfilter/nf_nat_core.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c
+index 5b9c884a452e..4ea363755085 100644
+--- a/net/netfilter/nf_nat_core.c
++++ b/net/netfilter/nf_nat_core.c
+@@ -95,6 +95,9 @@ int nf_xfrm_me_harder(struct net *net, struct sk_buff *skb, unsigned int family)
+       struct dst_entry *dst;
+       int err;
++      if (skb->dev && !dev_net(skb->dev)->xfrm.policy_count[XFRM_POLICY_OUT])
++              return 0;
++
+       err = xfrm_decode_session(skb, &fl, family);
+       if (err < 0)
+               return err;
+-- 
+2.11.0
+
similarity index 70%
rename from target/linux/generic/patches-4.9/630-packet_socket_type.patch
rename to target/linux/generic/pending-4.9/630-packet_socket_type.patch
index 00d78dc652ea4a16348939756ab24a8b214ffb20..5afee1e3cff1b758fea24ff6fed469da74874b7b 100644 (file)
@@ -1,10 +1,16 @@
-This patch allows the user to specify desired packet types (outgoing,
-broadcast, unicast, etc.) on packet sockets via setsockopt.
-This can reduce the load in situations where only a limited number
-of packet types are necessary
+From: Felix Fietkau <nbd@nbd.name>
+Subject: net: add an optimization for dealing with raw sockets
 
+lede-commit: 4898039703d7315f0f3431c860123338ec3be0f6
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/uapi/linux/if_packet.h |  3 +++
+ net/packet/af_packet.c         | 34 +++++++++++++++++++++++++++-------
+ net/packet/internal.h          |  1 +
+ 3 files changed, 31 insertions(+), 7 deletions(-)
 
+diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
+index 9e7edfd8141e..40fdf8907900 100644
 --- a/include/uapi/linux/if_packet.h
 +++ b/include/uapi/linux/if_packet.h
 @@ -31,6 +31,8 @@ struct sockaddr_ll {
@@ -24,9 +30,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  #define PACKET_FANOUT_HASH            0
  #define PACKET_FANOUT_LB              1
+diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
+index 6a563e6e24de..e412c5a4f6d4 100644
 --- a/net/packet/af_packet.c
 +++ b/net/packet/af_packet.c
-@@ -1772,6 +1772,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1772,6 +1772,7 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev,
  {
        struct sock *sk;
        struct sockaddr_pkt *spkt;
@@ -34,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         *      When we registered the protocol we saved the socket in the data
-@@ -1779,6 +1780,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1779,6 +1780,7 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev,
         */
  
        sk = pt->af_packet_priv;
@@ -42,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         *      Yank back the headers [hope the device set this
-@@ -1791,7 +1793,7 @@ static int packet_rcv_spkt(struct sk_buf
+@@ -1791,7 +1793,7 @@ static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev,
         *      so that this procedure is noop.
         */
  
@@ -51,7 +59,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
                goto out;
  
        if (!net_eq(dev_net(dev), sock_net(sk)))
-@@ -2029,12 +2031,12 @@ static int packet_rcv(struct sk_buff *sk
+@@ -2029,12 +2031,12 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
        unsigned int snaplen, res;
        bool is_drop_n_account = false;
  
@@ -67,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -2159,12 +2161,12 @@ static int tpacket_rcv(struct sk_buff *s
+@@ -2159,12 +2161,12 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev,
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
        BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
  
@@ -83,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!net_eq(dev_net(dev), sock_net(sk)))
                goto drop;
  
-@@ -3234,6 +3236,7 @@ static int packet_create(struct net *net
+@@ -3234,6 +3236,7 @@ static int packet_create(struct net *net, struct socket *sock, int protocol,
        mutex_init(&po->pg_vec_lock);
        po->rollover = NULL;
        po->prot_hook.func = packet_rcv;
@@ -91,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        if (sock->type == SOCK_PACKET)
                po->prot_hook.func = packet_rcv_spkt;
-@@ -3815,6 +3818,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3815,6 +3818,16 @@ packet_setsockopt(struct socket *sock, int level, int optname, char __user *optv
                po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
                return 0;
        }
@@ -108,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        default:
                return -ENOPROTOOPT;
        }
-@@ -3867,6 +3880,13 @@ static int packet_getsockopt(struct sock
+@@ -3867,6 +3880,13 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
        case PACKET_VNET_HDR:
                val = po->has_vnet_hdr;
                break;
@@ -122,6 +130,8 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        case PACKET_VERSION:
                val = po->tp_version;
                break;
+diff --git a/net/packet/internal.h b/net/packet/internal.h
+index 9ee46314b7d7..76c895fcf22f 100644
 --- a/net/packet/internal.h
 +++ b/net/packet/internal.h
 @@ -129,6 +129,7 @@ struct packet_sock {
@@ -132,3 +142,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  };
  
  static struct packet_sock *pkt_sk(struct sock *sk)
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/650-pppoe_header_pad.patch b/target/linux/generic/pending-4.9/650-pppoe_header_pad.patch
new file mode 100644 (file)
index 0000000..65fded0
--- /dev/null
@@ -0,0 +1,34 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: pppoe: add extra padding for the header (useful for drivers that need headroom)
+
+lede-commit 6517a757ec711fc3354b857e273e2621042f3c7a
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/net/ppp/pppoe.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
+index 4ddae8118c85..49ef11f92fc9 100644
+--- a/drivers/net/ppp/pppoe.c
++++ b/drivers/net/ppp/pppoe.c
+@@ -861,7 +861,7 @@ static int pppoe_sendmsg(struct socket *sock, struct msghdr *m,
+               goto end;
+-      skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32,
++      skb = sock_wmalloc(sk, total_len + dev->hard_header_len + 32 + NET_SKB_PAD,
+                          0, GFP_KERNEL);
+       if (!skb) {
+               error = -ENOMEM;
+@@ -869,7 +869,7 @@ static int pppoe_sendmsg(struct socket *sock, struct msghdr *m,
+       }
+       /* Reserve space for headers. */
+-      skb_reserve(skb, dev->hard_header_len);
++      skb_reserve(skb, dev->hard_header_len + NET_SKB_PAD);
+       skb_reset_network_header(skb);
+       skb->dev = dev;
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/655-increase_skb_pad.patch b/target/linux/generic/pending-4.9/655-increase_skb_pad.patch
new file mode 100644 (file)
index 0000000..d15c3c4
--- /dev/null
@@ -0,0 +1,25 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: kernel: add a few patches for avoiding unnecessary skb reallocations - significantly improves ethernet<->wireless performance
+
+lede-commit: 6f89cffc9add6939d44a6b54cf9a5e77849aa7fd
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/skbuff.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
+index 32810f279f8e..5f3343ae25ef 100644
+--- a/include/linux/skbuff.h
++++ b/include/linux/skbuff.h
+@@ -2298,7 +2298,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
+  * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
+  */
+ #ifndef NET_SKB_PAD
+-#define NET_SKB_PAD   max(32, L1_CACHE_BYTES)
++#define NET_SKB_PAD   max(64, L1_CACHE_BYTES)
+ #endif
+ int ___pskb_trim(struct sk_buff *skb, unsigned int len);
+-- 
+2.11.0
+
similarity index 94%
rename from target/linux/generic/patches-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
rename to target/linux/generic/pending-4.9/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
index 4ef5bf1d4e58152b2a391f371bc73a6b0a017bc6..8956a7f14a562e712aba56885bddc2dee4e40aa0 100644 (file)
@@ -1,7 +1,5 @@
-From 775d6fe74d1eaec2ba387535b068dde2dc89de9e Mon Sep 17 00:00:00 2001
 From: Steven Barth <steven@midlink.org>
-Date: Thu, 22 May 2014 09:49:05 +0200
-Subject: [PATCH] Add support for MAP-E FMRs (mesh mode)
+Subject: Add support for MAP-E FMRs (mesh mode)
 
 MAP-E FMRs (draft-ietf-softwire-map-10) are rules for IPv4-communication
 between MAP CEs (mesh mode) without the need to forward such data to a
@@ -302,7 +300,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  /**
   * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own
   *   @t: the outgoing tunnel device
-@@ -1285,6 +1425,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1283,6 +1423,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
  {
        struct ip6_tnl *t = netdev_priv(dev);
        struct ipv6hdr *ipv6h = ipv6_hdr(skb);
@@ -310,7 +308,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        int encap_limit = -1;
        __u16 offset;
        struct flowi6 fl6;
-@@ -1343,6 +1484,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
+@@ -1338,6 +1479,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
                        fl6.flowi6_mark = skb->mark;
        }
  
@@ -329,7 +327,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6))
                return -1;
  
-@@ -1470,6 +1623,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
+@@ -1463,6 +1616,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
        t->parms.flowinfo = p->flowinfo;
        t->parms.link = p->link;
        t->parms.proto = p->proto;
@@ -344,7 +342,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        dst_cache_reset(&t->dst_cache);
        ip6_tnl_link_config(t);
        return 0;
-@@ -1508,6 +1669,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
+@@ -1501,6 +1662,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
        p->flowinfo = u->flowinfo;
        p->link = u->link;
        p->proto = u->proto;
@@ -352,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1885,6 +2047,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1878,6 +2040,15 @@ static int ip6_tnl_validate(struct nlatt
        return 0;
  }
  
@@ -368,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
                                  struct __ip6_tnl_parm *parms)
  {
-@@ -1919,6 +2090,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1912,6 +2083,46 @@ static void ip6_tnl_netlink_parms(struct
  
        if (data[IFLA_IPTUN_COLLECT_METADATA])
                parms->collect_md = true;
@@ -415,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2028,6 +2239,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2021,6 +2232,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -428,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        return
                /* IFLA_IPTUN_LINK */
                nla_total_size(4) +
-@@ -2055,6 +2272,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2048,6 +2265,24 @@ static size_t ip6_tnl_get_size(const str
                nla_total_size(2) +
                /* IFLA_IPTUN_COLLECT_METADATA */
                nla_total_size(0) +
@@ -453,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
                0;
  }
  
-@@ -2062,6 +2297,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2055,6 +2290,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
        struct ip6_tnl *tunnel = netdev_priv(dev);
        struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -463,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
        if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
            nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2070,9 +2308,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2063,9 +2301,27 @@ static int ip6_tnl_fill_info(struct sk_b
            nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
            nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
            nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
@@ -492,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
        if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
            nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2110,6 +2366,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2103,6 +2359,7 @@ static const struct nla_policy ip6_tnl_p
        [IFLA_IPTUN_ENCAP_SPORT]        = { .type = NLA_U16 },
        [IFLA_IPTUN_ENCAP_DPORT]        = { .type = NLA_U16 },
        [IFLA_IPTUN_COLLECT_METADATA]   = { .type = NLA_FLAG },
similarity index 93%
rename from target/linux/generic/patches-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
rename to target/linux/generic/pending-4.9/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
index 1c08785598244558b54f833cefa8b5abacb58950..7a13e61aeba1bc17444e520f800fb333022e6c60 100644 (file)
@@ -1,7 +1,5 @@
-From 1b5aaa4b16f6e6471ab1c07b38068197a1b4c395 Mon Sep 17 00:00:00 2001
 From: Jonas Gorski <jogo@openwrt.org>
-Date: Fri, 24 May 2013 14:40:54 +0200
-Subject: [PATCH 1/2] ipv6: allow rejecting with "source address failed policy"
+Subject: ipv6: allow rejecting with "source address failed policy"
 
 RFC6204 L-14 requires rejecting traffic from invalid addresses with
 ICMPv6 Destination Unreachable, Code 5 (Source address failed ingress/
@@ -88,7 +86,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
        default:
 --- a/net/ipv6/fib6_rules.c
 +++ b/net/ipv6/fib6_rules.c
-@@ -77,6 +77,10 @@ static int fib6_rule_action(struct fib_r
+@@ -88,6 +88,10 @@ static int fib6_rule_action(struct fib_r
                err = -EACCES;
                rt = net->ipv6.ip6_prohibit_entry;
                goto discard_pkt;
@@ -183,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                cfg->fc_flags |= RTF_REJECT;
  
        if (rtm->rtm_type == RTN_LOCAL)
-@@ -3207,6 +3241,9 @@ static int rt6_fill_node(struct net *net
+@@ -3213,6 +3247,9 @@ static int rt6_fill_node(struct net *net
                case -EACCES:
                        rtm->rtm_type = RTN_PROHIBIT;
                        break;
@@ -193,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                case -EAGAIN:
                        rtm->rtm_type = RTN_THROW;
                        break;
-@@ -3483,6 +3520,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3489,6 +3526,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
                net->ipv6.ip6_prohibit_entry->dst.dev = dev;
                net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -202,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
                net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
                net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -3705,6 +3744,17 @@ static int __net_init ip6_route_net_init
+@@ -3711,6 +3750,17 @@ static int __net_init ip6_route_net_init
        net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
        dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
                         ip6_template_metrics, true);
@@ -220,7 +218,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
        net->ipv6.sysctl.flush_delay = 0;
-@@ -3723,6 +3773,8 @@ out:
+@@ -3729,6 +3779,8 @@ out:
        return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -229,7 +227,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
        kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -3740,6 +3792,7 @@ static void __net_exit ip6_route_net_exi
+@@ -3746,6 +3798,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
        kfree(net->ipv6.ip6_prohibit_entry);
        kfree(net->ipv6.ip6_blk_hole_entry);
@@ -237,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
        dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -3813,6 +3866,9 @@ void __init ip6_route_init_special_entri
+@@ -3819,6 +3872,9 @@ void __init ip6_route_init_special_entri
        init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
        init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
        init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
similarity index 85%
rename from target/linux/generic/patches-4.9/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
rename to target/linux/generic/pending-4.9/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch
index 74aae656a042a52aa2914f70c4baf93739223176..cd627667d3f3ec75fa9888deb32b1256bdf925a5 100644 (file)
@@ -1,8 +1,5 @@
-From 7749b481ce5d7e232b1f7da5e6b2c44816f51681 Mon Sep 17 00:00:00 2001
 From: Jonas Gorski <jogo@openwrt.org>
-Date: Sun, 19 Jan 2014 20:45:51 +0100
-Subject: [PATCH 2/2] net: provide defines for _POLICY_FAILED until all code is
- updated
+Subject: net: provide defines for _POLICY_FAILED until all code is updated
 
 Upstream introduced ICMPV6_POLICY_FAIL for code 5 of destination
 unreachable, conflicting with our name.
similarity index 71%
rename from target/linux/generic/patches-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
rename to target/linux/generic/pending-4.9/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
index f77c03b8485cd71738e99839c42cb43cc1b999eb..e886d70dcca319b231b258d2bc2fdfbe3603df4e 100644 (file)
@@ -1,23 +1,46 @@
-Subject: NET: skip GRO for foreign MAC addresses
-
-For network drivers using napi_gro_receive, packets are run through GRO,
-even when the destination MAC address does not match, and they're supposed
-to be delivered to another host behind a different bridge port.
-
-This can be very expensive, because for drivers without TSO or scatter-
-gather, this can only be undone by copying the skb and checksumming it
-again.
-
-To be able to track foreign MAC addresses in an inexpensive way, create
-a mask of changed bits in MAC addresses of upper devices. This allows
-handling VLANs and bridge devices with different addresses (as long as
-they are not too different).
+From: Felix Fietkau <nbd@nbd.name>
+Subject: net: replace GRO optimization patch with a new one that supports VLANs/bridges with different MAC addresses
 
 Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/netdevice.h |  2 ++
+ include/linux/skbuff.h    |  3 ++-
+ net/core/dev.c            | 48 +++++++++++++++++++++++++++++++++++++++++++++++
+ net/ethernet/eth.c        | 18 +++++++++++++++++-
+ 4 files changed, 69 insertions(+), 2 deletions(-)
 
+diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
+index 780e7171f548..6b738c662bc1 100644
+--- a/include/linux/netdevice.h
++++ b/include/linux/netdevice.h
+@@ -1749,6 +1749,8 @@ struct net_device {
+       struct netdev_hw_addr_list      mc;
+       struct netdev_hw_addr_list      dev_addrs;
++      unsigned char           local_addr_mask[MAX_ADDR_LEN];
++
+ #ifdef CONFIG_SYSFS
+       struct kset             *queues_kset;
+ #endif
+diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
+index 5f3343ae25ef..3a04baab9b28 100644
+--- a/include/linux/skbuff.h
++++ b/include/linux/skbuff.h
+@@ -742,7 +742,8 @@ struct sk_buff {
+ #ifdef CONFIG_NET_SWITCHDEV
+       __u8                    offload_fwd_mark:1;
+ #endif
+-      /* 2, 4 or 5 bit hole */
++      __u8                    gro_skip:1;
++      /* 1, 3 or 4 bit hole */
+ #ifdef CONFIG_NET_SCHED
+       __u16                   tc_index;       /* traffic control index */
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 2e04fd188081..c7c96308bc84 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
-@@ -4513,6 +4513,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4512,6 +4512,9 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff
        enum gro_result ret;
        int grow;
  
@@ -27,7 +50,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        if (!(skb->dev->features & NETIF_F_GRO))
                goto normal;
  
-@@ -5800,6 +5803,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5789,6 +5792,48 @@ static void __netdev_adjacent_dev_unlink_neighbour(struct net_device *dev,
                                           &upper_dev->adj_list.lower);
  }
  
@@ -76,7 +99,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static int __netdev_upper_dev_link(struct net_device *dev,
                                   struct net_device *upper_dev, bool master,
                                   void *upper_priv, void *upper_info)
-@@ -5998,6 +6043,8 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5987,6 +6032,8 @@ void netdev_upper_dev_unlink(struct net_device *dev,
        list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
                __netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
  
@@ -85,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
                                      &changeupper_info.info);
  }
-@@ -6598,6 +6645,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6587,6 +6634,7 @@ int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa)
        if (err)
                return err;
        dev->addr_assign_type = NET_ADDR_SET;
@@ -93,32 +116,11 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        call_netdevice_notifiers(NETDEV_CHANGEADDR, dev);
        add_device_randomness(dev->dev_addr, dev->addr_len);
        return 0;
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
-@@ -1749,6 +1749,8 @@ struct net_device {
-       struct netdev_hw_addr_list      mc;
-       struct netdev_hw_addr_list      dev_addrs;
-+      unsigned char           local_addr_mask[MAX_ADDR_LEN];
-+
- #ifdef CONFIG_SYSFS
-       struct kset             *queues_kset;
- #endif
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -742,7 +742,8 @@ struct sk_buff {
- #ifdef CONFIG_NET_SWITCHDEV
-       __u8                    offload_fwd_mark:1;
- #endif
--      /* 2, 4 or 5 bit hole */
-+      __u8                    gro_skip:1;
-+      /* 1, 3 or 4 bit hole */
- #ifdef CONFIG_NET_SCHED
-       __u16                   tc_index;       /* traffic control index */
+diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c
+index fbf1de965a9a..6a6d90b9a880 100644
 --- a/net/ethernet/eth.c
 +++ b/net/ethernet/eth.c
-@@ -143,6 +143,18 @@ u32 eth_get_headlen(void *data, unsigned
+@@ -143,6 +143,18 @@ u32 eth_get_headlen(void *data, unsigned int len)
  }
  EXPORT_SYMBOL(eth_get_headlen);
  
@@ -137,7 +139,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  /**
   * eth_type_trans - determine the packet's protocol ID.
   * @skb: received socket data
-@@ -171,8 +183,12 @@ __be16 eth_type_trans(struct sk_buff *sk
+@@ -171,8 +183,12 @@ __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev)
                        skb->pkt_type = PACKET_MULTICAST;
        }
        else if (unlikely(!ether_addr_equal_64bits(eth->h_dest,
@@ -151,3 +153,6 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        /*
         * Some variants of DSA tagging don't have an ethertype field
+-- 
+2.11.0
+
similarity index 98%
rename from target/linux/generic/patches-4.9/681-NET-add-of_get_mac_address_mtd.patch
rename to target/linux/generic/pending-4.9/681-NET-add-of_get_mac_address_mtd.patch
index 2044872973f796de65f59c10fceba5f70bab7c1a..b29b5f11b0541c4cb25f99aec1419e2f59a196e2 100644 (file)
@@ -1,5 +1,4 @@
 From: John Crispin <blogic@openwrt.org>
-Date: Sun, 27 Jul 2014 09:40:01 +0100
 Subject: NET: add mtd-mac-address support to of_get_mac_address()
 
 Many embedded devices have information such as mac addresses stored inside mtd
similarity index 72%
rename from target/linux/generic/patches-4.9/701-phy_extension.patch
rename to target/linux/generic/pending-4.9/701-phy_extension.patch
index 0eb3e89adc3c1eb1bc21536934e1b9276bf0cbfa..dd399101645ef2c44d796e5d9849ec09b782241b 100644 (file)
@@ -1,6 +1,17 @@
+From: John Crispin <john@phrozen.org>
+Subject: net: phy: add phy_ethtool_ioctl()
+
+Signed-off-by: John Crispin <john@phrozen.org>
+---
+ drivers/net/phy/phy.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
+ include/linux/phy.h   |  1 +
+ 2 files changed, 45 insertions(+)
+
+diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
+index a9be26f1f677..d0a5ac1d6445 100644
 --- a/drivers/net/phy/phy.c
 +++ b/drivers/net/phy/phy.c
-@@ -466,6 +466,50 @@ int phy_ethtool_ksettings_get(struct phy
+@@ -466,6 +466,50 @@ int phy_ethtool_ksettings_get(struct phy_device *phydev,
  }
  EXPORT_SYMBOL(phy_ethtool_ksettings_get);
  
  /**
   * phy_mii_ioctl - generic PHY MII ioctl interface
   * @phydev: the phy_device struct
+diff --git a/include/linux/phy.h b/include/linux/phy.h
+index bd22670e2182..93c1e74afc44 100644
 --- a/include/linux/phy.h
 +++ b/include/linux/phy.h
-@@ -816,6 +816,7 @@ int phy_ethtool_ksettings_get(struct phy
+@@ -813,6 +813,7 @@ int phy_ethtool_ksettings_get(struct phy_device *phydev,
                              struct ethtool_link_ksettings *cmd);
  int phy_ethtool_ksettings_set(struct phy_device *phydev,
                              const struct ethtool_link_ksettings *cmd);
@@ -61,3 +74,6 @@
  int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd);
  int phy_start_interrupts(struct phy_device *phydev);
  void phy_print_status(struct phy_device *phydev);
+-- 
+2.11.0
+
diff --git a/target/linux/generic/pending-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-4.9/703-phy-add-detach-callback-to-struct-phy_driver.patch
new file mode 100644 (file)
index 0000000..d703461
--- /dev/null
@@ -0,0 +1,45 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: generic: add detach callback to struct phy_driver
+
+lede-commit: fe61fc2d7d0b3fb348b502f68f98243b3ddf5867
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/phy/phy_device.c | 3 +++
+ include/linux/phy.h          | 6 ++++++
+ 2 files changed, 9 insertions(+)
+
+diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
+index 14d57d0d1c04..c37d3a27e372 100644
+--- a/drivers/net/phy/phy_device.c
++++ b/drivers/net/phy/phy_device.c
+@@ -1001,6 +1001,9 @@ void phy_detach(struct phy_device *phydev)
+       struct mii_bus *bus;
+       int i;
++      if (phydev->drv && phydev->drv->detach)
++              phydev->drv->detach(phydev);
++
+       phydev->attached_dev->phydev = NULL;
+       phydev->attached_dev = NULL;
+       phy_suspend(phydev);
+diff --git a/include/linux/phy.h b/include/linux/phy.h
+index 93c1e74afc44..d97a418f2cf7 100644
+--- a/include/linux/phy.h
++++ b/include/linux/phy.h
+@@ -508,6 +508,12 @@ struct phy_driver {
+        */
+       int (*did_interrupt)(struct phy_device *phydev);
++      /*
++       * Called before an ethernet device is detached
++       * from the PHY.
++       */
++      void (*detach)(struct phy_device *phydev);
++
+       /* Clears up any memory if needed */
+       void (*remove)(struct phy_device *phydev);
+-- 
+2.11.0
+
similarity index 55%
rename from target/linux/generic/patches-4.9/704-phy-no-genphy-soft-reset.patch
rename to target/linux/generic/pending-4.9/704-phy-no-genphy-soft-reset.patch
index baab0447775a18ee9035e0803c2725195c1f1f27..a434001e27ba7fd63a199ab95e77e6aa4a83c051 100644 (file)
@@ -1,6 +1,16 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: net: phy: disable soft-reset for generic PHY devices to avoid accidentally clearing preinitialized state
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/net/phy/phy_device.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
+index c37d3a27e372..069f7ee3e65c 100644
 --- a/drivers/net/phy/phy_device.c
 +++ b/drivers/net/phy/phy_device.c
-@@ -1527,7 +1527,7 @@ int genphy_config_init(struct phy_device
+@@ -1482,7 +1482,7 @@ int genphy_config_init(struct phy_device *phydev)
        return 0;
  }
  
@@ -9,7 +19,7 @@
  {
        /* Do nothing for now */
        return 0;
-@@ -1798,7 +1798,7 @@ static struct phy_driver genphy_driver[]
+@@ -1721,7 +1721,7 @@ static struct phy_driver genphy_driver[] = {
        .phy_id         = 0xffffffff,
        .phy_id_mask    = 0xffffffff,
        .name           = "Generic PHY",
@@ -18,7 +28,7 @@
        .config_init    = genphy_config_init,
        .features       = PHY_GBIT_FEATURES | SUPPORTED_MII |
                          SUPPORTED_AUI | SUPPORTED_FIBRE |
-@@ -1812,7 +1812,7 @@ static struct phy_driver genphy_driver[]
+@@ -1735,7 +1735,7 @@ static struct phy_driver genphy_driver[] = {
        .phy_id         = 0xffffffff,
        .phy_id_mask    = 0xffffffff,
        .name           = "Generic 10G PHY",
@@ -27,3 +37,6 @@
        .config_init    = gen10g_config_init,
        .features       = 0,
        .config_aneg    = gen10g_config_aneg,
+-- 
+2.11.0
+
similarity index 74%
rename from target/linux/generic/patches-4.9/734-net-phy-at803x-allow-to-configure-via-pdata.patch
rename to target/linux/generic/pending-4.9/734-net-phy-at803x-allow-to-configure-via-pdata.patch
index 73c8a62cced7f30d4b7f9eaa7b31c8a549c65aa2..e996d9509307bf3498532124bdcc6424444a9ee4 100644 (file)
@@ -1,3 +1,18 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: net: phy: allow to configure AR803x PHYs via platform data
+
+Add a patch for the at803x phy driver, in order to be able
+to configure some register settings via platform data.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/net/phy/at803x.c                 | 56 ++++++++++++++++++++++++++++++++
+ include/linux/platform_data/phy-at803x.h | 11 +++++++
+ 2 files changed, 67 insertions(+)
+ create mode 100644 include/linux/platform_data/phy-at803x.h
+
+diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
+index c0f45dde60aa..4a55130dcb1c 100644
 --- a/drivers/net/phy/at803x.c
 +++ b/drivers/net/phy/at803x.c
 @@ -12,12 +12,14 @@
@@ -35,7 +50,7 @@
  };
  
  struct at803x_context {
-@@ -276,8 +284,16 @@ does_not_require_reset_workaround:
+@@ -276,8 +284,16 @@ static int at803x_probe(struct phy_device *phydev)
        return 0;
  }
  
@@ -52,7 +67,7 @@
        int ret;
  
        ret = genphy_config_init(phydev);
-@@ -298,6 +314,26 @@ static int at803x_config_init(struct phy
+@@ -298,6 +314,26 @@ static int at803x_config_init(struct phy_device *phydev)
                        return ret;
        }
  
@@ -79,7 +94,7 @@
        return 0;
  }
  
-@@ -335,6 +371,8 @@ static int at803x_config_intr(struct phy
+@@ -335,6 +371,8 @@ static int at803x_config_intr(struct phy_device *phydev)
  static void at803x_link_change_notify(struct phy_device *phydev)
  {
        struct at803x_priv *priv = phydev->priv;
  
        /*
         * Conduct a hardware reset for AT8030/2 every time a link loss is
-@@ -363,6 +401,24 @@ static void at803x_link_change_notify(st
+@@ -363,6 +401,24 @@ static void at803x_link_change_notify(struct phy_device *phydev)
        } else {
                priv->phy_reset = false;
        }
  }
  
  static int at803x_aneg_done(struct phy_device *phydev)
+diff --git a/include/linux/platform_data/phy-at803x.h b/include/linux/platform_data/phy-at803x.h
+new file mode 100644
+index 000000000000..a5df74b4f38d
 --- /dev/null
 +++ b/include/linux/platform_data/phy-at803x.h
 @@ -0,0 +1,11 @@
 +};
 +
 +#endif /* _PHY_AT803X_PDATA_H */
+-- 
+2.11.0
+
similarity index 63%
rename from target/linux/generic/patches-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch
rename to target/linux/generic/pending-4.9/735-net-phy-at803x-fix-at8033-sgmii-mode.patch
index 581aff1d9d8ad87add95b7aedc132d05b085eaf7..c5786a5d6a278024da5d9281859c34415ed5ef91 100644 (file)
@@ -1,3 +1,18 @@
+From: Roman Yeryomin <roman@advem.lv>
+Subject: kernel: add at803x fix for sgmii mode
+
+Some (possibly broken) bootloaders incorreclty initialize at8033
+phy. This patch enables sgmii autonegotiation mode.
+
+[john@phrozen.org: felix added this to his upstream queue]
+
+Signed-off-by: Roman Yeryomin <roman@advem.lv>
+---
+ drivers/net/phy/at803x.c | 25 +++++++++++++++++++++++++
+ 1 file changed, 25 insertions(+)
+
+diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
+index 4a55130dcb1c..434efb68bc5d 100644
 --- a/drivers/net/phy/at803x.c
 +++ b/drivers/net/phy/at803x.c
 @@ -55,6 +55,10 @@
@@ -11,7 +26,7 @@
  #define AT803X_MODE_CFG_MASK                  0x0F
  #define AT803X_MODE_CFG_SGMII                 0x01
  
-@@ -295,6 +299,27 @@ static int at803x_config_init(struct phy
+@@ -295,6 +299,27 @@ static int at803x_config_init(struct phy_device *phydev)
  {
        struct at803x_platform_data *pdata;
        int ret;
@@ -39,3 +54,6 @@
  
        ret = genphy_config_init(phydev);
        if (ret < 0)
+-- 
+2.11.0
+
similarity index 66%
rename from target/linux/generic/patches-4.9/810-pci_disable_common_quirks.patch
rename to target/linux/generic/pending-4.9/810-pci_disable_common_quirks.patch
index cb9fa1935beb1319906f3ada3d02f08540326ea2..f63c8ea357398f4f4706e802252d17aa3ac3694f 100644 (file)
@@ -1,3 +1,14 @@
+From: Gabor Juhos <juhosg@openwrt.org>
+Subject: debloat: add kernel config option to disabling common PCI quirks
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+---
+ drivers/pci/Kconfig  | 6 ++++++
+ drivers/pci/quirks.c | 6 ++++++
+ 2 files changed, 12 insertions(+)
+
+diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig
+index 6555eb78d91c..120fe3921820 100644
 --- a/drivers/pci/Kconfig
 +++ b/drivers/pci/Kconfig
 @@ -71,6 +71,12 @@ config XEN_PCIDEV_FRONTEND
  config HT_IRQ
        bool "Interrupts on hypertransport devices"
        default y
+diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
+index 5d8151b43fbb..cb356e78e743 100644
 --- a/drivers/pci/quirks.c
 +++ b/drivers/pci/quirks.c
-@@ -41,6 +41,7 @@ static void quirk_mmio_always_on(struct
+@@ -41,6 +41,7 @@ static void quirk_mmio_always_on(struct pci_dev *dev)
  DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID,
                                PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on);
  
@@ -23,7 +36,7 @@
  /* The Mellanox Tavor device gives false positive parity errors
   * Mark this device with a broken_parity_status, to allow
   * PCI scanning code to "skip" this now blacklisted device.
-@@ -3038,6 +3039,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I
+@@ -3038,6 +3039,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f8, quirk_intel_mc_errata);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
  DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
  
@@ -31,7 +44,7 @@
  
  /*
   * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum.  To
-@@ -3094,6 +3096,8 @@ static void fixup_debug_report(struct pc
+@@ -3094,6 +3096,8 @@ static void fixup_debug_report(struct pci_dev *dev, ktime_t calltime,
        }
  }
  
@@ -40,7 +53,7 @@
  /*
   * Some BIOS implementations leave the Intel GPU interrupts enabled,
   * even though no one is handling them (f.e. i915 driver is never loaded).
-@@ -3128,6 +3132,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN
+@@ -3128,6 +3132,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
  DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq);
  
@@ -49,3 +62,6 @@
  /*
   * PCI devices which are on Intel chips can skip the 10ms delay
   * before entering D3 mode.
+-- 
+2.11.0
+
similarity index 73%
rename from target/linux/generic/patches-4.9/811-pci_disable_usb_common_quirks.patch
rename to target/linux/generic/pending-4.9/811-pci_disable_usb_common_quirks.patch
index eff735086791aa300814637c602e0454abc80f06..33fbf34c4f44df7bcebd3ba541011ccc2fc72ca7 100644 (file)
@@ -1,6 +1,17 @@
+From: Felix Fietkau <nbd@nbd.name>
+Subject: debloat: disable common USB quirks
 
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ drivers/usb/host/pci-quirks.c | 16 ++++++++++++++++
+ drivers/usb/host/pci-quirks.h | 18 +++++++++++++++++-
+ include/linux/usb/hcd.h       |  7 +++++++
+ 3 files changed, 40 insertions(+), 1 deletion(-)
+
+Index: linux-4.9.40/drivers/usb/host/pci-quirks.c
+===================================================================
+--- linux-4.9.40.orig/drivers/usb/host/pci-quirks.c
++++ linux-4.9.40/drivers/usb/host/pci-quirks.c
 @@ -106,6 +106,8 @@ struct amd_chipset_type {
        u8 rev;
  };
  DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
                        PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
 +#endif
---- a/drivers/usb/host/pci-quirks.h
-+++ b/drivers/usb/host/pci-quirks.h
+Index: linux-4.9.40/drivers/usb/host/pci-quirks.h
+===================================================================
+--- linux-4.9.40.orig/drivers/usb/host/pci-quirks.h
++++ linux-4.9.40/drivers/usb/host/pci-quirks.h
 @@ -4,6 +4,9 @@
  #ifdef CONFIG_PCI
  void uhci_reset_hc(struct pci_dev *pdev, unsigned long base);
  static inline void usb_amd_dev_put(void) {}
  static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
  static inline void sb800_prefetch(struct device *dev, int on) {}
--#endif  /* CONFIG_PCI */
 +static inline void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev) {}
-+#endif
+ #endif  /* CONFIG_PCI */
  
  #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
---- a/include/linux/usb/hcd.h
-+++ b/include/linux/usb/hcd.h
+Index: linux-4.9.40/include/linux/usb/hcd.h
+===================================================================
+--- linux-4.9.40.orig/include/linux/usb/hcd.h
++++ linux-4.9.40/include/linux/usb/hcd.h
 @@ -461,7 +461,14 @@ extern int usb_hcd_pci_probe(struct pci_
  extern void usb_hcd_pci_remove(struct pci_dev *dev);
  extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
similarity index 94%
rename from target/linux/generic/patches-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch
rename to target/linux/generic/pending-4.9/821-usb-Remove-annoying-warning-about-bogus-URB.patch
index 84a62bf22886fa4323373ed93a75d6101eb0b77f..dc60557f4e25d1e3edfc93cec8542f808f11e645 100644 (file)
@@ -1,7 +1,5 @@
-From f13ad28ba4280d2283ca2b49f0bd384bc51e6a68 Mon Sep 17 00:00:00 2001
 From: Alexey Brodkin <abrodkin@synopsys.com>
-Date: Tue, 5 Jul 2016 14:28:31 +0300
-Subject: [PATCH] usb: Remove annoying warning about bogus URB
+Subject: usb: Remove annoying warning about bogus URB
 
 When ath9k-htc Wi-Fi dongle is used with generic OHCI controller
 infinite stream of warnings appears in debug console like this:
diff --git a/target/linux/generic/pending-4.9/831-ledtrig_netdev.patch b/target/linux/generic/pending-4.9/831-ledtrig_netdev.patch
new file mode 100644 (file)
index 0000000..baba2ca
--- /dev/null
@@ -0,0 +1,81 @@
+From: Alexey Brodkin <abrodkin@synopsys.com>
+Subject: usb: Remove annoying warning about bogus URB
+
+When ath9k-htc Wi-Fi dongle is used with generic OHCI controller
+infinite stream of warnings appears in debug console like this:
+-------------------------->8----------------------
+usb 1-1: new full-speed USB device number 2 using ohci-platform
+usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
+usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size:
+51008
+------------[ cut here ]------------
+WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
+usb_submit_urb+0x1b4/0x498()
+usb 1-1: BOGUS urb xfer, pipe 1 != type 3
+Modules linked in:
+CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted
+4.4.0-rc4-00017-g00e2d79-dirty #3
+Workqueue: events request_firmware_work_func
+
+Stack Trace:
+arc_unwind_core.constprop.1+0xa4/0x110
+---[ end trace 649ef8c342817fc2 ]---
+------------[ cut here ]------------
+WARNING: CPU: 0 PID: 19 at drivers/usb/core/urb.c:449
+usb_submit_urb+0x1b4/0x498()
+usb 1-1: BOGUS urb xfer, pipe 1 != type 3
+Modules linked in:
+CPU: 0 PID: 19 Comm: kworker/0:1 Tainted: G        W
+4.4.0-rc4-00017-g00e2d79-dirty #3
+Workqueue: events request_firmware_work_func
+
+Stack Trace:
+arc_unwind_core.constprop.1+0xa4/0x110
+---[ end trace 649ef8c342817fc3 ]---
+------------[ cut here ]------------
+-------------------------->8----------------------
+
+There're some discussions in mailing lists proposing to disable
+that particular check alltogether and magically all seem to work
+fine with muted warning.
+
+Anyways new thread on that regard could be found here:
+http://lists.infradead.org/pipermail/linux-snps-arc/2016-July/001310.html
+
+Let's see what comes out of that new discussion, hopefully patching
+of generic USB stuff won't be required then.
+
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ drivers/leds/Makefile        | 1 +
+ drivers/leds/trigger/Kconfig | 7 +++++++
+ 2 files changed, 8 insertions(+)
+
+diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
+index 3965070190f5..6273d7e29eab 100644
+--- a/drivers/leds/Makefile
++++ b/drivers/leds/Makefile
+@@ -77,3 +77,4 @@ obj-$(CONFIG_LEDS_DAC124S085)                += leds-dac124s085.o
+ # LED Triggers
+ obj-$(CONFIG_LEDS_TRIGGERS)           += trigger/
++obj-$(CONFIG_LEDS_TRIGGER_NETDEV)     += ledtrig-netdev.o
+diff --git a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig
+index 3f9ddb9fafa7..4ec185389324 100644
+--- a/drivers/leds/trigger/Kconfig
++++ b/drivers/leds/trigger/Kconfig
+@@ -126,4 +126,11 @@ config LEDS_TRIGGER_PANIC
+         a different trigger.
+         If unsure, say Y.
++config LEDS_TRIGGER_NETDEV
++      tristate "LED Netdev Trigger"
++      depends on NET && LEDS_TRIGGERS
++      help
++        This allows LEDs to be controlled by network device activity.
++        If unsure, say Y.
++
+ endif # LEDS_TRIGGERS
+-- 
+2.11.0
+
similarity index 94%
rename from target/linux/generic/patches-4.9/834-ledtrig-libata.patch
rename to target/linux/generic/pending-4.9/834-ledtrig-libata.patch
index 63a31f5db3d698c42e3a3cf32ffc3dac6efb6255..44ee23fb9bbff5b7fae577d3961ad830a1e597f1 100644 (file)
@@ -1,9 +1,5 @@
-From 52cfd51cdf6a6e14d4fb270c6343abac3bac00f4 Mon Sep 17 00:00:00 2001
 From: Daniel Golle <daniel@makrotopia.org>
-Date: Fri, 12 Dec 2014 13:38:33 +0100
-Subject: [PATCH] libata: add ledtrig support
-To: linux-ide@vger.kernel.org,
-    Tejun Heo <tj@kernel.org>
+Subject: libata: add ledtrig support
 
 This adds a LED trigger for each ATA port indicating disk activity.
 
diff --git a/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch b/target/linux/generic/pending-4.9/890-uart_optional_sysrq.patch
new file mode 100644 (file)
index 0000000..7b62aeb
--- /dev/null
@@ -0,0 +1,47 @@
+From: John Crispin <john@phrozen.org>
+Subject: serial: do not accept sysrq characters via serial port
+
+many embedded boards have a disconnected TTL level serial which can
+generate some garbage that can lead to spurious false sysrq detects.
+
+[john@phrozen.org: sent upstream 22.12.2016]
+
+Signed-off-by: John Crispin <john@phrozen.org>
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+ include/linux/serial_core.h | 2 +-
+ lib/Kconfig.debug           | 5 +++++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
+index 344201437017..7e6165bc1cef 100644
+--- a/include/linux/serial_core.h
++++ b/include/linux/serial_core.h
+@@ -448,7 +448,7 @@ extern void uart_handle_cts_change(struct uart_port *uport,
+ extern void uart_insert_char(struct uart_port *port, unsigned int status,
+                unsigned int overrun, unsigned int ch, unsigned int flag);
+-#ifdef SUPPORT_SYSRQ
++#if defined(SUPPORT_SYSRQ) && defined(CONFIG_MAGIC_SYSRQ_SERIAL)
+ static inline int
+ uart_handle_sysrq_char(struct uart_port *port, unsigned int ch)
+ {
+diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
+index a6c8db1d62f6..062c580cdd68 100644
+--- a/lib/Kconfig.debug
++++ b/lib/Kconfig.debug
+@@ -397,6 +397,11 @@ config MAGIC_SYSRQ_DEFAULT_ENABLE
+         This may be set to 1 or 0 to enable or disable them all, or
+         to a bitmask as described in Documentation/sysrq.txt.
++config MAGIC_SYSRQ_SERIAL
++      bool "Enable magic SysRq key over serial"
++      depends on MAGIC_SYSRQ
++      default y
++
+ config DEBUG_KERNEL
+       bool "Kernel debugging"
+       help
+-- 
+2.11.0
+
similarity index 63%
rename from target/linux/generic/patches-4.9/920-mangle_bootargs.patch
rename to target/linux/generic/pending-4.9/920-mangle_bootargs.patch
index 8ba7a1f5d0d5292f04b65f309d3d06cd073669e5..151a3169d8435546819dacedb21e50293d5c4da8 100644 (file)
@@ -1,6 +1,41 @@
+From: Imre Kaloz <kaloz@openwrt.org>
+Subject: init: add CONFIG_MANGLE_BOOTARGS and disable it by default
+
+Enabling this option renames the bootloader supplied root=
+and rootfstype= variables, which might have to be know but
+would break the automatisms OpenWrt uses.
+
+Signed-off-by: Imre Kaloz <kaloz@openwrt.org>
+---
+ init/Kconfig |  9 +++++++++
+ init/main.c  | 24 ++++++++++++++++++++++++
+ 2 files changed, 33 insertions(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 9063c81b9665..fb66d3ef78e0 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -1687,6 +1687,15 @@ config EMBEDDED
+         an embedded system so certain expert options are available
+         for configuration.
++config MANGLE_BOOTARGS
++      bool "Rename offending bootargs"
++      depends on EXPERT
++      help
++        Sometimes the bootloader passed bogus root= and rootfstype=
++        parameters to the kernel, and while you want to ignore them,
++        you need to know the values f.e. to support dual firmware
++        layouts on the flash.
++
+ config HAVE_PERF_EVENTS
+       bool
+       help
+diff --git a/init/main.c b/init/main.c
+index ae3996ae9bac..3855fa4ffb95 100644
 --- a/init/main.c
 +++ b/init/main.c
-@@ -352,6 +352,29 @@ static inline void setup_nr_cpu_ids(void
+@@ -352,6 +352,29 @@ static inline void setup_nr_cpu_ids(void) { }
  static inline void smp_prepare_cpus(unsigned int maxcpus) { }
  #endif
  
@@ -30,7 +65,7 @@
  /*
   * We need to store the untouched command line for future reference.
   * We also need to store the touched command line since the parameter
-@@ -504,6 +527,7 @@ asmlinkage __visible void __init start_k
+@@ -504,6 +527,7 @@ asmlinkage __visible void __init start_kernel(void)
        pr_notice("%s", linux_banner);
        setup_arch(&command_line);
        mm_init_cpumask(&init_mm);
        setup_command_line(command_line);
        setup_nr_cpu_ids();
        setup_per_cpu_areas();
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -1697,6 +1697,15 @@ config EMBEDDED
-         an embedded system so certain expert options are available
-         for configuration.
-+config MANGLE_BOOTARGS
-+      bool "Rename offending bootargs"
-+      depends on EXPERT
-+      help
-+        Sometimes the bootloader passed bogus root= and rootfstype=
-+        parameters to the kernel, and while you want to ignore them,
-+        you need to know the values f.e. to support dual firmware
-+        layouts on the flash.
-+
- config HAVE_PERF_EVENTS
-       bool
-       help
+-- 
+2.11.0
+