summaryrefslogtreecommitdiff
path: root/target/linux/generic
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic')
-rw-r--r--target/linux/generic/patches-2.6.37/010-gcc4_inline_fix.patch (renamed from target/linux/generic/patches-2.6.37/013-gcc4_inline_fix.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/020-ssb_update.patch (renamed from target/linux/generic/patches-2.6.37/941-ssb_update.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/030-mips_multi_machine_support.patch (renamed from target/linux/generic/patches-2.6.37/020-mips_multi_machine_support.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/040-jhash3.patch (renamed from target/linux/generic/patches-2.6.37/201-jhash3.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/050-solos_dont_null_deref.patch (renamed from target/linux/generic/patches-2.6.37/280-solos_dont_null_deref.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/051-solos_uniform_vpi_vci.patch (renamed from target/linux/generic/patches-2.6.37/281-solos_uniform_vpi_vci.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/052-solos-debug_skbuff.patch (renamed from target/linux/generic/patches-2.6.37/282-solos-debug_skbuff.patch)5
-rw-r--r--target/linux/generic/patches-2.6.37/053-solos-vccs_release.patch (renamed from target/linux/generic/patches-2.6.37/283-solos-vccs_release.patch)17
-rw-r--r--target/linux/generic/patches-2.6.37/060-backport_tos2prio_ecn_fix.patch (renamed from target/linux/generic/patches-2.6.37/960-backport_tos2prio_ecn_fix.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/100-overlayfs.patch (renamed from target/linux/generic/patches-2.6.37/209-overlayfs.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/101-overlayfs_2.6.37_backport.patch (renamed from target/linux/generic/patches-2.6.37/210-overlayfs_2.6.37_backport.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/102-overlayfs_fix_readdir_deadlock.patch (renamed from target/linux/generic/patches-2.6.37/211-overlayfs_fix_readdir_deadlock.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/103-overlayfs_fix_readdir_unlink_deadlock.patch (renamed from target/linux/generic/patches-2.6.37/212-overlayfs_fix_readdir_unlink_deadlock.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/200-fix_localversion.patch (renamed from target/linux/generic/patches-2.6.37/001-fix_localversion.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/201-extra_optimization.patch (renamed from target/linux/generic/patches-2.6.37/012-extra_optimization.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/210-darwin_scripts_include.patch (renamed from target/linux/generic/patches-2.6.37/902-darwin_scripts_include.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/211-stddef_include.patch (renamed from target/linux/generic/patches-2.6.37/903-stddef_include.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/220-module_exports.patch (renamed from target/linux/generic/patches-2.6.37/028-module_exports.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/230-openwrt_lzma_options.patch (renamed from target/linux/generic/patches-2.6.37/998-openwrt_lzma_options.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/240-atm_header_changes.patch (renamed from target/linux/generic/patches-2.6.37/251-atm.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/250-netfilter_depends.patch (renamed from target/linux/generic/patches-2.6.37/180-netfilter_depends.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/251-sound_kconfig.patch (renamed from target/linux/generic/patches-2.6.37/220-sound_kconfig.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/252-mv_cesa_depends.patch (renamed from target/linux/generic/patches-2.6.37/972-mv_cesa_depends.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/253-ssb_b43_default_on.patch (renamed from target/linux/generic/patches-2.6.37/974-ssb_b43_default_on.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/254-textsearch_kconfig_hacks.patch (renamed from target/linux/generic/patches-2.6.37/977-textsearch_kconfig_hacks.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/255-lib80211_kconfig_hacks.patch (renamed from target/linux/generic/patches-2.6.37/978-lib80211_kconfig_hacks.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/256-crypto_add_kconfig_prompts.patch (renamed from target/linux/generic/patches-2.6.37/979-crypto_add_kconfig_prompts.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/257-wireless_ext_kconfig_hack.patch (renamed from target/linux/generic/patches-2.6.37/981-wireless_ext_kconfig_hack.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/258-lzo_decompressor_kconfig_dep.patch (renamed from target/linux/generic/patches-2.6.37/997-lzo_decompressor_fix.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/301-mips_image_cmdline_hack.patch (renamed from target/linux/generic/patches-2.6.37/021-mips_image_cmdline_hack.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/302-mips_use_generic_thread_info_allocator.patch (renamed from target/linux/generic/patches-2.6.37/022-mips_use_generic_thread_info_allocator.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/303-mips_fix_kexec.patch (renamed from target/linux/generic/patches-2.6.37/023-mips-fix-kexec.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/304-mips_disable_fpu.patch (renamed from target/linux/generic/patches-2.6.37/025-mips_disable_fpu.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/305-mips_module_reloc.patch (renamed from target/linux/generic/patches-2.6.37/027-mips_module_reloc.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/306-mips_mem_functions_performance.patch (renamed from target/linux/generic/patches-2.6.37/202-mips_mem_functions_performance.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/307-mips_oprofile_fix.patch (renamed from target/linux/generic/patches-2.6.37/208-mips_oprofile_fix.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/308-mips_boot.patch (renamed from target/linux/generic/patches-2.6.37/011-mips_boot.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/310-arm_module_unresolved_weak_sym.patch (renamed from target/linux/generic/patches-2.6.37/029-arm_module_unresolved_weak_sym.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/311-arm_update_mach_types.patch (renamed from target/linux/generic/patches-2.6.37/040-arm-update-mach-types.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/320-ppc4xx_optimization.patch (renamed from target/linux/generic/patches-2.6.37/991-ppc4xx_optimization.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/321-powerpc_crtsavres_prereq.patch (renamed from target/linux/generic/patches-2.6.37/950-powerpc_crtsavres_prereq.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/322-powerpc_asm_segment_h.patch (renamed from target/linux/generic/patches-2.6.37/207-powerpc_asm_segment_h.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/400-rootfs_split.patch (renamed from target/linux/generic/patches-2.6.37/065-rootfs_split.patch)294
-rw-r--r--target/linux/generic/patches-2.6.37/401-partial_eraseblock_write.patch (renamed from target/linux/generic/patches-2.6.37/222-partial_eraseblock_write.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/410-mtd_info_move_forward_decl.patch (renamed from target/linux/generic/patches-2.6.37/082-mtd_info_move_forward_decl.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/420-redboot_space.patch (renamed from target/linux/generic/patches-2.6.37/070-redboot_space.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/421-redboot_boardconfig.patch (renamed from target/linux/generic/patches-2.6.37/071-redboot_boardconfig.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/430-mtd_myloader_partition_parser.patch (renamed from target/linux/generic/patches-2.6.37/081-mtd_myloader_partition_parser.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/440-block2mtd_init.patch (renamed from target/linux/generic/patches-2.6.37/060-block2mtd_init.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/441-block2mtd_refresh.patch292
-rw-r--r--target/linux/generic/patches-2.6.37/442-block2mtd_probe.patch (renamed from target/linux/generic/patches-2.6.37/066-block2mtd_probe.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/450-mtd_plat_nand_chip_fixup.patch (renamed from target/linux/generic/patches-2.6.37/080-mtd_plat_nand_chip_fixup.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/451-mtd_fix_nand_correct_data_return_code.patch (renamed from target/linux/generic/patches-2.6.37/083-mtd_fix_nand_correct_data_return_code.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/460-cfi_show_amd_extended_table_version.patch (renamed from target/linux/generic/patches-2.6.37/014-cfi_show_amd_extended_table_version.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/470-mtd_m25p80_add_pm25lv_flash_support.patch (renamed from target/linux/generic/patches-2.6.37/084-mtd_m25p80_add_pm25lv_flash_support.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/471-mtd_m25p80_add_en25f32_chip_support.patch (renamed from target/linux/generic/patches-2.6.37/090-mtd-m25p80-add-en25f32-chip-support.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/472-mtd_m25p80_add_MX25L1606E_support.patch (renamed from target/linux/generic/patches-2.6.37/091-mtd-m25p80-add-MX25L1606E-support.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/473-mtd_samsung_flash.patch (renamed from target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/500-yaffs_support.patch (renamed from target/linux/generic/patches-2.6.37/510-yaffs_support.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/501-yaffs_cvs_2009_04_24.patch (renamed from target/linux/generic/patches-2.6.37/511-yaffs-cvs-2009-04-24.patch)76
-rw-r--r--target/linux/generic/patches-2.6.37/502-yaffs_git_2010_10_20.patch (renamed from target/linux/generic/patches-2.6.37/511-yaffs-git-2010-10-20.patch)6
-rw-r--r--target/linux/generic/patches-2.6.37/503-yaffs_symlink_bug.patch (renamed from target/linux/generic/patches-2.6.37/512-yaffs_symlink_bug.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/504-yaffs_mutex_fix.patch (renamed from target/linux/generic/patches-2.6.37/513-yaffs_mutex_fix.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/510-jffs2_make_lzma_available.patch (renamed from target/linux/generic/patches-2.6.37/008-jffs2_make_lzma_available.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/511-debloat_lzma.patch (renamed from target/linux/generic/patches-2.6.37/010-debloat_lzma.patch)6
-rw-r--r--target/linux/generic/patches-2.6.37/512-jffs2_eofdetect.patch (renamed from target/linux/generic/patches-2.6.37/204-jffs2_eofdetect.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/520-squashfs_revert_to_2.6.35.patch (renamed from target/linux/generic/patches-2.6.37/005-squashfs_revert_to_2.6.35.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/521-squashfs_add_lzma.patch (renamed from target/linux/generic/patches-2.6.37/006-squashfs_add_lzma.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/522-squashfs_make_lzma_available.patch (renamed from target/linux/generic/patches-2.6.37/007-squashfs_make_lzma_available.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/600-netfilter_layer7_2.22.patch (renamed from target/linux/generic/patches-2.6.37/100-netfilter_layer7_2.22.patch)4
-rw-r--r--target/linux/generic/patches-2.6.37/601-netfilter_layer7_pktmatch.patch (renamed from target/linux/generic/patches-2.6.37/101-netfilter_layer7_pktmatch.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/602-netfilter_layer7_match.patch (renamed from target/linux/generic/patches-2.6.37/102-netfilter_layer7_match.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/603-netfilter_layer7_2.6.36_fix.patch (renamed from target/linux/generic/patches-2.6.37/103-netfilter_layer7_2.6.36_fix.patch)4
-rw-r--r--target/linux/generic/patches-2.6.37/604-netfilter_cisco_794x_iphone.patch (renamed from target/linux/generic/patches-2.6.37/160-netfilter_cisco_794x_iphone.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/605-netfilter_rtsp.patch (renamed from target/linux/generic/patches-2.6.37/190-netfilter_rtsp.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/620-sched_esfq.patch (renamed from target/linux/generic/patches-2.6.37/200-sched_esfq.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/621-sched_act_connmark.patch (renamed from target/linux/generic/patches-2.6.37/290-sched_act_connmark.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/630-packet_socket_type.patch (renamed from target/linux/generic/patches-2.6.37/240-packet_socket_type.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/640-bridge_no_eap_forward.patch (renamed from target/linux/generic/patches-2.6.37/270-bridge_no_eap_forward.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/641-bridge_always_accept_eap.patch (renamed from target/linux/generic/patches-2.6.37/271-bridge_always_accept_eap.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/642-bridge_port_isolate.patch (renamed from target/linux/generic/patches-2.6.37/300-bridge_port_isolate.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/650-pppoe_header_pad.patch (renamed from target/linux/generic/patches-2.6.37/250-pppoe_header_pad.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/651-wireless_mesh_header.patch (renamed from target/linux/generic/patches-2.6.37/940-wireless_mesh_header.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/700-swconfig.patch (renamed from target/linux/generic/patches-2.6.37/650-swconfig.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/701-phy_extension.patch (renamed from target/linux/generic/patches-2.6.37/600-phy_extension.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/702-phy_add_aneg_done_function.patch (renamed from target/linux/generic/patches-2.6.37/601-phy-add-aneg-done-function.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/720-phy_adm6996.patch (renamed from target/linux/generic/patches-2.6.37/620-phy_adm6996.patch)4
-rw-r--r--target/linux/generic/patches-2.6.37/721-phy_packets.patch (renamed from target/linux/generic/patches-2.6.37/630-phy_packets.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/722-phy_mvswitch.patch (renamed from target/linux/generic/patches-2.6.37/660-phy_mvswitch.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/723-phy_ip175c.patch (renamed from target/linux/generic/patches-2.6.37/670-phy_ip175c.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/724-phy_ar8216.patch (renamed from target/linux/generic/patches-2.6.37/680-phy_ar8216.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/725-phy_rtl8306.patch (renamed from target/linux/generic/patches-2.6.37/690-phy_rtl8306.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/726-phy_rtl8366.patch (renamed from target/linux/generic/patches-2.6.37/691-phy_rtl8366.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/750-hostap_txpower.patch (renamed from target/linux/generic/patches-2.6.37/903-hostap_txpower.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/810-pci_disable_common_quirks.patch (renamed from target/linux/generic/patches-2.6.37/030-pci_disable_common_quirks.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/811-pci_disable_usb_common_quirks.patch (renamed from target/linux/generic/patches-2.6.37/031-pci_disable_usb_common_quirks.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/820-usb_add_usb_find_device_by_name.patch (renamed from target/linux/generic/patches-2.6.37/310-usb-add-usb_find_device_by_name.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/821-usb_serial_endpoint_size.patch (renamed from target/linux/generic/patches-2.6.37/801-usb_serial_endpoint_size.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/830-ledtrig_morse.patch (renamed from target/linux/generic/patches-2.6.37/400-ledtrig_morse.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/831-ledtrig_netdev.patch (renamed from target/linux/generic/patches-2.6.37/402-ledtrig_netdev.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/832-ledtrig_usbdev.patch (renamed from target/linux/generic/patches-2.6.37/403-ledtrig-usbdev.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/833-gpio_buttons.patch (renamed from target/linux/generic/patches-2.6.37/410-gpio_buttons.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/834-gpio_ioctl.patch (renamed from target/linux/generic/patches-2.6.37/411-gpio_ioctl.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/835-gpiodev.patch (renamed from target/linux/generic/patches-2.6.37/420-gpiodev.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/840-rtc7301.patch (renamed from target/linux/generic/patches-2.6.37/700-rtc7301.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/850-glamo_headers.patch (renamed from target/linux/generic/patches-2.6.37/750-glamo-headers.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/860-01_hotpluggable_spi_gpio.patch (renamed from target/linux/generic/patches-2.6.37/920-01-hotpluggable-spi-gpio.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/861-04_spi_gpio_implement_spi_delay.patch (renamed from target/linux/generic/patches-2.6.37/920-04-spi-gpio-implement-spi-delay.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/862-gpio_spi_driver.patch (renamed from target/linux/generic/patches-2.6.37/921-gpio_spi_driver.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/863-gpiommc.patch (renamed from target/linux/generic/patches-2.6.37/922-gpiommc.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/864-gpiommc_configfs_locking.patch (renamed from target/linux/generic/patches-2.6.37/923-gpiommc-configfs-locking.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/870-hifn795x_byteswap.patch (renamed from target/linux/generic/patches-2.6.37/975-hifn795x-byteswap.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/900-slab_maxsize.patch (renamed from target/linux/generic/patches-2.6.37/203-slab_maxsize.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/910-kobject_uevent.patch (renamed from target/linux/generic/patches-2.6.37/219-kobject_uevent.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/911-kobject_add_broadcast_uevent.patch (renamed from target/linux/generic/patches-2.6.37/223-kobject-add-broadcast_uevent.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/920-unable_to_open_console.patch (renamed from target/linux/generic/patches-2.6.37/840-unable_to_open_console.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/921-use_preinit_as_init.patch (renamed from target/linux/generic/patches-2.6.37/999-use_preinit_as_init.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/940-ocf_kbuild_integration.patch (renamed from target/linux/generic/patches-2.6.37/970-ocf_kbuild_integration.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/941-ocf_20100325.patch (renamed from target/linux/generic/patches-2.6.37/971-ocf_20100325.patch)2
-rw-r--r--target/linux/generic/patches-2.6.37/950-vm_exports.patch (renamed from target/linux/generic/patches-2.6.37/980-vm_exports.patch)0
-rw-r--r--target/linux/generic/patches-2.6.37/960-decompress_unlzo_fix.patch (renamed from target/linux/generic/patches-2.6.37/009-decompress_unlzo_fix.patch)0
121 files changed, 366 insertions, 376 deletions
diff --git a/target/linux/generic/patches-2.6.37/013-gcc4_inline_fix.patch b/target/linux/generic/patches-2.6.37/010-gcc4_inline_fix.patch
index 77ab405439..77ab405439 100644
--- a/target/linux/generic/patches-2.6.37/013-gcc4_inline_fix.patch
+++ b/target/linux/generic/patches-2.6.37/010-gcc4_inline_fix.patch
diff --git a/target/linux/generic/patches-2.6.37/941-ssb_update.patch b/target/linux/generic/patches-2.6.37/020-ssb_update.patch
index ff33a38433..718b005426 100644
--- a/target/linux/generic/patches-2.6.37/941-ssb_update.patch
+++ b/target/linux/generic/patches-2.6.37/020-ssb_update.patch
@@ -197,7 +197,7 @@
/* TODO - get remaining rev 8 stuff needed */
}
-@@ -573,37 +621,34 @@ static int sprom_extract(struct ssb_bus
+@@ -573,37 +621,34 @@ static int sprom_extract(struct ssb_bus
ssb_dprintk(KERN_DEBUG PFX "SPROM revision %d detected.\n", out->revision);
memset(out->et0mac, 0xFF, 6); /* preset et0 and et1 mac */
memset(out->et1mac, 0xFF, 6);
diff --git a/target/linux/generic/patches-2.6.37/020-mips_multi_machine_support.patch b/target/linux/generic/patches-2.6.37/030-mips_multi_machine_support.patch
index 729934f283..ab270ff97c 100644
--- a/target/linux/generic/patches-2.6.37/020-mips_multi_machine_support.patch
+++ b/target/linux/generic/patches-2.6.37/030-mips_multi_machine_support.patch
@@ -176,7 +176,7 @@
unsigned int vced_count, vcei_count;
-@@ -31,8 +32,12 @@ static int show_cpuinfo(struct seq_file
+@@ -31,8 +32,12 @@ static int show_cpuinfo(struct seq_file
/*
* For the first processor also print the system type
*/
diff --git a/target/linux/generic/patches-2.6.37/201-jhash3.patch b/target/linux/generic/patches-2.6.37/040-jhash3.patch
index 2dd14149c5..2dd14149c5 100644
--- a/target/linux/generic/patches-2.6.37/201-jhash3.patch
+++ b/target/linux/generic/patches-2.6.37/040-jhash3.patch
diff --git a/target/linux/generic/patches-2.6.37/280-solos_dont_null_deref.patch b/target/linux/generic/patches-2.6.37/050-solos_dont_null_deref.patch
index 13595725ca..13595725ca 100644
--- a/target/linux/generic/patches-2.6.37/280-solos_dont_null_deref.patch
+++ b/target/linux/generic/patches-2.6.37/050-solos_dont_null_deref.patch
diff --git a/target/linux/generic/patches-2.6.37/281-solos_uniform_vpi_vci.patch b/target/linux/generic/patches-2.6.37/051-solos_uniform_vpi_vci.patch
index a3a49bb31a..a3a49bb31a 100644
--- a/target/linux/generic/patches-2.6.37/281-solos_uniform_vpi_vci.patch
+++ b/target/linux/generic/patches-2.6.37/051-solos_uniform_vpi_vci.patch
diff --git a/target/linux/generic/patches-2.6.37/282-solos-debug_skbuff.patch b/target/linux/generic/patches-2.6.37/052-solos-debug_skbuff.patch
index 837057e560..cedfdf5d79 100644
--- a/target/linux/generic/patches-2.6.37/282-solos-debug_skbuff.patch
+++ b/target/linux/generic/patches-2.6.37/052-solos-debug_skbuff.patch
@@ -19,8 +19,6 @@ Date: Wed Mar 30 12:59:26 2011 +0000
drivers/atm/solos-pci.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
-diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
-index 2c4146a..968f022 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
@@ -697,7 +697,7 @@ void solos_bh(unsigned long card_arg)
@@ -32,7 +30,7 @@ index 2c4146a..968f022 100644
dev_info(&card->dev->dev, "size: %d VPI: %d VCI: %d\n",
size, le16_to_cpu(header->vpi),
le16_to_cpu(header->vci));
-@@ -1018,8 +1018,15 @@ static uint32_t fpga_tx(struct solos_card *card)
+@@ -1018,8 +1018,15 @@ static uint32_t fpga_tx(struct solos_car
/* Clean up and free oldskb now it's gone */
if (atmdebug) {
@@ -48,4 +46,3 @@ index 2c4146a..968f022 100644
print_buffer(oldskb);
}
-
diff --git a/target/linux/generic/patches-2.6.37/283-solos-vccs_release.patch b/target/linux/generic/patches-2.6.37/053-solos-vccs_release.patch
index 8894fc4442..409c43c19b 100644
--- a/target/linux/generic/patches-2.6.37/283-solos-vccs_release.patch
+++ b/target/linux/generic/patches-2.6.37/053-solos-vccs_release.patch
@@ -22,11 +22,9 @@ Date: Wed Mar 30 13:17:04 2011 +0000
net/atm/common.c | 1 +
3 files changed, 3 insertions(+), 25 deletions(-)
-diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
-index 968f022..cd0ff66 100644
--- a/drivers/atm/solos-pci.c
+++ b/drivers/atm/solos-pci.c
-@@ -165,7 +165,6 @@ static uint32_t fpga_tx(struct solos_card *);
+@@ -165,7 +165,6 @@ static uint32_t fpga_tx(struct solos_car
static irqreturn_t solos_irq(int irq, void *dev_id);
static struct atm_vcc* find_vcc(struct atm_dev *dev, short vpi, int vci);
static int list_vccs(int vci);
@@ -34,7 +32,7 @@ index 968f022..cd0ff66 100644
static int atm_init(struct solos_card *, struct device *);
static void atm_remove(struct solos_card *);
static int send_command(struct solos_card *card, int dev, const char *buf, size_t size);
-@@ -384,7 +383,6 @@ static int process_status(struct solos_card *card, int port, struct sk_buff *skb
+@@ -384,7 +383,6 @@ static int process_status(struct solos_c
/* Anything but 'Showtime' is down */
if (strcmp(state_str, "Showtime")) {
atm_dev_signal_change(card->atmdev[port], ATM_PHY_SIG_LOST);
@@ -71,7 +69,7 @@ index 968f022..cd0ff66 100644
static int popen(struct atm_vcc *vcc)
{
-@@ -1269,7 +1245,7 @@ static int atm_init(struct solos_card *card, struct device *parent)
+@@ -1269,7 +1245,7 @@ static int atm_init(struct solos_card *c
card->atmdev[i]->ci_range.vci_bits = 16;
card->atmdev[i]->dev_data = card;
card->atmdev[i]->phy_data = (void *)(unsigned long)i;
@@ -80,11 +78,9 @@ index 968f022..cd0ff66 100644
skb = alloc_skb(sizeof(*header), GFP_ATOMIC);
if (!skb) {
-diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
-index 475f8c4..381f4ce 100644
--- a/include/linux/atmdev.h
+++ b/include/linux/atmdev.h
-@@ -443,6 +443,7 @@ void atm_dev_signal_change(struct atm_dev *dev, char signal);
+@@ -443,6 +443,7 @@ void atm_dev_signal_change(struct atm_de
void vcc_insert_socket(struct sock *sk);
@@ -92,11 +88,9 @@ index 475f8c4..381f4ce 100644
/*
* This is approximately the algorithm used by alloc_skb.
-diff --git a/net/atm/common.c b/net/atm/common.c
-index 1b9c52a..22b963d 100644
--- a/net/atm/common.c
+++ b/net/atm/common.c
-@@ -252,6 +252,7 @@ void atm_dev_release_vccs(struct atm_dev *dev)
+@@ -252,6 +252,7 @@ void atm_dev_release_vccs(struct atm_dev
}
write_unlock_irq(&vcc_sklist_lock);
}
@@ -104,4 +98,3 @@ index 1b9c52a..22b963d 100644
static int adjust_tp(struct atm_trafprm *tp, unsigned char aal)
{
-
diff --git a/target/linux/generic/patches-2.6.37/960-backport_tos2prio_ecn_fix.patch b/target/linux/generic/patches-2.6.37/060-backport_tos2prio_ecn_fix.patch
index c10c41cfdd..c10c41cfdd 100644
--- a/target/linux/generic/patches-2.6.37/960-backport_tos2prio_ecn_fix.patch
+++ b/target/linux/generic/patches-2.6.37/060-backport_tos2prio_ecn_fix.patch
diff --git a/target/linux/generic/patches-2.6.37/209-overlayfs.patch b/target/linux/generic/patches-2.6.37/100-overlayfs.patch
index 386f99ef4e..386f99ef4e 100644
--- a/target/linux/generic/patches-2.6.37/209-overlayfs.patch
+++ b/target/linux/generic/patches-2.6.37/100-overlayfs.patch
diff --git a/target/linux/generic/patches-2.6.37/210-overlayfs_2.6.37_backport.patch b/target/linux/generic/patches-2.6.37/101-overlayfs_2.6.37_backport.patch
index b7638c05cd..b7638c05cd 100644
--- a/target/linux/generic/patches-2.6.37/210-overlayfs_2.6.37_backport.patch
+++ b/target/linux/generic/patches-2.6.37/101-overlayfs_2.6.37_backport.patch
diff --git a/target/linux/generic/patches-2.6.37/211-overlayfs_fix_readdir_deadlock.patch b/target/linux/generic/patches-2.6.37/102-overlayfs_fix_readdir_deadlock.patch
index 188be3d889..188be3d889 100644
--- a/target/linux/generic/patches-2.6.37/211-overlayfs_fix_readdir_deadlock.patch
+++ b/target/linux/generic/patches-2.6.37/102-overlayfs_fix_readdir_deadlock.patch
diff --git a/target/linux/generic/patches-2.6.37/212-overlayfs_fix_readdir_unlink_deadlock.patch b/target/linux/generic/patches-2.6.37/103-overlayfs_fix_readdir_unlink_deadlock.patch
index 6042b2968f..6042b2968f 100644
--- a/target/linux/generic/patches-2.6.37/212-overlayfs_fix_readdir_unlink_deadlock.patch
+++ b/target/linux/generic/patches-2.6.37/103-overlayfs_fix_readdir_unlink_deadlock.patch
diff --git a/target/linux/generic/patches-2.6.37/001-fix_localversion.patch b/target/linux/generic/patches-2.6.37/200-fix_localversion.patch
index 70ed0ff3cb..70ed0ff3cb 100644
--- a/target/linux/generic/patches-2.6.37/001-fix_localversion.patch
+++ b/target/linux/generic/patches-2.6.37/200-fix_localversion.patch
diff --git a/target/linux/generic/patches-2.6.37/012-extra_optimization.patch b/target/linux/generic/patches-2.6.37/201-extra_optimization.patch
index a7811d78fc..a7811d78fc 100644
--- a/target/linux/generic/patches-2.6.37/012-extra_optimization.patch
+++ b/target/linux/generic/patches-2.6.37/201-extra_optimization.patch
diff --git a/target/linux/generic/patches-2.6.37/902-darwin_scripts_include.patch b/target/linux/generic/patches-2.6.37/210-darwin_scripts_include.patch
index 108e258053..108e258053 100644
--- a/target/linux/generic/patches-2.6.37/902-darwin_scripts_include.patch
+++ b/target/linux/generic/patches-2.6.37/210-darwin_scripts_include.patch
diff --git a/target/linux/generic/patches-2.6.37/903-stddef_include.patch b/target/linux/generic/patches-2.6.37/211-stddef_include.patch
index 7fe248d8d3..7fe248d8d3 100644
--- a/target/linux/generic/patches-2.6.37/903-stddef_include.patch
+++ b/target/linux/generic/patches-2.6.37/211-stddef_include.patch
diff --git a/target/linux/generic/patches-2.6.37/028-module_exports.patch b/target/linux/generic/patches-2.6.37/220-module_exports.patch
index 60b12f7baf..60b12f7baf 100644
--- a/target/linux/generic/patches-2.6.37/028-module_exports.patch
+++ b/target/linux/generic/patches-2.6.37/220-module_exports.patch
diff --git a/target/linux/generic/patches-2.6.37/998-openwrt_lzma_options.patch b/target/linux/generic/patches-2.6.37/230-openwrt_lzma_options.patch
index c4cc05857d..c1a70f007f 100644
--- a/target/linux/generic/patches-2.6.37/998-openwrt_lzma_options.patch
+++ b/target/linux/generic/patches-2.6.37/230-openwrt_lzma_options.patch
@@ -1,6 +1,6 @@
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
-@@ -231,7 +231,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^)
+@@ -231,7 +231,7 @@ cmd_bzip2 = (cat $(filter-out FORCE,$^)
quiet_cmd_lzma = LZMA $@
cmd_lzma = (cat $(filter-out FORCE,$^) | \
diff --git a/target/linux/generic/patches-2.6.37/251-atm.patch b/target/linux/generic/patches-2.6.37/240-atm_header_changes.patch
index 238d6f81c4..238d6f81c4 100644
--- a/target/linux/generic/patches-2.6.37/251-atm.patch
+++ b/target/linux/generic/patches-2.6.37/240-atm_header_changes.patch
diff --git a/target/linux/generic/patches-2.6.37/180-netfilter_depends.patch b/target/linux/generic/patches-2.6.37/250-netfilter_depends.patch
index d270e9020b..d270e9020b 100644
--- a/target/linux/generic/patches-2.6.37/180-netfilter_depends.patch
+++ b/target/linux/generic/patches-2.6.37/250-netfilter_depends.patch
diff --git a/target/linux/generic/patches-2.6.37/220-sound_kconfig.patch b/target/linux/generic/patches-2.6.37/251-sound_kconfig.patch
index fb3df254dc..fb3df254dc 100644
--- a/target/linux/generic/patches-2.6.37/220-sound_kconfig.patch
+++ b/target/linux/generic/patches-2.6.37/251-sound_kconfig.patch
diff --git a/target/linux/generic/patches-2.6.37/972-mv_cesa_depends.patch b/target/linux/generic/patches-2.6.37/252-mv_cesa_depends.patch
index 1fd2f6365a..1fd2f6365a 100644
--- a/target/linux/generic/patches-2.6.37/972-mv_cesa_depends.patch
+++ b/target/linux/generic/patches-2.6.37/252-mv_cesa_depends.patch
diff --git a/target/linux/generic/patches-2.6.37/974-ssb_b43_default_on.patch b/target/linux/generic/patches-2.6.37/253-ssb_b43_default_on.patch
index 3176dcb4d8..3176dcb4d8 100644
--- a/target/linux/generic/patches-2.6.37/974-ssb_b43_default_on.patch
+++ b/target/linux/generic/patches-2.6.37/253-ssb_b43_default_on.patch
diff --git a/target/linux/generic/patches-2.6.37/977-textsearch_kconfig_hacks.patch b/target/linux/generic/patches-2.6.37/254-textsearch_kconfig_hacks.patch
index 5b4084ee8c..04ff38eb40 100644
--- a/target/linux/generic/patches-2.6.37/977-textsearch_kconfig_hacks.patch
+++ b/target/linux/generic/patches-2.6.37/254-textsearch_kconfig_hacks.patch
@@ -1,6 +1,6 @@
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -161,16 +161,16 @@ config REED_SOLOMON_DEC16
+@@ -152,16 +152,16 @@ config REED_SOLOMON_DEC16
# Textsearch support is select'ed if needed
#
config TEXTSEARCH
diff --git a/target/linux/generic/patches-2.6.37/978-lib80211_kconfig_hacks.patch b/target/linux/generic/patches-2.6.37/255-lib80211_kconfig_hacks.patch
index c044deac00..c044deac00 100644
--- a/target/linux/generic/patches-2.6.37/978-lib80211_kconfig_hacks.patch
+++ b/target/linux/generic/patches-2.6.37/255-lib80211_kconfig_hacks.patch
diff --git a/target/linux/generic/patches-2.6.37/979-crypto_add_kconfig_prompts.patch b/target/linux/generic/patches-2.6.37/256-crypto_add_kconfig_prompts.patch
index 8462c711f0..8462c711f0 100644
--- a/target/linux/generic/patches-2.6.37/979-crypto_add_kconfig_prompts.patch
+++ b/target/linux/generic/patches-2.6.37/256-crypto_add_kconfig_prompts.patch
diff --git a/target/linux/generic/patches-2.6.37/981-wireless_ext_kconfig_hack.patch b/target/linux/generic/patches-2.6.37/257-wireless_ext_kconfig_hack.patch
index daac5898ae..daac5898ae 100644
--- a/target/linux/generic/patches-2.6.37/981-wireless_ext_kconfig_hack.patch
+++ b/target/linux/generic/patches-2.6.37/257-wireless_ext_kconfig_hack.patch
diff --git a/target/linux/generic/patches-2.6.37/997-lzo_decompressor_fix.patch b/target/linux/generic/patches-2.6.37/258-lzo_decompressor_kconfig_dep.patch
index 450986538d..450986538d 100644
--- a/target/linux/generic/patches-2.6.37/997-lzo_decompressor_fix.patch
+++ b/target/linux/generic/patches-2.6.37/258-lzo_decompressor_kconfig_dep.patch
diff --git a/target/linux/generic/patches-2.6.37/021-mips_image_cmdline_hack.patch b/target/linux/generic/patches-2.6.37/301-mips_image_cmdline_hack.patch
index f1d1aac3b7..7f8e266660 100644
--- a/target/linux/generic/patches-2.6.37/021-mips_image_cmdline_hack.patch
+++ b/target/linux/generic/patches-2.6.37/301-mips_image_cmdline_hack.patch
@@ -13,7 +13,7 @@
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
-@@ -143,6 +143,12 @@ FEXPORT(__kernel_entry)
+@@ -141,6 +141,12 @@ FEXPORT(__kernel_entry)
j kernel_entry
#endif
diff --git a/target/linux/generic/patches-2.6.37/022-mips_use_generic_thread_info_allocator.patch b/target/linux/generic/patches-2.6.37/302-mips_use_generic_thread_info_allocator.patch
index 915bb5f92c..915bb5f92c 100644
--- a/target/linux/generic/patches-2.6.37/022-mips_use_generic_thread_info_allocator.patch
+++ b/target/linux/generic/patches-2.6.37/302-mips_use_generic_thread_info_allocator.patch
diff --git a/target/linux/generic/patches-2.6.37/023-mips-fix-kexec.patch b/target/linux/generic/patches-2.6.37/303-mips_fix_kexec.patch
index e6928dde91..e6928dde91 100644
--- a/target/linux/generic/patches-2.6.37/023-mips-fix-kexec.patch
+++ b/target/linux/generic/patches-2.6.37/303-mips_fix_kexec.patch
diff --git a/target/linux/generic/patches-2.6.37/025-mips_disable_fpu.patch b/target/linux/generic/patches-2.6.37/304-mips_disable_fpu.patch
index 2ccfe4be80..2ccfe4be80 100644
--- a/target/linux/generic/patches-2.6.37/025-mips_disable_fpu.patch
+++ b/target/linux/generic/patches-2.6.37/304-mips_disable_fpu.patch
diff --git a/target/linux/generic/patches-2.6.37/027-mips_module_reloc.patch b/target/linux/generic/patches-2.6.37/305-mips_module_reloc.patch
index 2d60749623..2d60749623 100644
--- a/target/linux/generic/patches-2.6.37/027-mips_module_reloc.patch
+++ b/target/linux/generic/patches-2.6.37/305-mips_module_reloc.patch
diff --git a/target/linux/generic/patches-2.6.37/202-mips_mem_functions_performance.patch b/target/linux/generic/patches-2.6.37/306-mips_mem_functions_performance.patch
index e4324717b4..6ea9ba51ee 100644
--- a/target/linux/generic/patches-2.6.37/202-mips_mem_functions_performance.patch
+++ b/target/linux/generic/patches-2.6.37/306-mips_mem_functions_performance.patch
@@ -1,6 +1,6 @@
--- a/arch/mips/include/asm/string.h
+++ b/arch/mips/include/asm/string.h
-@@ -133,11 +133,44 @@ strncmp(__const__ char *__cs, __const__
+@@ -133,11 +133,44 @@ strncmp(__const__ char *__cs, __const__
#define __HAVE_ARCH_MEMSET
extern void *memset(void *__s, int __c, size_t __count);
diff --git a/target/linux/generic/patches-2.6.37/208-mips_oprofile_fix.patch b/target/linux/generic/patches-2.6.37/307-mips_oprofile_fix.patch
index f83c96bb81..f83c96bb81 100644
--- a/target/linux/generic/patches-2.6.37/208-mips_oprofile_fix.patch
+++ b/target/linux/generic/patches-2.6.37/307-mips_oprofile_fix.patch
diff --git a/target/linux/generic/patches-2.6.37/011-mips_boot.patch b/target/linux/generic/patches-2.6.37/308-mips_boot.patch
index c2a043acde..c2a043acde 100644
--- a/target/linux/generic/patches-2.6.37/011-mips_boot.patch
+++ b/target/linux/generic/patches-2.6.37/308-mips_boot.patch
diff --git a/target/linux/generic/patches-2.6.37/029-arm_module_unresolved_weak_sym.patch b/target/linux/generic/patches-2.6.37/310-arm_module_unresolved_weak_sym.patch
index 19a09f8775..19a09f8775 100644
--- a/target/linux/generic/patches-2.6.37/029-arm_module_unresolved_weak_sym.patch
+++ b/target/linux/generic/patches-2.6.37/310-arm_module_unresolved_weak_sym.patch
diff --git a/target/linux/generic/patches-2.6.37/040-arm-update-mach-types.patch b/target/linux/generic/patches-2.6.37/311-arm_update_mach_types.patch
index 835f25a179..1223fb456d 100644
--- a/target/linux/generic/patches-2.6.37/040-arm-update-mach-types.patch
+++ b/target/linux/generic/patches-2.6.37/311-arm_update_mach_types.patch
@@ -63,7 +63,7 @@
htc_excalibur_s620 MACH_HTC_EXCALIBUR_S620 HTC_EXCALIBUR_S620 2391
htc_opal MACH_HTC_OPAL HTC_OPAL 2392
touchbook MACH_TOUCHBOOK TOUCHBOOK 2393
-@@ -2446,7 +2446,7 @@ siogentoo1 MACH_SIOGENTOO1 SIOGENTOO1
+@@ -2446,7 +2446,7 @@ siogentoo1 MACH_SIOGENTOO1 SIOGENTOO1
siogentoo2 MACH_SIOGENTOO2 SIOGENTOO2 2459
sm3k MACH_SM3K SM3K 2460
acer_tempo_f900 MACH_ACER_TEMPO_F900 ACER_TEMPO_F900 2461
diff --git a/target/linux/generic/patches-2.6.37/991-ppc4xx_optimization.patch b/target/linux/generic/patches-2.6.37/320-ppc4xx_optimization.patch
index 9598090a58..9598090a58 100644
--- a/target/linux/generic/patches-2.6.37/991-ppc4xx_optimization.patch
+++ b/target/linux/generic/patches-2.6.37/320-ppc4xx_optimization.patch
diff --git a/target/linux/generic/patches-2.6.37/950-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-2.6.37/321-powerpc_crtsavres_prereq.patch
index 861a6b7538..861a6b7538 100644
--- a/target/linux/generic/patches-2.6.37/950-powerpc_crtsavres_prereq.patch
+++ b/target/linux/generic/patches-2.6.37/321-powerpc_crtsavres_prereq.patch
diff --git a/target/linux/generic/patches-2.6.37/207-powerpc_asm_segment_h.patch b/target/linux/generic/patches-2.6.37/322-powerpc_asm_segment_h.patch
index 1272e82c75..1272e82c75 100644
--- a/target/linux/generic/patches-2.6.37/207-powerpc_asm_segment_h.patch
+++ b/target/linux/generic/patches-2.6.37/322-powerpc_asm_segment_h.patch
diff --git a/target/linux/generic/patches-2.6.37/065-rootfs_split.patch b/target/linux/generic/patches-2.6.37/400-rootfs_split.patch
index a0483957cb..f5f95cfda1 100644
--- a/target/linux/generic/patches-2.6.37/065-rootfs_split.patch
+++ b/target/linux/generic/patches-2.6.37/400-rootfs_split.patch
@@ -255,301 +255,9 @@
static DEFINE_SPINLOCK(part_parser_lock);
static LIST_HEAD(part_parsers);
---- a/drivers/mtd/devices/block2mtd.c
-+++ b/drivers/mtd/devices/block2mtd.c
-@@ -30,6 +30,8 @@ struct block2mtd_dev {
- struct block_device *blkdev;
- struct mtd_info mtd;
- struct mutex write_mutex;
-+ rwlock_t bdev_mutex;
-+ char devname[0];
- };
-
-
-@@ -82,6 +84,12 @@ static int block2mtd_erase(struct mtd_in
- size_t len = instr->len;
- int err;
-
-+ read_lock(&dev->bdev_mutex);
-+ if (!dev->blkdev) {
-+ err = -EINVAL;
-+ goto done;
-+ }
-+
- instr->state = MTD_ERASING;
- mutex_lock(&dev->write_mutex);
- err = _block2mtd_erase(dev, from, len);
-@@ -93,6 +101,10 @@ static int block2mtd_erase(struct mtd_in
- instr->state = MTD_ERASE_DONE;
-
- mtd_erase_callback(instr);
-+
-+done:
-+ read_unlock(&dev->bdev_mutex);
-+
- return err;
- }
-
-@@ -104,10 +116,14 @@ static int block2mtd_read(struct mtd_inf
- struct page *page;
- int index = from >> PAGE_SHIFT;
- int offset = from & (PAGE_SIZE-1);
-- int cpylen;
-+ int cpylen, err = 0;
-+
-+ read_lock(&dev->bdev_mutex);
-+ if (!dev->blkdev || (from > mtd->size)) {
-+ err = -EINVAL;
-+ goto done;
-+ }
-
-- if (from > mtd->size)
-- return -EINVAL;
- if (from + len > mtd->size)
- len = mtd->size - from;
-
-@@ -122,10 +138,14 @@ static int block2mtd_read(struct mtd_inf
- len = len - cpylen;
-
- page = page_read(dev->blkdev->bd_inode->i_mapping, index);
-- if (!page)
-- return -ENOMEM;
-- if (IS_ERR(page))
-- return PTR_ERR(page);
-+ if (!page) {
-+ err = -ENOMEM;
-+ goto done;
-+ }
-+ if (IS_ERR(page)) {
-+ err = PTR_ERR(page);
-+ goto done;
-+ }
-
- memcpy(buf, page_address(page) + offset, cpylen);
- page_cache_release(page);
-@@ -136,7 +156,10 @@ static int block2mtd_read(struct mtd_inf
- offset = 0;
- index++;
- }
-- return 0;
-+
-+done:
-+ read_unlock(&dev->bdev_mutex);
-+ return err;
- }
-
-
-@@ -188,12 +211,22 @@ static int block2mtd_write(struct mtd_in
- size_t *retlen, const u_char *buf)
- {
- struct block2mtd_dev *dev = mtd->priv;
-- int err;
-+ int err = 0;
-+
-+ read_lock(&dev->bdev_mutex);
-+ if (!dev->blkdev) {
-+ err = -EINVAL;
-+ goto done;
-+ }
-
- if (!len)
-- return 0;
-- if (to >= mtd->size)
-- return -ENOSPC;
-+ goto done;
-+
-+ if (to >= mtd->size) {
-+ err = -ENOSPC;
-+ goto done;
-+ }
-+
- if (to + len > mtd->size)
- len = mtd->size - to;
-
-@@ -202,6 +235,9 @@ static int block2mtd_write(struct mtd_in
- mutex_unlock(&dev->write_mutex);
- if (err > 0)
- err = 0;
-+
-+done:
-+ read_unlock(&dev->bdev_mutex);
- return err;
- }
-
-@@ -210,52 +246,29 @@ static int block2mtd_write(struct mtd_in
- static void block2mtd_sync(struct mtd_info *mtd)
- {
- struct block2mtd_dev *dev = mtd->priv;
-- sync_blockdev(dev->blkdev);
-- return;
--}
--
--
--static void block2mtd_free_device(struct block2mtd_dev *dev)
--{
-- if (!dev)
-- return;
--
-- kfree(dev->mtd.name);
-
-- if (dev->blkdev) {
-- invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping,
-- 0, -1);
-- close_bdev_exclusive(dev->blkdev, FMODE_READ|FMODE_WRITE);
-- }
-+ read_lock(&dev->bdev_mutex);
-+ if (dev->blkdev)
-+ sync_blockdev(dev->blkdev);
-+ read_unlock(&dev->bdev_mutex);
-
-- kfree(dev);
-+ return;
- }
-
-
--/* FIXME: ensure that mtd->size % erase_size == 0 */
--static struct block2mtd_dev *add_device(char *devname, int erase_size, const char *mtdname)
-+static int _open_bdev(struct block2mtd_dev *dev)
- {
- struct block_device *bdev;
-- struct block2mtd_dev *dev;
-- struct mtd_partition *part;
-- char *name;
--
-- if (!devname)
-- return NULL;
--
-- dev = kzalloc(sizeof(struct block2mtd_dev), GFP_KERNEL);
-- if (!dev)
-- return NULL;
-
- /* Get a handle on the device */
-- bdev = open_bdev_exclusive(devname, FMODE_READ|FMODE_WRITE, NULL);
-+ bdev = open_bdev_exclusive(dev->devname, FMODE_READ|FMODE_WRITE, NULL);
- #ifndef MODULE
- if (IS_ERR(bdev)) {
-
- /* We might not have rootfs mounted at this point. Try
- to resolve the device name by other means. */
-
-- dev_t devt = name_to_dev_t(devname);
-+ dev_t devt = name_to_dev_t(dev->devname);
- if (devt) {
- bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
- }
-@@ -263,17 +276,98 @@ static struct block2mtd_dev *add_device(
- #endif
-
- if (IS_ERR(bdev)) {
-- ERROR("error: cannot open device %s", devname);
-- goto devinit_err;
-+ ERROR("error: cannot open device %s", dev->devname);
-+ return 1;
- }
- dev->blkdev = bdev;
-
- if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
- ERROR("attempting to use an MTD device as a block device");
-- goto devinit_err;
-+ return 1;
- }
-
-+ return 0;
-+}
-+
-+static void _close_bdev(struct block2mtd_dev *dev)
-+{
-+ struct block_device *bdev;
-+
-+ if (!dev->blkdev)
-+ return;
-+
-+ bdev = dev->blkdev;
-+ invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping, 0, -1);
-+ close_bdev_exclusive(dev->blkdev, FMODE_READ|FMODE_WRITE);
-+ dev->blkdev = NULL;
-+}
-+
-+static void block2mtd_free_device(struct block2mtd_dev *dev)
-+{
-+ if (!dev)
-+ return;
-+
-+ kfree(dev->mtd.name);
-+ _close_bdev(dev);
-+ kfree(dev);
-+}
-+
-+
-+static int block2mtd_refresh(struct mtd_info *mtd)
-+{
-+ struct block2mtd_dev *dev = mtd->priv;
-+ struct block_device *bdev;
-+ dev_t devt;
-+ int err = 0;
-+
-+ /* no other mtd function can run at this point */
-+ write_lock(&dev->bdev_mutex);
-+
-+ /* get the device number for the whole disk */
-+ devt = MKDEV(MAJOR(dev->blkdev->bd_dev), 0);
-+
-+ /* close the old block device */
-+ _close_bdev(dev);
-+
-+ /* open the whole disk, issue a partition rescan, then */
-+ bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
-+ if (!bdev || !bdev->bd_disk)
-+ err = -EINVAL;
-+#ifndef CONFIG_MTD_BLOCK2MTD_MODULE
-+ else
-+ err = rescan_partitions(bdev->bd_disk, bdev);
-+#endif
-+ if (bdev)
-+ close_bdev_exclusive(bdev, FMODE_READ|FMODE_WRITE);
-+
-+ /* try to open the partition block device again */
-+ _open_bdev(dev);
-+ write_unlock(&dev->bdev_mutex);
-+
-+ return err;
-+}
-+
-+/* FIXME: ensure that mtd->size % erase_size == 0 */
-+static struct block2mtd_dev *add_device(char *devname, int erase_size, char *mtdname)
-+{
-+ struct block2mtd_dev *dev;
-+ struct mtd_partition *part;
-+ char *name;
-+
-+ if (!devname)
-+ return NULL;
-+
-+ dev = kzalloc(sizeof(struct block2mtd_dev) + strlen(devname) + 1, GFP_KERNEL);
-+ if (!dev)
-+ return NULL;
-+
-+ strcpy(dev->devname, devname);
-+
-+ if (_open_bdev(dev))
-+ goto devinit_err;
-+
- mutex_init(&dev->write_mutex);
-+ rwlock_init(&dev->bdev_mutex);
-
- /* Setup the MTD structure */
- /* make the name contain the block device in */
-@@ -298,6 +392,7 @@ static struct block2mtd_dev *add_device(
- dev->mtd.read = block2mtd_read;
- dev->mtd.priv = dev;
- dev->mtd.owner = THIS_MODULE;
-+ dev->mtd.refresh_device = block2mtd_refresh;
-
- part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
- part->name = dev->mtd.name;
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
-@@ -841,6 +841,13 @@ static int mtd_ioctl(struct file *file,
+@@ -841,6 +841,13 @@ static int mtd_ioctl(struct file *file,
file->f_pos = 0;
break;
}
diff --git a/target/linux/generic/patches-2.6.37/222-partial_eraseblock_write.patch b/target/linux/generic/patches-2.6.37/401-partial_eraseblock_write.patch
index 1c049048ff..1c049048ff 100644
--- a/target/linux/generic/patches-2.6.37/222-partial_eraseblock_write.patch
+++ b/target/linux/generic/patches-2.6.37/401-partial_eraseblock_write.patch
diff --git a/target/linux/generic/patches-2.6.37/082-mtd_info_move_forward_decl.patch b/target/linux/generic/patches-2.6.37/410-mtd_info_move_forward_decl.patch
index 13f0a217d4..13f0a217d4 100644
--- a/target/linux/generic/patches-2.6.37/082-mtd_info_move_forward_decl.patch
+++ b/target/linux/generic/patches-2.6.37/410-mtd_info_move_forward_decl.patch
diff --git a/target/linux/generic/patches-2.6.37/070-redboot_space.patch b/target/linux/generic/patches-2.6.37/420-redboot_space.patch
index fb6700b07e..fb6700b07e 100644
--- a/target/linux/generic/patches-2.6.37/070-redboot_space.patch
+++ b/target/linux/generic/patches-2.6.37/420-redboot_space.patch
diff --git a/target/linux/generic/patches-2.6.37/071-redboot_boardconfig.patch b/target/linux/generic/patches-2.6.37/421-redboot_boardconfig.patch
index 9188cee29c..9188cee29c 100644
--- a/target/linux/generic/patches-2.6.37/071-redboot_boardconfig.patch
+++ b/target/linux/generic/patches-2.6.37/421-redboot_boardconfig.patch
diff --git a/target/linux/generic/patches-2.6.37/081-mtd_myloader_partition_parser.patch b/target/linux/generic/patches-2.6.37/430-mtd_myloader_partition_parser.patch
index 61b822ee88..61b822ee88 100644
--- a/target/linux/generic/patches-2.6.37/081-mtd_myloader_partition_parser.patch
+++ b/target/linux/generic/patches-2.6.37/430-mtd_myloader_partition_parser.patch
diff --git a/target/linux/generic/patches-2.6.37/060-block2mtd_init.patch b/target/linux/generic/patches-2.6.37/440-block2mtd_init.patch
index 18f0c4e512..18f0c4e512 100644
--- a/target/linux/generic/patches-2.6.37/060-block2mtd_init.patch
+++ b/target/linux/generic/patches-2.6.37/440-block2mtd_init.patch
diff --git a/target/linux/generic/patches-2.6.37/441-block2mtd_refresh.patch b/target/linux/generic/patches-2.6.37/441-block2mtd_refresh.patch
new file mode 100644
index 0000000000..a1a84638f0
--- /dev/null
+++ b/target/linux/generic/patches-2.6.37/441-block2mtd_refresh.patch
@@ -0,0 +1,292 @@
+--- a/drivers/mtd/devices/block2mtd.c
++++ b/drivers/mtd/devices/block2mtd.c
+@@ -30,6 +30,8 @@ struct block2mtd_dev {
+ struct block_device *blkdev;
+ struct mtd_info mtd;
+ struct mutex write_mutex;
++ rwlock_t bdev_mutex;
++ char devname[0];
+ };
+
+
+@@ -82,6 +84,12 @@ static int block2mtd_erase(struct mtd_in
+ size_t len = instr->len;
+ int err;
+
++ read_lock(&dev->bdev_mutex);
++ if (!dev->blkdev) {
++ err = -EINVAL;
++ goto done;
++ }
++
+ instr->state = MTD_ERASING;
+ mutex_lock(&dev->write_mutex);
+ err = _block2mtd_erase(dev, from, len);
+@@ -93,6 +101,10 @@ static int block2mtd_erase(struct mtd_in
+ instr->state = MTD_ERASE_DONE;
+
+ mtd_erase_callback(instr);
++
++done:
++ read_unlock(&dev->bdev_mutex);
++
+ return err;
+ }
+
+@@ -104,10 +116,14 @@ static int block2mtd_read(struct mtd_inf
+ struct page *page;
+ int index = from >> PAGE_SHIFT;
+ int offset = from & (PAGE_SIZE-1);
+- int cpylen;
++ int cpylen, err = 0;
++
++ read_lock(&dev->bdev_mutex);
++ if (!dev->blkdev || (from > mtd->size)) {
++ err = -EINVAL;
++ goto done;
++ }
+
+- if (from > mtd->size)
+- return -EINVAL;
+ if (from + len > mtd->size)
+ len = mtd->size - from;
+
+@@ -122,10 +138,14 @@ static int block2mtd_read(struct mtd_inf
+ len = len - cpylen;
+
+ page = page_read(dev->blkdev->bd_inode->i_mapping, index);
+- if (!page)
+- return -ENOMEM;
+- if (IS_ERR(page))
+- return PTR_ERR(page);
++ if (!page) {
++ err = -ENOMEM;
++ goto done;
++ }
++ if (IS_ERR(page)) {
++ err = PTR_ERR(page);
++ goto done;
++ }
+
+ memcpy(buf, page_address(page) + offset, cpylen);
+ page_cache_release(page);
+@@ -136,7 +156,10 @@ static int block2mtd_read(struct mtd_inf
+ offset = 0;
+ index++;
+ }
+- return 0;
++
++done:
++ read_unlock(&dev->bdev_mutex);
++ return err;
+ }
+
+
+@@ -188,12 +211,22 @@ static int block2mtd_write(struct mtd_in
+ size_t *retlen, const u_char *buf)
+ {
+ struct block2mtd_dev *dev = mtd->priv;
+- int err;
++ int err = 0;
++
++ read_lock(&dev->bdev_mutex);
++ if (!dev->blkdev) {
++ err = -EINVAL;
++ goto done;
++ }
+
+ if (!len)
+- return 0;
+- if (to >= mtd->size)
+- return -ENOSPC;
++ goto done;
++
++ if (to >= mtd->size) {
++ err = -ENOSPC;
++ goto done;
++ }
++
+ if (to + len > mtd->size)
+ len = mtd->size - to;
+
+@@ -202,6 +235,9 @@ static int block2mtd_write(struct mtd_in
+ mutex_unlock(&dev->write_mutex);
+ if (err > 0)
+ err = 0;
++
++done:
++ read_unlock(&dev->bdev_mutex);
+ return err;
+ }
+
+@@ -210,52 +246,29 @@ static int block2mtd_write(struct mtd_in
+ static void block2mtd_sync(struct mtd_info *mtd)
+ {
+ struct block2mtd_dev *dev = mtd->priv;
+- sync_blockdev(dev->blkdev);
+- return;
+-}
+-
+-
+-static void block2mtd_free_device(struct block2mtd_dev *dev)
+-{
+- if (!dev)
+- return;
+-
+- kfree(dev->mtd.name);
+
+- if (dev->blkdev) {
+- invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping,
+- 0, -1);
+- close_bdev_exclusive(dev->blkdev, FMODE_READ|FMODE_WRITE);
+- }
++ read_lock(&dev->bdev_mutex);
++ if (dev->blkdev)
++ sync_blockdev(dev->blkdev);
++ read_unlock(&dev->bdev_mutex);
+
+- kfree(dev);
++ return;
+ }
+
+
+-/* FIXME: ensure that mtd->size % erase_size == 0 */
+-static struct block2mtd_dev *add_device(char *devname, int erase_size, const char *mtdname)
++static int _open_bdev(struct block2mtd_dev *dev)
+ {
+ struct block_device *bdev;
+- struct block2mtd_dev *dev;
+- struct mtd_partition *part;
+- char *name;
+-
+- if (!devname)
+- return NULL;
+-
+- dev = kzalloc(sizeof(struct block2mtd_dev), GFP_KERNEL);
+- if (!dev)
+- return NULL;
+
+ /* Get a handle on the device */
+- bdev = open_bdev_exclusive(devname, FMODE_READ|FMODE_WRITE, NULL);
++ bdev = open_bdev_exclusive(dev->devname, FMODE_READ|FMODE_WRITE, NULL);
+ #ifndef MODULE
+ if (IS_ERR(bdev)) {
+
+ /* We might not have rootfs mounted at this point. Try
+ to resolve the device name by other means. */
+
+- dev_t devt = name_to_dev_t(devname);
++ dev_t devt = name_to_dev_t(dev->devname);
+ if (devt) {
+ bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
+ }
+@@ -263,17 +276,98 @@ static struct block2mtd_dev *add_device(
+ #endif
+
+ if (IS_ERR(bdev)) {
+- ERROR("error: cannot open device %s", devname);
+- goto devinit_err;
++ ERROR("error: cannot open device %s", dev->devname);
++ return 1;
+ }
+ dev->blkdev = bdev;
+
+ if (MAJOR(bdev->bd_dev) == MTD_BLOCK_MAJOR) {
+ ERROR("attempting to use an MTD device as a block device");
+- goto devinit_err;
++ return 1;
+ }
+
++ return 0;
++}
++
++static void _close_bdev(struct block2mtd_dev *dev)
++{
++ struct block_device *bdev;
++
++ if (!dev->blkdev)
++ return;
++
++ bdev = dev->blkdev;
++ invalidate_mapping_pages(dev->blkdev->bd_inode->i_mapping, 0, -1);
++ close_bdev_exclusive(dev->blkdev, FMODE_READ|FMODE_WRITE);
++ dev->blkdev = NULL;
++}
++
++static void block2mtd_free_device(struct block2mtd_dev *dev)
++{
++ if (!dev)
++ return;
++
++ kfree(dev->mtd.name);
++ _close_bdev(dev);
++ kfree(dev);
++}
++
++
++static int block2mtd_refresh(struct mtd_info *mtd)
++{
++ struct block2mtd_dev *dev = mtd->priv;
++ struct block_device *bdev;
++ dev_t devt;
++ int err = 0;
++
++ /* no other mtd function can run at this point */
++ write_lock(&dev->bdev_mutex);
++
++ /* get the device number for the whole disk */
++ devt = MKDEV(MAJOR(dev->blkdev->bd_dev), 0);
++
++ /* close the old block device */
++ _close_bdev(dev);
++
++ /* open the whole disk, issue a partition rescan, then */
++ bdev = open_by_devnum(devt, FMODE_WRITE | FMODE_READ);
++ if (!bdev || !bdev->bd_disk)
++ err = -EINVAL;
++#ifndef CONFIG_MTD_BLOCK2MTD_MODULE
++ else
++ err = rescan_partitions(bdev->bd_disk, bdev);
++#endif
++ if (bdev)
++ close_bdev_exclusive(bdev, FMODE_READ|FMODE_WRITE);
++
++ /* try to open the partition block device again */
++ _open_bdev(dev);
++ write_unlock(&dev->bdev_mutex);
++
++ return err;
++}
++
++/* FIXME: ensure that mtd->size % erase_size == 0 */
++static struct block2mtd_dev *add_device(char *devname, int erase_size, char *mtdname)
++{
++ struct block2mtd_dev *dev;
++ struct mtd_partition *part;
++ char *name;
++
++ if (!devname)
++ return NULL;
++
++ dev = kzalloc(sizeof(struct block2mtd_dev) + strlen(devname) + 1, GFP_KERNEL);
++ if (!dev)
++ return NULL;
++
++ strcpy(dev->devname, devname);
++
++ if (_open_bdev(dev))
++ goto devinit_err;
++
+ mutex_init(&dev->write_mutex);
++ rwlock_init(&dev->bdev_mutex);
+
+ /* Setup the MTD structure */
+ /* make the name contain the block device in */
+@@ -298,6 +392,7 @@ static struct block2mtd_dev *add_device(
+ dev->mtd.read = block2mtd_read;
+ dev->mtd.priv = dev;
+ dev->mtd.owner = THIS_MODULE;
++ dev->mtd.refresh_device = block2mtd_refresh;
+
+ part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL);
+ part->name = dev->mtd.name;
diff --git a/target/linux/generic/patches-2.6.37/066-block2mtd_probe.patch b/target/linux/generic/patches-2.6.37/442-block2mtd_probe.patch
index b2b1a347f4..b2b1a347f4 100644
--- a/target/linux/generic/patches-2.6.37/066-block2mtd_probe.patch
+++ b/target/linux/generic/patches-2.6.37/442-block2mtd_probe.patch
diff --git a/target/linux/generic/patches-2.6.37/080-mtd_plat_nand_chip_fixup.patch b/target/linux/generic/patches-2.6.37/450-mtd_plat_nand_chip_fixup.patch
index 0558f52c7e..0558f52c7e 100644
--- a/target/linux/generic/patches-2.6.37/080-mtd_plat_nand_chip_fixup.patch
+++ b/target/linux/generic/patches-2.6.37/450-mtd_plat_nand_chip_fixup.patch
diff --git a/target/linux/generic/patches-2.6.37/083-mtd_fix_nand_correct_data_return_code.patch b/target/linux/generic/patches-2.6.37/451-mtd_fix_nand_correct_data_return_code.patch
index f630059e87..f630059e87 100644
--- a/target/linux/generic/patches-2.6.37/083-mtd_fix_nand_correct_data_return_code.patch
+++ b/target/linux/generic/patches-2.6.37/451-mtd_fix_nand_correct_data_return_code.patch
diff --git a/target/linux/generic/patches-2.6.37/014-cfi_show_amd_extended_table_version.patch b/target/linux/generic/patches-2.6.37/460-cfi_show_amd_extended_table_version.patch
index 38ba76df46..e1981ddd25 100644
--- a/target/linux/generic/patches-2.6.37/014-cfi_show_amd_extended_table_version.patch
+++ b/target/linux/generic/patches-2.6.37/460-cfi_show_amd_extended_table_version.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -446,9 +446,9 @@ struct mtd_info *cfi_cmdset_0002(struct
+@@ -446,9 +446,9 @@ struct mtd_info *cfi_cmdset_0002(struct
/*
* Valid primary extension versions are: 1.0, 1.1, 1.2, 1.3, 1.4
diff --git a/target/linux/generic/patches-2.6.37/084-mtd_m25p80_add_pm25lv_flash_support.patch b/target/linux/generic/patches-2.6.37/470-mtd_m25p80_add_pm25lv_flash_support.patch
index 9e01f51edf..9e01f51edf 100644
--- a/target/linux/generic/patches-2.6.37/084-mtd_m25p80_add_pm25lv_flash_support.patch
+++ b/target/linux/generic/patches-2.6.37/470-mtd_m25p80_add_pm25lv_flash_support.patch
diff --git a/target/linux/generic/patches-2.6.37/090-mtd-m25p80-add-en25f32-chip-support.patch b/target/linux/generic/patches-2.6.37/471-mtd_m25p80_add_en25f32_chip_support.patch
index 19e3e5c038..19e3e5c038 100644
--- a/target/linux/generic/patches-2.6.37/090-mtd-m25p80-add-en25f32-chip-support.patch
+++ b/target/linux/generic/patches-2.6.37/471-mtd_m25p80_add_en25f32_chip_support.patch
diff --git a/target/linux/generic/patches-2.6.37/091-mtd-m25p80-add-MX25L1606E-support.patch b/target/linux/generic/patches-2.6.37/472-mtd_m25p80_add_MX25L1606E_support.patch
index a8f4bf167b..a8f4bf167b 100644
--- a/target/linux/generic/patches-2.6.37/091-mtd-m25p80-add-MX25L1606E-support.patch
+++ b/target/linux/generic/patches-2.6.37/472-mtd_m25p80_add_MX25L1606E_support.patch
diff --git a/target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch b/target/linux/generic/patches-2.6.37/473-mtd_samsung_flash.patch
index cb9f7bfaca..9b8cc815a8 100644
--- a/target/linux/generic/patches-2.6.37/089-mtd-samsung-flash.patch
+++ b/target/linux/generic/patches-2.6.37/473-mtd_samsung_flash.patch
@@ -1,6 +1,6 @@
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -392,9 +392,35 @@ static struct cfi_fixup fixup_table[] =
+@@ -392,9 +392,35 @@ static struct cfi_fixup fixup_table[] =
static void cfi_fixup_major_minor(struct cfi_private *cfi,
struct cfi_pri_amdstd *extp)
{
diff --git a/target/linux/generic/patches-2.6.37/510-yaffs_support.patch b/target/linux/generic/patches-2.6.37/500-yaffs_support.patch
index f9fca633a8..f9fca633a8 100644
--- a/target/linux/generic/patches-2.6.37/510-yaffs_support.patch
+++ b/target/linux/generic/patches-2.6.37/500-yaffs_support.patch
diff --git a/target/linux/generic/patches-2.6.37/511-yaffs-cvs-2009-04-24.patch b/target/linux/generic/patches-2.6.37/501-yaffs_cvs_2009_04_24.patch
index c334b17d08..5c70e79a05 100644
--- a/target/linux/generic/patches-2.6.37/511-yaffs-cvs-2009-04-24.patch
+++ b/target/linux/generic/patches-2.6.37/501-yaffs_cvs_2009_04_24.patch
@@ -601,7 +601,7 @@
dev->checkpointBlockList[i] = -1;
}
-@@ -191,18 +185,17 @@ int yaffs_GetCheckpointSum(yaffs_Device
+@@ -191,18 +185,17 @@ int yaffs_GetCheckpointSum(yaffs_Device
static int yaffs_CheckpointFlushBuffer(yaffs_Device *dev)
{
@@ -926,7 +926,7 @@
{
unsigned char cDelta; /* column parity delta */
unsigned lDelta; /* line parity delta */
-@@ -294,8 +292,7 @@ int yaffs_ECCCorrectOther(unsigned char
+@@ -294,8 +292,7 @@ int yaffs_ECCCorrectOther(unsigned char
return 0; /* no error */
if (lDelta == ~lDeltaPrime &&
@@ -936,7 +936,7 @@
/* Single bit (recoverable) error in data */
bit = 0;
-@@ -307,7 +304,7 @@ int yaffs_ECCCorrectOther(unsigned char
+@@ -307,7 +304,7 @@ int yaffs_ECCCorrectOther(unsigned char
if (cDelta & 0x02)
bit |= 0x01;
@@ -945,7 +945,7 @@
return -1;
data[lDelta] ^= (1 << bit);
-@@ -316,7 +313,7 @@ int yaffs_ECCCorrectOther(unsigned char
+@@ -316,7 +313,7 @@ int yaffs_ECCCorrectOther(unsigned char
}
if ((yaffs_CountBits32(lDelta) + yaffs_CountBits32(lDeltaPrime) +
@@ -954,7 +954,7 @@
/* Reccoverable error in ecc */
*read_ecc = *test_ecc;
-@@ -326,6 +323,4 @@ int yaffs_ECCCorrectOther(unsigned char
+@@ -326,6 +323,4 @@ int yaffs_ECCCorrectOther(unsigned char
/* Unrecoverable error */
return -1;
@@ -1398,7 +1398,7 @@
{
unsigned char *alias;
int ret;
-@@ -329,7 +395,7 @@ static int yaffs_readlink(struct dentry
+@@ -329,7 +395,7 @@ static int yaffs_readlink(struct dentry
return ret;
}
@@ -1560,7 +1560,7 @@
static int yaffs_file_flush(struct file *file, fl_owner_t id)
#else
static int yaffs_file_flush(struct file *file)
-@@ -513,8 +579,8 @@ static int yaffs_file_flush(struct file
+@@ -513,8 +579,8 @@ static int yaffs_file_flush(struct file
yaffs_Device *dev = obj->myDev;
T(YAFFS_TRACE_OS,
@@ -1571,7 +1571,7 @@
yaffs_GrossLock(dev);
-@@ -535,15 +601,15 @@ static int yaffs_readpage_nolock(struct
+@@ -535,15 +601,15 @@ static int yaffs_readpage_nolock(struct
yaffs_Device *dev;
@@ -1591,7 +1591,7 @@
BUG_ON(!PageLocked(pg));
#else
if (!PageLocked(pg))
-@@ -555,9 +621,9 @@ static int yaffs_readpage_nolock(struct
+@@ -555,9 +621,9 @@ static int yaffs_readpage_nolock(struct
yaffs_GrossLock(dev);
@@ -1604,7 +1604,7 @@
yaffs_GrossUnlock(dev);
-@@ -575,7 +641,7 @@ static int yaffs_readpage_nolock(struct
+@@ -575,7 +641,7 @@ static int yaffs_readpage_nolock(struct
flush_dcache_page(pg);
kunmap(pg);
@@ -3193,7 +3193,7 @@
if (n < step) {
n++;
continue;
-@@ -2119,7 +2356,7 @@ static int yaffs_proc_write(struct file
+@@ -2119,7 +2356,7 @@ static int yaffs_proc_write(struct file
char *end;
char *mask_name;
const char *x;
@@ -3202,7 +3202,7 @@
int i;
int done = 0;
int add, len = 0;
-@@ -2129,9 +2366,8 @@ static int yaffs_proc_write(struct file
+@@ -2129,9 +2366,8 @@ static int yaffs_proc_write(struct file
while (!done && (pos < count)) {
done = 1;
@@ -3213,7 +3213,7 @@
switch (buf[pos]) {
case '+':
-@@ -2148,20 +2384,21 @@ static int yaffs_proc_write(struct file
+@@ -2148,20 +2384,21 @@ static int yaffs_proc_write(struct file
mask_name = NULL;
mask_bitfield = simple_strtoul(buf + pos, &end, 0);
@@ -3240,7 +3240,7 @@
mask_name = mask_flags[i].mask_name;
mask_bitfield = mask_flags[i].mask_bitfield;
done = 0;
-@@ -2172,7 +2409,7 @@ static int yaffs_proc_write(struct file
+@@ -2172,7 +2409,7 @@ static int yaffs_proc_write(struct file
if (mask_name != NULL) {
done = 0;
@@ -3249,7 +3249,7 @@
case '-':
rg &= ~mask_bitfield;
break;
-@@ -2191,13 +2428,13 @@ static int yaffs_proc_write(struct file
+@@ -2191,13 +2428,13 @@ static int yaffs_proc_write(struct file
yaffs_traceMask = rg | YAFFS_TRACE_ALWAYS;
@@ -5691,7 +5691,7 @@
{
/* Get the real object in case we were fed a hard link as an equivalent object */
equivalentObject = yaffs_GetEquivalentObject(equivalentObject);
-@@ -2363,33 +2396,31 @@ yaffs_Object *yaffs_Link(yaffs_Object *
+@@ -2363,33 +2396,31 @@ yaffs_Object *yaffs_Link(yaffs_Object *
}
@@ -7622,7 +7622,7 @@
int nToCopy;
int n = nBytes;
int nDone = 0;
-@@ -4600,27 +4665,26 @@ int yaffs_ReadDataFromFile(yaffs_Object
+@@ -4600,27 +4665,26 @@ int yaffs_ReadDataFromFile(yaffs_Object
dev = in->myDev;
while (n > 0) {
@@ -7657,7 +7657,7 @@
if (dev->nShortOpCaches > 0) {
/* If we can't find the data in the cache, then load it up. */
-@@ -4641,14 +4705,9 @@ int yaffs_ReadDataFromFile(yaffs_Object
+@@ -4641,14 +4705,9 @@ int yaffs_ReadDataFromFile(yaffs_Object
cache->locked = 1;
@@ -7673,7 +7673,7 @@
cache->locked = 0;
} else {
/* Read into the local buffer then copy..*/
-@@ -4657,41 +4716,19 @@ int yaffs_ReadDataFromFile(yaffs_Object
+@@ -4657,41 +4716,19 @@ int yaffs_ReadDataFromFile(yaffs_Object
yaffs_GetTempBuffer(dev, __LINE__);
yaffs_ReadChunkDataFromObject(in, chunk,
localBuffer);
@@ -7718,7 +7718,7 @@
}
n -= nToCopy;
-@@ -4704,28 +4741,37 @@ int yaffs_ReadDataFromFile(yaffs_Object
+@@ -4704,28 +4741,37 @@ int yaffs_ReadDataFromFile(yaffs_Object
return nDone;
}
@@ -7923,7 +7923,7 @@
int newFullChunks;
yaffs_Device *dev = in->myDev;
-@@ -4955,13 +4981,11 @@ int yaffs_ResizeFile(yaffs_Object * in,
+@@ -4955,13 +4981,11 @@ int yaffs_ResizeFile(yaffs_Object * in,
yaffs_CheckGarbageCollection(dev);
@@ -7941,7 +7941,7 @@
if (newSize < oldFileSize) {
-@@ -4994,21 +5018,20 @@ int yaffs_ResizeFile(yaffs_Object * in,
+@@ -4994,21 +5018,20 @@ int yaffs_ResizeFile(yaffs_Object * in,
}
@@ -7968,7 +7968,7 @@
{
obj = yaffs_GetEquivalentObject(obj);
-@@ -5024,7 +5047,7 @@ loff_t yaffs_GetFileSize(yaffs_Object *
+@@ -5024,7 +5047,7 @@ loff_t yaffs_GetFileSize(yaffs_Object *
@@ -9789,7 +9789,7 @@
{
int init_failed = 0;
unsigned x;
-@@ -7040,6 +7126,8 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7040,6 +7126,8 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->chunkOffset = 0;
dev->nFreeChunks = 0;
@@ -9798,7 +9798,7 @@
if (dev->startBlock == 0) {
dev->internalStartBlock = dev->startBlock + 1;
dev->internalEndBlock = dev->endBlock + 1;
-@@ -7049,18 +7137,18 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7049,18 +7137,18 @@ int yaffs_GutsInitialise(yaffs_Device *
/* Check geometry parameters. */
@@ -9823,7 +9823,7 @@
return YAFFS_FAIL;
}
-@@ -7070,6 +7158,12 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7070,6 +7158,12 @@ int yaffs_GutsInitialise(yaffs_Device *
return YAFFS_FAIL;
}
@@ -9836,7 +9836,7 @@
/* Got the right mix of functions? */
if (!yaffs_CheckDevFunctions(dev)) {
/* Function missing */
-@@ -7097,31 +7191,18 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7097,31 +7191,18 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->isMounted = 1;
@@ -9875,7 +9875,7 @@
/*
* Calculate chunkGroupBits.
-@@ -7133,16 +7214,15 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7133,16 +7214,15 @@ int yaffs_GutsInitialise(yaffs_Device *
bits = ShiftsGE(x);
/* Set up tnode width if wide tnodes are enabled. */
@@ -9896,7 +9896,7 @@
dev->tnodeWidth = 16;
dev->tnodeMask = (1<<dev->tnodeWidth)-1;
-@@ -7193,7 +7273,7 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7193,7 +7273,7 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->hasPendingPrioritisedGCs = 1; /* Assume the worst for now, will get fixed on first GC */
/* Initialise temporary buffers and caches. */
@@ -9905,7 +9905,7 @@
init_failed = 1;
dev->srCache = NULL;
-@@ -7203,25 +7283,26 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7203,25 +7283,26 @@ int yaffs_GutsInitialise(yaffs_Device *
if (!init_failed &&
dev->nShortOpCaches > 0) {
int i;
@@ -9940,7 +9940,7 @@
init_failed = 1;
dev->srLastUse = 0;
-@@ -7229,29 +7310,30 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7229,29 +7310,30 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->cacheHits = 0;
@@ -9979,7 +9979,7 @@
T(YAFFS_TRACE_ALWAYS,
(TSTR("yaffs: restored from checkpoint" TENDSTR)));
} else {
-@@ -7273,24 +7355,25 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7273,24 +7355,25 @@ int yaffs_GutsInitialise(yaffs_Device *
dev->nBackgroundDeletions = 0;
dev->oldestDirtySequence = 0;
@@ -10011,7 +10011,7 @@
/* Clean up the mess */
T(YAFFS_TRACE_TRACING,
(TSTR("yaffs: yaffs_GutsInitialise() aborted.\n" TENDSTR)));
-@@ -7318,7 +7401,7 @@ int yaffs_GutsInitialise(yaffs_Device *
+@@ -7318,7 +7401,7 @@ int yaffs_GutsInitialise(yaffs_Device *
}
@@ -10710,7 +10710,7 @@
{
if (etags) {
memset(etags, 0, sizeof(*etags));
-@@ -169,9 +169,9 @@ static int rettags(yaffs_ExtendedTags *
+@@ -169,9 +169,9 @@ static int rettags(yaffs_ExtendedTags *
* Returns YAFFS_OK or YAFFS_FAIL.
*/
int nandmtd1_ReadChunkWithTagsFromNAND(yaffs_Device *dev,
@@ -11038,14 +11038,14 @@
+ yaffs_UnpackTags2(tags, &pt);
+ }
+ }
-+
+
+- if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
+- tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
+ if (localData)
+ yaffs_ReleaseTempBuffer(dev, data, __LINE__);
-- if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
+ if (tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
- tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
--
++ tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
if (retval == 0)
return YAFFS_OK;
else
diff --git a/target/linux/generic/patches-2.6.37/511-yaffs-git-2010-10-20.patch b/target/linux/generic/patches-2.6.37/502-yaffs_git_2010_10_20.patch
index 3260d1c417..a2f35bf4ef 100644
--- a/target/linux/generic/patches-2.6.37/511-yaffs-git-2010-10-20.patch
+++ b/target/linux/generic/patches-2.6.37/502-yaffs_git_2010_10_20.patch
@@ -316,7 +316,7 @@
chunk/page state. This byte is zeroed when the page is discarded.
Choose this option if you have existing on-NAND data in this format
that you need to continue to support. New data written also uses the
-@@ -57,7 +78,7 @@ adjusted to use the older-style format.
+@@ -57,7 +78,7 @@ adjusted to use the older-style format.
MTD versions in yaffs_mtdif1.c.
*/
/* Default: Not selected */
@@ -1614,7 +1614,7 @@
yaffs_ECCOther *read_ecc,
const yaffs_ECCOther *test_ecc)
{
-@@ -304,7 +301,7 @@ int yaffs_ECCCorrectOther(unsigned char
+@@ -304,7 +301,7 @@ int yaffs_ECCCorrectOther(unsigned char
if (cDelta & 0x02)
bit |= 0x01;
@@ -1623,7 +1623,7 @@
return -1;
data[lDelta] ^= (1 << bit);
-@@ -312,8 +309,8 @@ int yaffs_ECCCorrectOther(unsigned char
+@@ -312,8 +309,8 @@ int yaffs_ECCCorrectOther(unsigned char
return 1; /* corrected */
}
diff --git a/target/linux/generic/patches-2.6.37/512-yaffs_symlink_bug.patch b/target/linux/generic/patches-2.6.37/503-yaffs_symlink_bug.patch
index dabf2871bf..dabf2871bf 100644
--- a/target/linux/generic/patches-2.6.37/512-yaffs_symlink_bug.patch
+++ b/target/linux/generic/patches-2.6.37/503-yaffs_symlink_bug.patch
diff --git a/target/linux/generic/patches-2.6.37/513-yaffs_mutex_fix.patch b/target/linux/generic/patches-2.6.37/504-yaffs_mutex_fix.patch
index b34b12f785..b34b12f785 100644
--- a/target/linux/generic/patches-2.6.37/513-yaffs_mutex_fix.patch
+++ b/target/linux/generic/patches-2.6.37/504-yaffs_mutex_fix.patch
diff --git a/target/linux/generic/patches-2.6.37/008-jffs2_make_lzma_available.patch b/target/linux/generic/patches-2.6.37/510-jffs2_make_lzma_available.patch
index d8e6ab7e23..d8e6ab7e23 100644
--- a/target/linux/generic/patches-2.6.37/008-jffs2_make_lzma_available.patch
+++ b/target/linux/generic/patches-2.6.37/510-jffs2_make_lzma_available.patch
diff --git a/target/linux/generic/patches-2.6.37/010-debloat_lzma.patch b/target/linux/generic/patches-2.6.37/511-debloat_lzma.patch
index 1e41661ebb..18e4a51ee3 100644
--- a/target/linux/generic/patches-2.6.37/010-debloat_lzma.patch
+++ b/target/linux/generic/patches-2.6.37/511-debloat_lzma.patch
@@ -124,7 +124,7 @@
/* LzmaDecode
--- a/lib/lzma/LzmaDec.c
+++ b/lib/lzma/LzmaDec.c
-@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p,
+@@ -682,7 +682,7 @@ static void LzmaDec_InitRc(CLzmaDec *p,
p->needFlush = 0;
}
@@ -194,7 +194,7 @@
{
CLzmaProps propNew;
RINOK(LzmaProps_Decode(&propNew, props, propsSize));
-@@ -944,7 +944,7 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
+@@ -944,7 +944,7 @@ SRes LzmaDec_AllocateProbs(CLzmaDec *p,
return SZ_OK;
}
@@ -375,7 +375,7 @@
void MatchFinder_Construct(CMatchFinder *p);
/* Conditions:
-@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p,
+@@ -70,12 +65,6 @@ int MatchFinder_Create(CMatchFinder *p,
UInt32 keepAddBufferBefore, UInt32 matchMaxLen, UInt32 keepAddBufferAfter,
ISzAlloc *alloc);
void MatchFinder_Free(CMatchFinder *p, ISzAlloc *alloc);
diff --git a/target/linux/generic/patches-2.6.37/204-jffs2_eofdetect.patch b/target/linux/generic/patches-2.6.37/512-jffs2_eofdetect.patch
index eaf9489d35..eaf9489d35 100644
--- a/target/linux/generic/patches-2.6.37/204-jffs2_eofdetect.patch
+++ b/target/linux/generic/patches-2.6.37/512-jffs2_eofdetect.patch
diff --git a/target/linux/generic/patches-2.6.37/005-squashfs_revert_to_2.6.35.patch b/target/linux/generic/patches-2.6.37/520-squashfs_revert_to_2.6.35.patch
index 7bf2f100ff..7bf2f100ff 100644
--- a/target/linux/generic/patches-2.6.37/005-squashfs_revert_to_2.6.35.patch
+++ b/target/linux/generic/patches-2.6.37/520-squashfs_revert_to_2.6.35.patch
diff --git a/target/linux/generic/patches-2.6.37/006-squashfs_add_lzma.patch b/target/linux/generic/patches-2.6.37/521-squashfs_add_lzma.patch
index ff715788e6..ff715788e6 100644
--- a/target/linux/generic/patches-2.6.37/006-squashfs_add_lzma.patch
+++ b/target/linux/generic/patches-2.6.37/521-squashfs_add_lzma.patch
diff --git a/target/linux/generic/patches-2.6.37/007-squashfs_make_lzma_available.patch b/target/linux/generic/patches-2.6.37/522-squashfs_make_lzma_available.patch
index dc9a4f5ba1..ab96fd8e2b 100644
--- a/target/linux/generic/patches-2.6.37/007-squashfs_make_lzma_available.patch
+++ b/target/linux/generic/patches-2.6.37/522-squashfs_make_lzma_available.patch
@@ -107,7 +107,7 @@ Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
+#endif
--- a/lib/Kconfig
+++ b/lib/Kconfig
-@@ -124,6 +124,9 @@ config DECOMPRESS_LZO
+@@ -130,6 +130,9 @@ config DECOMPRESS_LZO
select LZO_DECOMPRESS
tristate
diff --git a/target/linux/generic/patches-2.6.37/100-netfilter_layer7_2.22.patch b/target/linux/generic/patches-2.6.37/600-netfilter_layer7_2.22.patch
index 88b656b5e4..b47f05c4c7 100644
--- a/target/linux/generic/patches-2.6.37/100-netfilter_layer7_2.22.patch
+++ b/target/linux/generic/patches-2.6.37/600-netfilter_layer7_2.22.patch
@@ -1,6 +1,6 @@
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -948,6 +948,27 @@ config NETFILTER_XT_MATCH_STATE
+@@ -946,6 +946,27 @@ config NETFILTER_XT_MATCH_STATE
To compile it as a module, choose M here. If unsure, say N.
@@ -30,7 +30,7 @@
depends on NETFILTER_ADVANCED
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
-@@ -95,6 +95,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT)
+@@ -95,6 +95,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_RECENT)
obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
diff --git a/target/linux/generic/patches-2.6.37/101-netfilter_layer7_pktmatch.patch b/target/linux/generic/patches-2.6.37/601-netfilter_layer7_pktmatch.patch
index f65e301fd1..f65e301fd1 100644
--- a/target/linux/generic/patches-2.6.37/101-netfilter_layer7_pktmatch.patch
+++ b/target/linux/generic/patches-2.6.37/601-netfilter_layer7_pktmatch.patch
diff --git a/target/linux/generic/patches-2.6.37/102-netfilter_layer7_match.patch b/target/linux/generic/patches-2.6.37/602-netfilter_layer7_match.patch
index b2e48c824f..b2e48c824f 100644
--- a/target/linux/generic/patches-2.6.37/102-netfilter_layer7_match.patch
+++ b/target/linux/generic/patches-2.6.37/602-netfilter_layer7_match.patch
diff --git a/target/linux/generic/patches-2.6.37/103-netfilter_layer7_2.6.36_fix.patch b/target/linux/generic/patches-2.6.37/603-netfilter_layer7_2.6.36_fix.patch
index 1082da5b67..14c5cc6982 100644
--- a/target/linux/generic/patches-2.6.37/103-netfilter_layer7_2.6.36_fix.patch
+++ b/target/linux/generic/patches-2.6.37/603-netfilter_layer7_2.6.36_fix.patch
@@ -1,6 +1,6 @@
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
-@@ -762,6 +762,27 @@ config NETFILTER_XT_MATCH_IPVS
+@@ -760,6 +760,27 @@ config NETFILTER_XT_MATCH_IPVS
If unsure, say N.
@@ -28,7 +28,7 @@
config NETFILTER_XT_MATCH_LENGTH
tristate '"length" match support'
depends on NETFILTER_ADVANCED
-@@ -948,26 +969,11 @@ config NETFILTER_XT_MATCH_STATE
+@@ -946,26 +967,11 @@ config NETFILTER_XT_MATCH_STATE
To compile it as a module, choose M here. If unsure, say N.
diff --git a/target/linux/generic/patches-2.6.37/160-netfilter_cisco_794x_iphone.patch b/target/linux/generic/patches-2.6.37/604-netfilter_cisco_794x_iphone.patch
index 662a499d17..662a499d17 100644
--- a/target/linux/generic/patches-2.6.37/160-netfilter_cisco_794x_iphone.patch
+++ b/target/linux/generic/patches-2.6.37/604-netfilter_cisco_794x_iphone.patch
diff --git a/target/linux/generic/patches-2.6.37/190-netfilter_rtsp.patch b/target/linux/generic/patches-2.6.37/605-netfilter_rtsp.patch
index 7f1a9d80d4..7f1a9d80d4 100644
--- a/target/linux/generic/patches-2.6.37/190-netfilter_rtsp.patch
+++ b/target/linux/generic/patches-2.6.37/605-netfilter_rtsp.patch
diff --git a/target/linux/generic/patches-2.6.37/200-sched_esfq.patch b/target/linux/generic/patches-2.6.37/620-sched_esfq.patch
index 8a648ecc4d..8a648ecc4d 100644
--- a/target/linux/generic/patches-2.6.37/200-sched_esfq.patch
+++ b/target/linux/generic/patches-2.6.37/620-sched_esfq.patch
diff --git a/target/linux/generic/patches-2.6.37/290-sched_act_connmark.patch b/target/linux/generic/patches-2.6.37/621-sched_act_connmark.patch
index 33429cb430..33429cb430 100644
--- a/target/linux/generic/patches-2.6.37/290-sched_act_connmark.patch
+++ b/target/linux/generic/patches-2.6.37/621-sched_act_connmark.patch
diff --git a/target/linux/generic/patches-2.6.37/240-packet_socket_type.patch b/target/linux/generic/patches-2.6.37/630-packet_socket_type.patch
index f5cb465e93..f5cb465e93 100644
--- a/target/linux/generic/patches-2.6.37/240-packet_socket_type.patch
+++ b/target/linux/generic/patches-2.6.37/630-packet_socket_type.patch
diff --git a/target/linux/generic/patches-2.6.37/270-bridge_no_eap_forward.patch b/target/linux/generic/patches-2.6.37/640-bridge_no_eap_forward.patch
index da71980743..da71980743 100644
--- a/target/linux/generic/patches-2.6.37/270-bridge_no_eap_forward.patch
+++ b/target/linux/generic/patches-2.6.37/640-bridge_no_eap_forward.patch
diff --git a/target/linux/generic/patches-2.6.37/271-bridge_always_accept_eap.patch b/target/linux/generic/patches-2.6.37/641-bridge_always_accept_eap.patch
index e9bcabe6fe..e9bcabe6fe 100644
--- a/target/linux/generic/patches-2.6.37/271-bridge_always_accept_eap.patch
+++ b/target/linux/generic/patches-2.6.37/641-bridge_always_accept_eap.patch
diff --git a/target/linux/generic/patches-2.6.37/300-bridge_port_isolate.patch b/target/linux/generic/patches-2.6.37/642-bridge_port_isolate.patch
index de1cac60e1..de1cac60e1 100644
--- a/target/linux/generic/patches-2.6.37/300-bridge_port_isolate.patch
+++ b/target/linux/generic/patches-2.6.37/642-bridge_port_isolate.patch
diff --git a/target/linux/generic/patches-2.6.37/250-pppoe_header_pad.patch b/target/linux/generic/patches-2.6.37/650-pppoe_header_pad.patch
index 4875d5f23f..4875d5f23f 100644
--- a/target/linux/generic/patches-2.6.37/250-pppoe_header_pad.patch
+++ b/target/linux/generic/patches-2.6.37/650-pppoe_header_pad.patch
diff --git a/target/linux/generic/patches-2.6.37/940-wireless_mesh_header.patch b/target/linux/generic/patches-2.6.37/651-wireless_mesh_header.patch
index 271f8e3591..271f8e3591 100644
--- a/target/linux/generic/patches-2.6.37/940-wireless_mesh_header.patch
+++ b/target/linux/generic/patches-2.6.37/651-wireless_mesh_header.patch
diff --git a/target/linux/generic/patches-2.6.37/650-swconfig.patch b/target/linux/generic/patches-2.6.37/700-swconfig.patch
index 6825037ce9..6825037ce9 100644
--- a/target/linux/generic/patches-2.6.37/650-swconfig.patch
+++ b/target/linux/generic/patches-2.6.37/700-swconfig.patch
diff --git a/target/linux/generic/patches-2.6.37/600-phy_extension.patch b/target/linux/generic/patches-2.6.37/701-phy_extension.patch
index a0624d849e..a0624d849e 100644
--- a/target/linux/generic/patches-2.6.37/600-phy_extension.patch
+++ b/target/linux/generic/patches-2.6.37/701-phy_extension.patch
diff --git a/target/linux/generic/patches-2.6.37/601-phy-add-aneg-done-function.patch b/target/linux/generic/patches-2.6.37/702-phy_add_aneg_done_function.patch
index f37baad729..f37baad729 100644
--- a/target/linux/generic/patches-2.6.37/601-phy-add-aneg-done-function.patch
+++ b/target/linux/generic/patches-2.6.37/702-phy_add_aneg_done_function.patch
diff --git a/target/linux/generic/patches-2.6.37/620-phy_adm6996.patch b/target/linux/generic/patches-2.6.37/720-phy_adm6996.patch
index bd387d1bc7..8e0ef559a8 100644
--- a/target/linux/generic/patches-2.6.37/620-phy_adm6996.patch
+++ b/target/linux/generic/patches-2.6.37/720-phy_adm6996.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
-@@ -92,6 +92,11 @@ config MICREL_PHY
+@@ -98,6 +98,11 @@ config MICREL_PHY
---help---
Supports the KSZ9021, VSC8201, KS8001 PHYs.
@@ -14,7 +14,7 @@
depends on PHYLIB=y
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
-@@ -13,6 +13,7 @@ obj-$(CONFIG_VITESSE_PHY) += vitesse.o
+@@ -14,6 +14,7 @@ obj-$(CONFIG_VITESSE_PHY) += vitesse.o
obj-$(CONFIG_BROADCOM_PHY) += broadcom.o
obj-$(CONFIG_BCM63XX_PHY) += bcm63xx.o
obj-$(CONFIG_ICPLUS_PHY) += icplus.o
diff --git a/target/linux/generic/patches-2.6.37/630-phy_packets.patch b/target/linux/generic/patches-2.6.37/721-phy_packets.patch
index 254789a477..254789a477 100644
--- a/target/linux/generic/patches-2.6.37/630-phy_packets.patch
+++ b/target/linux/generic/patches-2.6.37/721-phy_packets.patch
diff --git a/target/linux/generic/patches-2.6.37/660-phy_mvswitch.patch b/target/linux/generic/patches-2.6.37/722-phy_mvswitch.patch
index 00950dc637..00950dc637 100644
--- a/target/linux/generic/patches-2.6.37/660-phy_mvswitch.patch
+++ b/target/linux/generic/patches-2.6.37/722-phy_mvswitch.patch
diff --git a/target/linux/generic/patches-2.6.37/670-phy_ip175c.patch b/target/linux/generic/patches-2.6.37/723-phy_ip175c.patch
index 0af080bc9b..0af080bc9b 100644
--- a/target/linux/generic/patches-2.6.37/670-phy_ip175c.patch
+++ b/target/linux/generic/patches-2.6.37/723-phy_ip175c.patch
diff --git a/target/linux/generic/patches-2.6.37/680-phy_ar8216.patch b/target/linux/generic/patches-2.6.37/724-phy_ar8216.patch
index e532b3cca9..e532b3cca9 100644
--- a/target/linux/generic/patches-2.6.37/680-phy_ar8216.patch
+++ b/target/linux/generic/patches-2.6.37/724-phy_ar8216.patch
diff --git a/target/linux/generic/patches-2.6.37/690-phy_rtl8306.patch b/target/linux/generic/patches-2.6.37/725-phy_rtl8306.patch
index 5a527b1863..5a527b1863 100644
--- a/target/linux/generic/patches-2.6.37/690-phy_rtl8306.patch
+++ b/target/linux/generic/patches-2.6.37/725-phy_rtl8306.patch
diff --git a/target/linux/generic/patches-2.6.37/691-phy_rtl8366.patch b/target/linux/generic/patches-2.6.37/726-phy_rtl8366.patch
index fdfeb54335..fdfeb54335 100644
--- a/target/linux/generic/patches-2.6.37/691-phy_rtl8366.patch
+++ b/target/linux/generic/patches-2.6.37/726-phy_rtl8366.patch
diff --git a/target/linux/generic/patches-2.6.37/903-hostap_txpower.patch b/target/linux/generic/patches-2.6.37/750-hostap_txpower.patch
index e40053170c..ad44715411 100644
--- a/target/linux/generic/patches-2.6.37/903-hostap_txpower.patch
+++ b/target/linux/generic/patches-2.6.37/750-hostap_txpower.patch
@@ -1,6 +1,6 @@
--- a/drivers/net/wireless/hostap/hostap_ap.c
+++ b/drivers/net/wireless/hostap/hostap_ap.c
-@@ -2335,13 +2335,13 @@ int prism2_ap_get_sta_qual(local_info_t
+@@ -2335,13 +2335,13 @@ int prism2_ap_get_sta_qual(local_info_t
addr[count].sa_family = ARPHRD_ETHER;
memcpy(addr[count].sa_data, sta->addr, ETH_ALEN);
if (sta->last_rx_silence == 0)
diff --git a/target/linux/generic/patches-2.6.37/030-pci_disable_common_quirks.patch b/target/linux/generic/patches-2.6.37/810-pci_disable_common_quirks.patch
index 4627986390..4627986390 100644
--- a/target/linux/generic/patches-2.6.37/030-pci_disable_common_quirks.patch
+++ b/target/linux/generic/patches-2.6.37/810-pci_disable_common_quirks.patch
diff --git a/target/linux/generic/patches-2.6.37/031-pci_disable_usb_common_quirks.patch b/target/linux/generic/patches-2.6.37/811-pci_disable_usb_common_quirks.patch
index e1efe9cc39..e1efe9cc39 100644
--- a/target/linux/generic/patches-2.6.37/031-pci_disable_usb_common_quirks.patch
+++ b/target/linux/generic/patches-2.6.37/811-pci_disable_usb_common_quirks.patch
diff --git a/target/linux/generic/patches-2.6.37/310-usb-add-usb_find_device_by_name.patch b/target/linux/generic/patches-2.6.37/820-usb_add_usb_find_device_by_name.patch
index aa3becdf09..aa3becdf09 100644
--- a/target/linux/generic/patches-2.6.37/310-usb-add-usb_find_device_by_name.patch
+++ b/target/linux/generic/patches-2.6.37/820-usb_add_usb_find_device_by_name.patch
diff --git a/target/linux/generic/patches-2.6.37/801-usb_serial_endpoint_size.patch b/target/linux/generic/patches-2.6.37/821-usb_serial_endpoint_size.patch
index 1646fdf1b1..1646fdf1b1 100644
--- a/target/linux/generic/patches-2.6.37/801-usb_serial_endpoint_size.patch
+++ b/target/linux/generic/patches-2.6.37/821-usb_serial_endpoint_size.patch
diff --git a/target/linux/generic/patches-2.6.37/400-ledtrig_morse.patch b/target/linux/generic/patches-2.6.37/830-ledtrig_morse.patch
index 8d90184556..62a90a4591 100644
--- a/target/linux/generic/patches-2.6.37/400-ledtrig_morse.patch
+++ b/target/linux/generic/patches-2.6.37/830-ledtrig_morse.patch
@@ -11,7 +11,7 @@
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -52,3 +52,4 @@ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) +=
+@@ -52,3 +52,4 @@ obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) +=
obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o
obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
diff --git a/target/linux/generic/patches-2.6.37/402-ledtrig_netdev.patch b/target/linux/generic/patches-2.6.37/831-ledtrig_netdev.patch
index 6406adac2a..5354aa187b 100644
--- a/target/linux/generic/patches-2.6.37/402-ledtrig_netdev.patch
+++ b/target/linux/generic/patches-2.6.37/831-ledtrig_netdev.patch
@@ -14,7 +14,7 @@
endif # NEW_LEDS
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
-@@ -53,3 +53,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) +=
+@@ -53,3 +53,4 @@ obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) +=
obj-$(CONFIG_LEDS_TRIGGER_GPIO) += ledtrig-gpio.o
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o
obj-$(CONFIG_LEDS_TRIGGER_MORSE) += ledtrig-morse.o
diff --git a/target/linux/generic/patches-2.6.37/403-ledtrig-usbdev.patch b/target/linux/generic/patches-2.6.37/832-ledtrig_usbdev.patch
index 25c6745f68..25c6745f68 100644
--- a/target/linux/generic/patches-2.6.37/403-ledtrig-usbdev.patch
+++ b/target/linux/generic/patches-2.6.37/832-ledtrig_usbdev.patch
diff --git a/target/linux/generic/patches-2.6.37/410-gpio_buttons.patch b/target/linux/generic/patches-2.6.37/833-gpio_buttons.patch
index dff731aac7..dff731aac7 100644
--- a/target/linux/generic/patches-2.6.37/410-gpio_buttons.patch
+++ b/target/linux/generic/patches-2.6.37/833-gpio_buttons.patch
diff --git a/target/linux/generic/patches-2.6.37/411-gpio_ioctl.patch b/target/linux/generic/patches-2.6.37/834-gpio_ioctl.patch
index 3b7063223e..6609a1670a 100644
--- a/target/linux/generic/patches-2.6.37/411-gpio_ioctl.patch
+++ b/target/linux/generic/patches-2.6.37/834-gpio_ioctl.patch
@@ -1,6 +1,6 @@
--- a/drivers/char/gpio_dev.c
+++ b/drivers/char/gpio_dev.c
-@@ -114,7 +114,7 @@ gpio_close(struct inode * inode, struct
+@@ -114,7 +114,7 @@ gpio_close(struct inode * inode, struct
}
struct file_operations gpio_fops = {
diff --git a/target/linux/generic/patches-2.6.37/420-gpiodev.patch b/target/linux/generic/patches-2.6.37/835-gpiodev.patch
index 690b5e6cd8..690b5e6cd8 100644
--- a/target/linux/generic/patches-2.6.37/420-gpiodev.patch
+++ b/target/linux/generic/patches-2.6.37/835-gpiodev.patch
diff --git a/target/linux/generic/patches-2.6.37/700-rtc7301.patch b/target/linux/generic/patches-2.6.37/840-rtc7301.patch
index 992d2f9484..992d2f9484 100644
--- a/target/linux/generic/patches-2.6.37/700-rtc7301.patch
+++ b/target/linux/generic/patches-2.6.37/840-rtc7301.patch
diff --git a/target/linux/generic/patches-2.6.37/750-glamo-headers.patch b/target/linux/generic/patches-2.6.37/850-glamo_headers.patch
index c0195f7659..c0195f7659 100644
--- a/target/linux/generic/patches-2.6.37/750-glamo-headers.patch
+++ b/target/linux/generic/patches-2.6.37/850-glamo_headers.patch
diff --git a/target/linux/generic/patches-2.6.37/920-01-hotpluggable-spi-gpio.patch b/target/linux/generic/patches-2.6.37/860-01_hotpluggable_spi_gpio.patch
index f8e6374fa7..f8e6374fa7 100644
--- a/target/linux/generic/patches-2.6.37/920-01-hotpluggable-spi-gpio.patch
+++ b/target/linux/generic/patches-2.6.37/860-01_hotpluggable_spi_gpio.patch
diff --git a/target/linux/generic/patches-2.6.37/920-04-spi-gpio-implement-spi-delay.patch b/target/linux/generic/patches-2.6.37/861-04_spi_gpio_implement_spi_delay.patch
index 4b145c2734..4b145c2734 100644
--- a/target/linux/generic/patches-2.6.37/920-04-spi-gpio-implement-spi-delay.patch
+++ b/target/linux/generic/patches-2.6.37/861-04_spi_gpio_implement_spi_delay.patch
diff --git a/target/linux/generic/patches-2.6.37/921-gpio_spi_driver.patch b/target/linux/generic/patches-2.6.37/862-gpio_spi_driver.patch
index 5405e8201d..5405e8201d 100644
--- a/target/linux/generic/patches-2.6.37/921-gpio_spi_driver.patch
+++ b/target/linux/generic/patches-2.6.37/862-gpio_spi_driver.patch
diff --git a/target/linux/generic/patches-2.6.37/922-gpiommc.patch b/target/linux/generic/patches-2.6.37/863-gpiommc.patch
index 9ae45b567f..9ae45b567f 100644
--- a/target/linux/generic/patches-2.6.37/922-gpiommc.patch
+++ b/target/linux/generic/patches-2.6.37/863-gpiommc.patch
diff --git a/target/linux/generic/patches-2.6.37/923-gpiommc-configfs-locking.patch b/target/linux/generic/patches-2.6.37/864-gpiommc_configfs_locking.patch
index 2e4e820b2b..2e4e820b2b 100644
--- a/target/linux/generic/patches-2.6.37/923-gpiommc-configfs-locking.patch
+++ b/target/linux/generic/patches-2.6.37/864-gpiommc_configfs_locking.patch
diff --git a/target/linux/generic/patches-2.6.37/975-hifn795x-byteswap.patch b/target/linux/generic/patches-2.6.37/870-hifn795x_byteswap.patch
index 3a37c951ec..3a37c951ec 100644
--- a/target/linux/generic/patches-2.6.37/975-hifn795x-byteswap.patch
+++ b/target/linux/generic/patches-2.6.37/870-hifn795x_byteswap.patch
diff --git a/target/linux/generic/patches-2.6.37/203-slab_maxsize.patch b/target/linux/generic/patches-2.6.37/900-slab_maxsize.patch
index fe8cecfc77..83fd6c3099 100644
--- a/target/linux/generic/patches-2.6.37/203-slab_maxsize.patch
+++ b/target/linux/generic/patches-2.6.37/900-slab_maxsize.patch
@@ -1,6 +1,6 @@
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
-@@ -130,8 +130,8 @@ int kmem_ptr_validate(struct kmem_cache
+@@ -130,8 +130,8 @@ int kmem_ptr_validate(struct kmem_cache
* to do various tricks to work around compiler limitations in order to
* ensure proper constant folding.
*/
diff --git a/target/linux/generic/patches-2.6.37/219-kobject_uevent.patch b/target/linux/generic/patches-2.6.37/910-kobject_uevent.patch
index f15749fa17..f15749fa17 100644
--- a/target/linux/generic/patches-2.6.37/219-kobject_uevent.patch
+++ b/target/linux/generic/patches-2.6.37/910-kobject_uevent.patch
diff --git a/target/linux/generic/patches-2.6.37/223-kobject-add-broadcast_uevent.patch b/target/linux/generic/patches-2.6.37/911-kobject_add_broadcast_uevent.patch
index 7b36ab6115..b3e4b6e7c7 100644
--- a/target/linux/generic/patches-2.6.37/223-kobject-add-broadcast_uevent.patch
+++ b/target/linux/generic/patches-2.6.37/911-kobject_add_broadcast_uevent.patch
@@ -20,7 +20,7 @@
#else
static inline int kobject_uevent(struct kobject *kobj,
enum kobject_action action)
-@@ -231,6 +237,16 @@ static inline int add_uevent_var(struct
+@@ -231,6 +237,16 @@ static inline int add_uevent_var(struct
static inline int kobject_action_type(const char *buf, size_t count,
enum kobject_action *type)
{ return -EINVAL; }
diff --git a/target/linux/generic/patches-2.6.37/840-unable_to_open_console.patch b/target/linux/generic/patches-2.6.37/920-unable_to_open_console.patch
index 8f1a4cb8ed..8f1a4cb8ed 100644
--- a/target/linux/generic/patches-2.6.37/840-unable_to_open_console.patch
+++ b/target/linux/generic/patches-2.6.37/920-unable_to_open_console.patch
diff --git a/target/linux/generic/patches-2.6.37/999-use_preinit_as_init.patch b/target/linux/generic/patches-2.6.37/921-use_preinit_as_init.patch
index e0a76229c1..e0a76229c1 100644
--- a/target/linux/generic/patches-2.6.37/999-use_preinit_as_init.patch
+++ b/target/linux/generic/patches-2.6.37/921-use_preinit_as_init.patch
diff --git a/target/linux/generic/patches-2.6.37/970-ocf_kbuild_integration.patch b/target/linux/generic/patches-2.6.37/940-ocf_kbuild_integration.patch
index 1e95858e46..1e95858e46 100644
--- a/target/linux/generic/patches-2.6.37/970-ocf_kbuild_integration.patch
+++ b/target/linux/generic/patches-2.6.37/940-ocf_kbuild_integration.patch
diff --git a/target/linux/generic/patches-2.6.37/971-ocf_20100325.patch b/target/linux/generic/patches-2.6.37/941-ocf_20100325.patch
index 410384c28f..a1c088a9a8 100644
--- a/target/linux/generic/patches-2.6.37/971-ocf_20100325.patch
+++ b/target/linux/generic/patches-2.6.37/941-ocf_20100325.patch
@@ -24,7 +24,7 @@
* All of these routines try to estimate how many bits of randomness a
* particular randomness source. They do this by keeping track of the
* first and second order deltas of the event timings.
-@@ -715,6 +725,61 @@ void add_disk_randomness(struct gendisk
+@@ -715,6 +725,61 @@ void add_disk_randomness(struct gendisk
}
#endif
diff --git a/target/linux/generic/patches-2.6.37/980-vm_exports.patch b/target/linux/generic/patches-2.6.37/950-vm_exports.patch
index ce49106660..ce49106660 100644
--- a/target/linux/generic/patches-2.6.37/980-vm_exports.patch
+++ b/target/linux/generic/patches-2.6.37/950-vm_exports.patch
diff --git a/target/linux/generic/patches-2.6.37/009-decompress_unlzo_fix.patch b/target/linux/generic/patches-2.6.37/960-decompress_unlzo_fix.patch
index 37e322ad8c..37e322ad8c 100644
--- a/target/linux/generic/patches-2.6.37/009-decompress_unlzo_fix.patch
+++ b/target/linux/generic/patches-2.6.37/960-decompress_unlzo_fix.patch