diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-04-16 18:31:05 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-04-16 18:31:05 +0000 |
commit | c19a05ddc769a8b14837218fea04fe8b5c887eee (patch) | |
tree | d0285c3b8b16f40ed39ca88a77e257f6443ecb57 /target | |
parent | 80a4ffa1e2bc5f3ef893251babb2371c502f04ad (diff) | |
download | master-187ad058-c19a05ddc769a8b14837218fea04fe8b5c887eee.tar.gz master-187ad058-c19a05ddc769a8b14837218fea04fe8b5c887eee.tar.bz2 master-187ad058-c19a05ddc769a8b14837218fea04fe8b5c887eee.zip |
kernel: reorganize 2.6.39 patches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26691 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r-- | target/linux/generic/patches-2.6.39/067-block2mtd_2.6.38_fix.patch | 35 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/100-overlayfs.patch (renamed from target/linux/generic/patches-2.6.39/209-overlayfs.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/200-fix_localversion.patch (renamed from target/linux/generic/patches-2.6.39/001-fix_localversion.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/201-extra_optimization.patch (renamed from target/linux/generic/patches-2.6.39/012-extra_optimization.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/210-darwin_scripts_include.patch (renamed from target/linux/generic/patches-2.6.39/902-darwin_scripts_include.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/211-stddef_include.patch (renamed from target/linux/generic/patches-2.6.39/903-stddef_include.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/220-module_exports.patch (renamed from target/linux/generic/patches-2.6.39/028-module_exports.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/230-openwrt_lzma_options.patch (renamed from target/linux/generic/patches-2.6.39/998-openwrt_lzma_options.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/250-netfilter_depends.patch (renamed from target/linux/generic/patches-2.6.39/180-netfilter_depends.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/251-sound_kconfig.patch (renamed from target/linux/generic/patches-2.6.39/220-sound_kconfig.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/252-mv_cesa_depends.patch (renamed from target/linux/generic/patches-2.6.39/972-mv_cesa_depends.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/253-ssb_b43_default_on.patch (renamed from target/linux/generic/patches-2.6.39/974-ssb_b43_default_on.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/254-textsearch_kconfig_hacks.patch (renamed from target/linux/generic/patches-2.6.39/977-textsearch_kconfig_hacks.patch) | 2 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/255-lib80211_kconfig_hacks.patch (renamed from target/linux/generic/patches-2.6.39/978-lib80211_kconfig_hacks.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/256-crypto_add_kconfig_prompts.patch (renamed from target/linux/generic/patches-2.6.39/979-crypto_add_kconfig_prompts.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/257-wireless_ext_kconfig_hack.patch (renamed from target/linux/generic/patches-2.6.39/981-wireless_ext_kconfig_hack.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/300-mips_expose_boot_raw.patch (renamed from target/linux/generic/patches-2.6.39/011-mips_expose_boot_raw.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/301-mips_image_cmdline_hack.patch (renamed from target/linux/generic/patches-2.6.39/021-mips_image_cmdline_hack.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/302-mips_use_generic_thread_info_allocator.patch (renamed from target/linux/generic/patches-2.6.39/022-mips_use_generic_thread_info_allocator.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/303-mips_fix_kexec.patch (renamed from target/linux/generic/patches-2.6.39/023-mips-fix-kexec.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/304-mips_disable_fpu.patch (renamed from target/linux/generic/patches-2.6.39/025-mips_disable_fpu.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/305-mips_module_reloc.patch (renamed from target/linux/generic/patches-2.6.39/027-mips_module_reloc.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/306-mips_mem_functions_performance.patch (renamed from target/linux/generic/patches-2.6.39/202-mips_mem_functions_performance.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/307-mips_oprofile_fix.patch (renamed from target/linux/generic/patches-2.6.39/208-mips_oprofile_fix.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/310-arm_module_unresolved_weak_sym.patch (renamed from target/linux/generic/patches-2.6.39/029-arm_module_unresolved_weak_sym.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/320-ppc4xx_optimization.patch (renamed from target/linux/generic/patches-2.6.39/991-ppc4xx_optimization.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/321-powerpc_crtsavres_prereq.patch (renamed from target/linux/generic/patches-2.6.39/950-powerpc_crtsavres_prereq.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/400-rootfs_split.patch (renamed from target/linux/generic/patches-2.6.39/065-rootfs_split.patch) | 290 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/401-partial_eraseblock_write.patch (renamed from target/linux/generic/patches-2.6.39/222-partial_eraseblock_write.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/410-mtd_info_move_forward_decl.patch (renamed from target/linux/generic/patches-2.6.39/082-mtd_info_move_forward_decl.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/420-redboot_space.patch (renamed from target/linux/generic/patches-2.6.39/070-redboot_space.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/421-redboot_boardconfig.patch (renamed from target/linux/generic/patches-2.6.39/071-redboot_boardconfig.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/430-mtd_myloader_partition_parser.patch (renamed from target/linux/generic/patches-2.6.39/081-mtd_myloader_partition_parser.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/440-block2mtd_init.patch (renamed from target/linux/generic/patches-2.6.39/060-block2mtd_init.patch) | 2 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/441-block2mtd_refresh.patch | 291 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/442-block2mtd_probe.patch (renamed from target/linux/generic/patches-2.6.39/066-block2mtd_probe.patch) | 4 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/450-mtd_plat_nand_chip_fixup.patch (renamed from target/linux/generic/patches-2.6.39/080-mtd_plat_nand_chip_fixup.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/451-mtd_fix_nand_correct_data_return_code.patch (renamed from target/linux/generic/patches-2.6.39/083-mtd_fix_nand_correct_data_return_code.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/460-cfi_show_amd_extended_table_version.patch (renamed from target/linux/generic/patches-2.6.39/014-cfi_show_amd_extended_table_version.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/470-mtd_m25p80_add_pm25lv_flash_support.patch (renamed from target/linux/generic/patches-2.6.39/084-mtd_m25p80_add_pm25lv_flash_support.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/472-mtd_m25p80_add_MX25L1606E_support.patch (renamed from target/linux/generic/patches-2.6.39/091-mtd-m25p80-add-MX25L1606E-support.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/500-yaffs_support.patch (renamed from target/linux/generic/patches-2.6.39/510-yaffs_support.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/501-yaffs_cvs_2009_04_24.patch (renamed from target/linux/generic/patches-2.6.39/511-yaffs-cvs-2009-04-24.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/502-yaffs_git_2010_10_20.patch (renamed from target/linux/generic/patches-2.6.39/511-yaffs-git-2010-10-20.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/503-yaffs_symlink_bug.patch (renamed from target/linux/generic/patches-2.6.39/512-yaffs_symlink_bug.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/504-yaffs_mutex_fix.patch (renamed from target/linux/generic/patches-2.6.39/513-yaffs_mutex_fix.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/510-jffs2_make_lzma_available.patch (renamed from target/linux/generic/patches-2.6.39/008-jffs2_make_lzma_available.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/511-debloat_lzma.patch (renamed from target/linux/generic/patches-2.6.39/010-debloat_lzma.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/512-jffs2_eofdetect.patch (renamed from target/linux/generic/patches-2.6.39/204-jffs2_eofdetect.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/520-squashfs_update_xz_comp_opts.patch (renamed from target/linux/generic/patches-2.6.39/550-squashfs_update_xz_comp_opts.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/600-netfilter_layer7_2.22.patch (renamed from target/linux/generic/patches-2.6.39/100-netfilter_layer7_2.22.patch) | 2 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/601-netfilter_layer7_pktmatch.patch (renamed from target/linux/generic/patches-2.6.39/101-netfilter_layer7_pktmatch.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/602-netfilter_layer7_match.patch (renamed from target/linux/generic/patches-2.6.39/102-netfilter_layer7_match.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/603-netfilter_layer7_2.6.36_fix.patch (renamed from target/linux/generic/patches-2.6.39/103-netfilter_layer7_2.6.36_fix.patch) | 4 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/604-netfilter_cisco_794x_iphone.patch (renamed from target/linux/generic/patches-2.6.39/160-netfilter_cisco_794x_iphone.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/605-netfilter_rtsp.patch (renamed from target/linux/generic/patches-2.6.39/190-netfilter_rtsp.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/620-sched_esfq.patch (renamed from target/linux/generic/patches-2.6.39/200-sched_esfq.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/621-sched_act_connmark.patch (renamed from target/linux/generic/patches-2.6.39/290-sched_act_connmark.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/630-packet_socket_type.patch (renamed from target/linux/generic/patches-2.6.39/240-packet_socket_type.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/640-bridge_no_eap_forward.patch (renamed from target/linux/generic/patches-2.6.39/270-bridge_no_eap_forward.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/641-bridge_always_accept_eap.patch (renamed from target/linux/generic/patches-2.6.39/271-bridge_always_accept_eap.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/642-bridge_port_isolate.patch (renamed from target/linux/generic/patches-2.6.39/300-bridge_port_isolate.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/650-pppoe_header_pad.patch (renamed from target/linux/generic/patches-2.6.39/250-pppoe_header_pad.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/651-wireless_mesh_header.patch (renamed from target/linux/generic/patches-2.6.39/940-wireless_mesh_header.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/700-swconfig.patch (renamed from target/linux/generic/patches-2.6.39/650-swconfig.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/701-phy_extension.patch (renamed from target/linux/generic/patches-2.6.39/600-phy_extension.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/702-phy_add_aneg_done_function.patch (renamed from target/linux/generic/patches-2.6.39/601-phy-add-aneg-done-function.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/720-phy_adm6996.patch (renamed from target/linux/generic/patches-2.6.39/620-phy_adm6996.patch) | 4 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/721-phy_packets.patch (renamed from target/linux/generic/patches-2.6.39/630-phy_packets.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/722-phy_mvswitch.patch (renamed from target/linux/generic/patches-2.6.39/660-phy_mvswitch.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/723-phy_ip175c.patch (renamed from target/linux/generic/patches-2.6.39/670-phy_ip175c.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/724-phy_ar8216.patch (renamed from target/linux/generic/patches-2.6.39/680-phy_ar8216.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/725-phy_rtl8306.patch (renamed from target/linux/generic/patches-2.6.39/690-phy_rtl8306.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/726-phy_rtl8366.patch (renamed from target/linux/generic/patches-2.6.39/691-phy_rtl8366.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/750-hostap_txpower.patch (renamed from target/linux/generic/patches-2.6.39/903-hostap_txpower.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/810-pci_disable_common_quirks.patch (renamed from target/linux/generic/patches-2.6.39/030-pci_disable_common_quirks.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/811-pci_disable_usb_common_quirks.patch (renamed from target/linux/generic/patches-2.6.39/031-pci_disable_usb_common_quirks.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/820-usb_add_usb_find_device_by_name.patch (renamed from target/linux/generic/patches-2.6.39/310-usb-add-usb_find_device_by_name.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/821-usb_serial_endpoint_size.patch (renamed from target/linux/generic/patches-2.6.39/801-usb_serial_endpoint_size.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/830-ledtrig_morse.patch (renamed from target/linux/generic/patches-2.6.39/400-ledtrig_morse.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/831-ledtrig_netdev.patch (renamed from target/linux/generic/patches-2.6.39/402-ledtrig_netdev.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/832-ledtrig_usbdev.patch (renamed from target/linux/generic/patches-2.6.39/403-ledtrig-usbdev.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/833-gpio_buttons.patch (renamed from target/linux/generic/patches-2.6.39/410-gpio_buttons.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/834-gpio_ioctl.patch (renamed from target/linux/generic/patches-2.6.39/411-gpio_ioctl.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/835-gpiodev.patch (renamed from target/linux/generic/patches-2.6.39/420-gpiodev.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/840-rtc7301.patch (renamed from target/linux/generic/patches-2.6.39/700-rtc7301.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/850-glamo_headers.patch (renamed from target/linux/generic/patches-2.6.39/750-glamo-headers.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/860-01_hotpluggable_spi_gpio.patch (renamed from target/linux/generic/patches-2.6.39/920-01-hotpluggable-spi-gpio.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/861-04_spi_gpio_implement_spi_delay.patch (renamed from target/linux/generic/patches-2.6.39/920-04-spi-gpio-implement-spi-delay.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/862-gpio_spi_driver.patch (renamed from target/linux/generic/patches-2.6.39/921-gpio_spi_driver.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/863-gpiommc.patch (renamed from target/linux/generic/patches-2.6.39/922-gpiommc.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/864-gpiommc_configfs_locking.patch (renamed from target/linux/generic/patches-2.6.39/923-gpiommc-configfs-locking.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/870-hifn795x_byteswap.patch (renamed from target/linux/generic/patches-2.6.39/975-hifn795x-byteswap.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/900-slab_maxsize.patch (renamed from target/linux/generic/patches-2.6.39/203-slab_maxsize.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/910-kobject_uevent.patch (renamed from target/linux/generic/patches-2.6.39/219-kobject_uevent.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/911-kobject_add_broadcast_uevent.patch (renamed from target/linux/generic/patches-2.6.39/223-kobject-add-broadcast_uevent.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/920-unable_to_open_console.patch (renamed from target/linux/generic/patches-2.6.39/840-unable_to_open_console.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/921-use_preinit_as_init.patch (renamed from target/linux/generic/patches-2.6.39/999-use_preinit_as_init.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/940-ocf_kbuild_integration.patch (renamed from target/linux/generic/patches-2.6.39/970-ocf_kbuild_integration.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/941-ocf_20100325.patch (renamed from target/linux/generic/patches-2.6.39/971-ocf_20100325.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/950-vm_exports.patch (renamed from target/linux/generic/patches-2.6.39/980-vm_exports.patch) | 0 | ||||
-rw-r--r-- | target/linux/generic/patches-2.6.39/960-decompress_unlzo_fix.patch (renamed from target/linux/generic/patches-2.6.39/009-decompress_unlzo_fix.patch) | 0 |
102 files changed, 300 insertions, 334 deletions
diff --git a/target/linux/generic/patches-2.6.39/067-block2mtd_2.6.38_fix.patch b/target/linux/generic/patches-2.6.39/067-block2mtd_2.6.38_fix.patch deleted file mode 100644 index 1a052b3f43..0000000000 --- a/target/linux/generic/patches-2.6.39/067-block2mtd_2.6.38_fix.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/drivers/mtd/devices/block2mtd.c -+++ b/drivers/mtd/devices/block2mtd.c -@@ -264,12 +264,13 @@ static int _open_bdev(struct block2mtd_d - bdev = blkdev_get_by_path(dev->devname, mode, dev); - #ifndef MODULE - if (IS_ERR(bdev)) { -+ dev_t devt; - - /* We might not have rootfs mounted at this point. Try - to resolve the device name by other means. */ - - wait_for_device_probe(); -- dev_t devt = name_to_dev_t(dev->devname); -+ devt = name_to_dev_t(dev->devname); - if (devt) - bdev = blkdev_get_by_dev(devt, mode, dev); - } -@@ -330,7 +331,7 @@ static int block2mtd_refresh(struct mtd_ - _close_bdev(dev); - - /* open the whole disk, issue a partition rescan, then */ -- bdev = blkdev_get_by_dev(devt, FMODE_WRITE | FMODE_READ); -+ bdev = blkdev_get_by_dev(devt, FMODE_WRITE | FMODE_READ, mtd); - if (!bdev || !bdev->bd_disk) - err = -EINVAL; - #ifndef CONFIG_MTD_BLOCK2MTD_MODULE -@@ -395,7 +396,7 @@ static struct block2mtd_dev *add_device( - dev->mtd.refresh_device = block2mtd_refresh; - - part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL); -- part->name = dev->mtd.name; -+ part->name = name; - part->offset = 0; - part->size = dev->mtd.size; - if (add_mtd_partitions(&dev->mtd, part, 1)) { diff --git a/target/linux/generic/patches-2.6.39/209-overlayfs.patch b/target/linux/generic/patches-2.6.39/100-overlayfs.patch index b5c9199075..b5c9199075 100644 --- a/target/linux/generic/patches-2.6.39/209-overlayfs.patch +++ b/target/linux/generic/patches-2.6.39/100-overlayfs.patch diff --git a/target/linux/generic/patches-2.6.39/001-fix_localversion.patch b/target/linux/generic/patches-2.6.39/200-fix_localversion.patch index 0d1bae8d45..0d1bae8d45 100644 --- a/target/linux/generic/patches-2.6.39/001-fix_localversion.patch +++ b/target/linux/generic/patches-2.6.39/200-fix_localversion.patch diff --git a/target/linux/generic/patches-2.6.39/012-extra_optimization.patch b/target/linux/generic/patches-2.6.39/201-extra_optimization.patch index 8039c66523..8039c66523 100644 --- a/target/linux/generic/patches-2.6.39/012-extra_optimization.patch +++ b/target/linux/generic/patches-2.6.39/201-extra_optimization.patch diff --git a/target/linux/generic/patches-2.6.39/902-darwin_scripts_include.patch b/target/linux/generic/patches-2.6.39/210-darwin_scripts_include.patch index 0686a38973..0686a38973 100644 --- a/target/linux/generic/patches-2.6.39/902-darwin_scripts_include.patch +++ b/target/linux/generic/patches-2.6.39/210-darwin_scripts_include.patch diff --git a/target/linux/generic/patches-2.6.39/903-stddef_include.patch b/target/linux/generic/patches-2.6.39/211-stddef_include.patch index 7fe248d8d3..7fe248d8d3 100644 --- a/target/linux/generic/patches-2.6.39/903-stddef_include.patch +++ b/target/linux/generic/patches-2.6.39/211-stddef_include.patch diff --git a/target/linux/generic/patches-2.6.39/028-module_exports.patch b/target/linux/generic/patches-2.6.39/220-module_exports.patch index 8a95743a4b..8a95743a4b 100644 --- a/target/linux/generic/patches-2.6.39/028-module_exports.patch +++ b/target/linux/generic/patches-2.6.39/220-module_exports.patch diff --git a/target/linux/generic/patches-2.6.39/998-openwrt_lzma_options.patch b/target/linux/generic/patches-2.6.39/230-openwrt_lzma_options.patch index 67e0ceefb0..67e0ceefb0 100644 --- a/target/linux/generic/patches-2.6.39/998-openwrt_lzma_options.patch +++ b/target/linux/generic/patches-2.6.39/230-openwrt_lzma_options.patch diff --git a/target/linux/generic/patches-2.6.39/180-netfilter_depends.patch b/target/linux/generic/patches-2.6.39/250-netfilter_depends.patch index 656046024f..656046024f 100644 --- a/target/linux/generic/patches-2.6.39/180-netfilter_depends.patch +++ b/target/linux/generic/patches-2.6.39/250-netfilter_depends.patch diff --git a/target/linux/generic/patches-2.6.39/220-sound_kconfig.patch b/target/linux/generic/patches-2.6.39/251-sound_kconfig.patch index fb3df254dc..fb3df254dc 100644 --- a/target/linux/generic/patches-2.6.39/220-sound_kconfig.patch +++ b/target/linux/generic/patches-2.6.39/251-sound_kconfig.patch diff --git a/target/linux/generic/patches-2.6.39/972-mv_cesa_depends.patch b/target/linux/generic/patches-2.6.39/252-mv_cesa_depends.patch index 1fd2f6365a..1fd2f6365a 100644 --- a/target/linux/generic/patches-2.6.39/972-mv_cesa_depends.patch +++ b/target/linux/generic/patches-2.6.39/252-mv_cesa_depends.patch diff --git a/target/linux/generic/patches-2.6.39/974-ssb_b43_default_on.patch b/target/linux/generic/patches-2.6.39/253-ssb_b43_default_on.patch index 3176dcb4d8..3176dcb4d8 100644 --- a/target/linux/generic/patches-2.6.39/974-ssb_b43_default_on.patch +++ b/target/linux/generic/patches-2.6.39/253-ssb_b43_default_on.patch diff --git a/target/linux/generic/patches-2.6.39/977-textsearch_kconfig_hacks.patch b/target/linux/generic/patches-2.6.39/254-textsearch_kconfig_hacks.patch index e4d1909ea3..2bb01f77ee 100644 --- a/target/linux/generic/patches-2.6.39/977-textsearch_kconfig_hacks.patch +++ b/target/linux/generic/patches-2.6.39/254-textsearch_kconfig_hacks.patch @@ -1,6 +1,6 @@ --- a/lib/Kconfig +++ b/lib/Kconfig -@@ -206,16 +206,16 @@ config BCH_CONST_T +@@ -200,16 +200,16 @@ config BCH_CONST_T # Textsearch support is select'ed if needed # config TEXTSEARCH diff --git a/target/linux/generic/patches-2.6.39/978-lib80211_kconfig_hacks.patch b/target/linux/generic/patches-2.6.39/255-lib80211_kconfig_hacks.patch index c044deac00..c044deac00 100644 --- a/target/linux/generic/patches-2.6.39/978-lib80211_kconfig_hacks.patch +++ b/target/linux/generic/patches-2.6.39/255-lib80211_kconfig_hacks.patch diff --git a/target/linux/generic/patches-2.6.39/979-crypto_add_kconfig_prompts.patch b/target/linux/generic/patches-2.6.39/256-crypto_add_kconfig_prompts.patch index 8462c711f0..8462c711f0 100644 --- a/target/linux/generic/patches-2.6.39/979-crypto_add_kconfig_prompts.patch +++ b/target/linux/generic/patches-2.6.39/256-crypto_add_kconfig_prompts.patch diff --git a/target/linux/generic/patches-2.6.39/981-wireless_ext_kconfig_hack.patch b/target/linux/generic/patches-2.6.39/257-wireless_ext_kconfig_hack.patch index daac5898ae..daac5898ae 100644 --- a/target/linux/generic/patches-2.6.39/981-wireless_ext_kconfig_hack.patch +++ b/target/linux/generic/patches-2.6.39/257-wireless_ext_kconfig_hack.patch diff --git a/target/linux/generic/patches-2.6.39/011-mips_expose_boot_raw.patch b/target/linux/generic/patches-2.6.39/300-mips_expose_boot_raw.patch index 0be7b74de1..0be7b74de1 100644 --- a/target/linux/generic/patches-2.6.39/011-mips_expose_boot_raw.patch +++ b/target/linux/generic/patches-2.6.39/300-mips_expose_boot_raw.patch diff --git a/target/linux/generic/patches-2.6.39/021-mips_image_cmdline_hack.patch b/target/linux/generic/patches-2.6.39/301-mips_image_cmdline_hack.patch index ab5e775cc6..ab5e775cc6 100644 --- a/target/linux/generic/patches-2.6.39/021-mips_image_cmdline_hack.patch +++ b/target/linux/generic/patches-2.6.39/301-mips_image_cmdline_hack.patch diff --git a/target/linux/generic/patches-2.6.39/022-mips_use_generic_thread_info_allocator.patch b/target/linux/generic/patches-2.6.39/302-mips_use_generic_thread_info_allocator.patch index 1bcc74b41a..1bcc74b41a 100644 --- a/target/linux/generic/patches-2.6.39/022-mips_use_generic_thread_info_allocator.patch +++ b/target/linux/generic/patches-2.6.39/302-mips_use_generic_thread_info_allocator.patch diff --git a/target/linux/generic/patches-2.6.39/023-mips-fix-kexec.patch b/target/linux/generic/patches-2.6.39/303-mips_fix_kexec.patch index e6928dde91..e6928dde91 100644 --- a/target/linux/generic/patches-2.6.39/023-mips-fix-kexec.patch +++ b/target/linux/generic/patches-2.6.39/303-mips_fix_kexec.patch diff --git a/target/linux/generic/patches-2.6.39/025-mips_disable_fpu.patch b/target/linux/generic/patches-2.6.39/304-mips_disable_fpu.patch index 520a5188c8..520a5188c8 100644 --- a/target/linux/generic/patches-2.6.39/025-mips_disable_fpu.patch +++ b/target/linux/generic/patches-2.6.39/304-mips_disable_fpu.patch diff --git a/target/linux/generic/patches-2.6.39/027-mips_module_reloc.patch b/target/linux/generic/patches-2.6.39/305-mips_module_reloc.patch index 5513962cb2..5513962cb2 100644 --- a/target/linux/generic/patches-2.6.39/027-mips_module_reloc.patch +++ b/target/linux/generic/patches-2.6.39/305-mips_module_reloc.patch diff --git a/target/linux/generic/patches-2.6.39/202-mips_mem_functions_performance.patch b/target/linux/generic/patches-2.6.39/306-mips_mem_functions_performance.patch index 6ea9ba51ee..6ea9ba51ee 100644 --- a/target/linux/generic/patches-2.6.39/202-mips_mem_functions_performance.patch +++ b/target/linux/generic/patches-2.6.39/306-mips_mem_functions_performance.patch diff --git a/target/linux/generic/patches-2.6.39/208-mips_oprofile_fix.patch b/target/linux/generic/patches-2.6.39/307-mips_oprofile_fix.patch index f83c96bb81..f83c96bb81 100644 --- a/target/linux/generic/patches-2.6.39/208-mips_oprofile_fix.patch +++ b/target/linux/generic/patches-2.6.39/307-mips_oprofile_fix.patch diff --git a/target/linux/generic/patches-2.6.39/029-arm_module_unresolved_weak_sym.patch b/target/linux/generic/patches-2.6.39/310-arm_module_unresolved_weak_sym.patch index c63ff67688..c63ff67688 100644 --- a/target/linux/generic/patches-2.6.39/029-arm_module_unresolved_weak_sym.patch +++ b/target/linux/generic/patches-2.6.39/310-arm_module_unresolved_weak_sym.patch diff --git a/target/linux/generic/patches-2.6.39/991-ppc4xx_optimization.patch b/target/linux/generic/patches-2.6.39/320-ppc4xx_optimization.patch index 49d3659286..49d3659286 100644 --- a/target/linux/generic/patches-2.6.39/991-ppc4xx_optimization.patch +++ b/target/linux/generic/patches-2.6.39/320-ppc4xx_optimization.patch diff --git a/target/linux/generic/patches-2.6.39/950-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-2.6.39/321-powerpc_crtsavres_prereq.patch index e1a141b4fe..e1a141b4fe 100644 --- a/target/linux/generic/patches-2.6.39/950-powerpc_crtsavres_prereq.patch +++ b/target/linux/generic/patches-2.6.39/321-powerpc_crtsavres_prereq.patch diff --git a/target/linux/generic/patches-2.6.39/065-rootfs_split.patch b/target/linux/generic/patches-2.6.39/400-rootfs_split.patch index 081a1b4f01..45072bab22 100644 --- a/target/linux/generic/patches-2.6.39/065-rootfs_split.patch +++ b/target/linux/generic/patches-2.6.39/400-rootfs_split.patch @@ -256,296 +256,6 @@ 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,33 +246,109 @@ static int block2mtd_write(struct mtd_in - static void block2mtd_sync(struct mtd_info *mtd) - { - struct block2mtd_dev *dev = mtd->priv; -+ read_lock(&dev->bdev_mutex); -+ if (dev->blkdev) - sync_blockdev(dev->blkdev); -+ read_unlock(&dev->bdev_mutex); -+ - return; - } - - -+static int _open_bdev(struct block2mtd_dev *dev) -+{ -+ const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL; -+ struct block_device *bdev; -+ -+ /* Get a handle on the device */ -+ bdev = blkdev_get_by_path(dev->devname, mode, dev); -+#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(dev->devname); -+ if (devt) -+ bdev = blkdev_get_by_dev(devt, mode, dev); -+ } -+#endif -+ -+ if (IS_ERR(bdev)) { -+ 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"); -+ 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); -+ blkdev_put(dev->blkdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); -+ dev->blkdev = NULL; -+} -+ - 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); -- blkdev_put(dev->blkdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); -- } -- -+ _close_bdev(dev); - kfree(dev); - } - - --/* FIXME: ensure that mtd->size % erase_size == 0 */ --static struct block2mtd_dev *add_device(char *devname, int erase_size, const char *mtdname) -+static int block2mtd_refresh(struct mtd_info *mtd) - { -- const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL; -+ 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 = blkdev_get_by_dev(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) -+ blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); -+ -+ /* 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; -@@ -244,36 +356,17 @@ static struct block2mtd_dev *add_device( - if (!devname) - return NULL; - -- dev = kzalloc(sizeof(struct block2mtd_dev), GFP_KERNEL); -+ dev = kzalloc(sizeof(struct block2mtd_dev) + strlen(devname) + 1, GFP_KERNEL); - if (!dev) - return NULL; - -- /* Get a handle on the device */ -- bdev = blkdev_get_by_path(devname, mode, dev); --#ifndef MODULE -- if (IS_ERR(bdev)) { -- -- /* We might not have rootfs mounted at this point. Try -- to resolve the device name by other means. */ -+ strcpy(dev->devname, devname); - -- dev_t devt = name_to_dev_t(devname); -- if (devt) -- bdev = blkdev_get_by_dev(devt, mode, dev); -- } --#endif -- -- if (IS_ERR(bdev)) { -- ERROR("error: cannot open device %s", devname); -+ if (_open_bdev(dev)) - goto devinit_err; -- } -- 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; -- } - - mutex_init(&dev->write_mutex); -+ rwlock_init(&dev->bdev_mutex); - - /* Setup the MTD structure */ - /* make the name contain the block device in */ -@@ -298,6 +391,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, diff --git a/target/linux/generic/patches-2.6.39/222-partial_eraseblock_write.patch b/target/linux/generic/patches-2.6.39/401-partial_eraseblock_write.patch index 873c0d1cb1..873c0d1cb1 100644 --- a/target/linux/generic/patches-2.6.39/222-partial_eraseblock_write.patch +++ b/target/linux/generic/patches-2.6.39/401-partial_eraseblock_write.patch diff --git a/target/linux/generic/patches-2.6.39/082-mtd_info_move_forward_decl.patch b/target/linux/generic/patches-2.6.39/410-mtd_info_move_forward_decl.patch index 13f0a217d4..13f0a217d4 100644 --- a/target/linux/generic/patches-2.6.39/082-mtd_info_move_forward_decl.patch +++ b/target/linux/generic/patches-2.6.39/410-mtd_info_move_forward_decl.patch diff --git a/target/linux/generic/patches-2.6.39/070-redboot_space.patch b/target/linux/generic/patches-2.6.39/420-redboot_space.patch index fb6700b07e..fb6700b07e 100644 --- a/target/linux/generic/patches-2.6.39/070-redboot_space.patch +++ b/target/linux/generic/patches-2.6.39/420-redboot_space.patch diff --git a/target/linux/generic/patches-2.6.39/071-redboot_boardconfig.patch b/target/linux/generic/patches-2.6.39/421-redboot_boardconfig.patch index 9188cee29c..9188cee29c 100644 --- a/target/linux/generic/patches-2.6.39/071-redboot_boardconfig.patch +++ b/target/linux/generic/patches-2.6.39/421-redboot_boardconfig.patch diff --git a/target/linux/generic/patches-2.6.39/081-mtd_myloader_partition_parser.patch b/target/linux/generic/patches-2.6.39/430-mtd_myloader_partition_parser.patch index 07267eaa29..07267eaa29 100644 --- a/target/linux/generic/patches-2.6.39/081-mtd_myloader_partition_parser.patch +++ b/target/linux/generic/patches-2.6.39/430-mtd_myloader_partition_parser.patch diff --git a/target/linux/generic/patches-2.6.39/060-block2mtd_init.patch b/target/linux/generic/patches-2.6.39/440-block2mtd_init.patch index b0a95a1bd7..04dd40893d 100644 --- a/target/linux/generic/patches-2.6.39/060-block2mtd_init.patch +++ b/target/linux/generic/patches-2.6.39/440-block2mtd_init.patch @@ -47,7 +47,7 @@ - if (add_mtd_device(&dev->mtd)) { + part = kzalloc(sizeof(struct mtd_partition), GFP_KERNEL); -+ part->name = dev->mtd.name; ++ part->name = name; + part->offset = 0; + part->size = dev->mtd.size; + if (add_mtd_partitions(&dev->mtd, part, 1)) { diff --git a/target/linux/generic/patches-2.6.39/441-block2mtd_refresh.patch b/target/linux/generic/patches-2.6.39/441-block2mtd_refresh.patch new file mode 100644 index 0000000000..24ee22f5f6 --- /dev/null +++ b/target/linux/generic/patches-2.6.39/441-block2mtd_refresh.patch @@ -0,0 +1,291 @@ +--- 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,33 +246,110 @@ static int block2mtd_write(struct mtd_in + static void block2mtd_sync(struct mtd_info *mtd) + { + struct block2mtd_dev *dev = mtd->priv; ++ read_lock(&dev->bdev_mutex); ++ if (dev->blkdev) + sync_blockdev(dev->blkdev); ++ read_unlock(&dev->bdev_mutex); ++ + return; + } + + ++static int _open_bdev(struct block2mtd_dev *dev) ++{ ++ const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL; ++ struct block_device *bdev; ++ ++ /* Get a handle on the device */ ++ bdev = blkdev_get_by_path(dev->devname, mode, dev); ++#ifndef MODULE ++ if (IS_ERR(bdev)) { ++ dev_t devt; ++ ++ /* We might not have rootfs mounted at this point. Try ++ to resolve the device name by other means. */ ++ ++ devt = name_to_dev_t(dev->devname); ++ if (devt) ++ bdev = blkdev_get_by_dev(devt, mode, dev); ++ } ++#endif ++ ++ if (IS_ERR(bdev)) { ++ 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"); ++ 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); ++ blkdev_put(dev->blkdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); ++ dev->blkdev = NULL; ++} ++ + 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); +- blkdev_put(dev->blkdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); +- } +- ++ _close_bdev(dev); + kfree(dev); + } + + +-/* FIXME: ensure that mtd->size % erase_size == 0 */ +-static struct block2mtd_dev *add_device(char *devname, int erase_size, const char *mtdname) ++static int block2mtd_refresh(struct mtd_info *mtd) + { +- const fmode_t mode = FMODE_READ | FMODE_WRITE | FMODE_EXCL; ++ 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 = blkdev_get_by_dev(devt, FMODE_WRITE | FMODE_READ, mtd); ++ if (!bdev || !bdev->bd_disk) ++ err = -EINVAL; ++#ifndef CONFIG_MTD_BLOCK2MTD_MODULE ++ else ++ err = rescan_partitions(bdev->bd_disk, bdev); ++#endif ++ if (bdev) ++ blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); ++ ++ /* 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; +@@ -244,36 +357,17 @@ static struct block2mtd_dev *add_device( + if (!devname) + return NULL; + +- dev = kzalloc(sizeof(struct block2mtd_dev), GFP_KERNEL); ++ dev = kzalloc(sizeof(struct block2mtd_dev) + strlen(devname) + 1, GFP_KERNEL); + if (!dev) + return NULL; + +- /* Get a handle on the device */ +- bdev = blkdev_get_by_path(devname, mode, dev); +-#ifndef MODULE +- if (IS_ERR(bdev)) { +- +- /* We might not have rootfs mounted at this point. Try +- to resolve the device name by other means. */ ++ strcpy(dev->devname, devname); + +- dev_t devt = name_to_dev_t(devname); +- if (devt) +- bdev = blkdev_get_by_dev(devt, mode, dev); +- } +-#endif +- +- if (IS_ERR(bdev)) { +- ERROR("error: cannot open device %s", devname); ++ if (_open_bdev(dev)) + goto devinit_err; +- } +- 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; +- } + + 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 = name; diff --git a/target/linux/generic/patches-2.6.39/066-block2mtd_probe.patch b/target/linux/generic/patches-2.6.39/442-block2mtd_probe.patch index 1afd2ff20a..780dd28fd2 100644 --- a/target/linux/generic/patches-2.6.39/066-block2mtd_probe.patch +++ b/target/linux/generic/patches-2.6.39/442-block2mtd_probe.patch @@ -1,10 +1,10 @@ --- a/drivers/mtd/devices/block2mtd.c +++ b/drivers/mtd/devices/block2mtd.c -@@ -268,6 +268,7 @@ static int _open_bdev(struct block2mtd_d +@@ -269,6 +269,7 @@ static int _open_bdev(struct block2mtd_d /* We might not have rootfs mounted at this point. Try to resolve the device name by other means. */ + wait_for_device_probe(); - dev_t devt = name_to_dev_t(dev->devname); + devt = name_to_dev_t(dev->devname); if (devt) bdev = blkdev_get_by_dev(devt, mode, dev); diff --git a/target/linux/generic/patches-2.6.39/080-mtd_plat_nand_chip_fixup.patch b/target/linux/generic/patches-2.6.39/450-mtd_plat_nand_chip_fixup.patch index 0774e8389f..0774e8389f 100644 --- a/target/linux/generic/patches-2.6.39/080-mtd_plat_nand_chip_fixup.patch +++ b/target/linux/generic/patches-2.6.39/450-mtd_plat_nand_chip_fixup.patch diff --git a/target/linux/generic/patches-2.6.39/083-mtd_fix_nand_correct_data_return_code.patch b/target/linux/generic/patches-2.6.39/451-mtd_fix_nand_correct_data_return_code.patch index f630059e87..f630059e87 100644 --- a/target/linux/generic/patches-2.6.39/083-mtd_fix_nand_correct_data_return_code.patch +++ b/target/linux/generic/patches-2.6.39/451-mtd_fix_nand_correct_data_return_code.patch diff --git a/target/linux/generic/patches-2.6.39/014-cfi_show_amd_extended_table_version.patch b/target/linux/generic/patches-2.6.39/460-cfi_show_amd_extended_table_version.patch index ecd5c94c90..ecd5c94c90 100644 --- a/target/linux/generic/patches-2.6.39/014-cfi_show_amd_extended_table_version.patch +++ b/target/linux/generic/patches-2.6.39/460-cfi_show_amd_extended_table_version.patch diff --git a/target/linux/generic/patches-2.6.39/084-mtd_m25p80_add_pm25lv_flash_support.patch b/target/linux/generic/patches-2.6.39/470-mtd_m25p80_add_pm25lv_flash_support.patch index ae4f922190..ae4f922190 100644 --- a/target/linux/generic/patches-2.6.39/084-mtd_m25p80_add_pm25lv_flash_support.patch +++ b/target/linux/generic/patches-2.6.39/470-mtd_m25p80_add_pm25lv_flash_support.patch diff --git a/target/linux/generic/patches-2.6.39/091-mtd-m25p80-add-MX25L1606E-support.patch b/target/linux/generic/patches-2.6.39/472-mtd_m25p80_add_MX25L1606E_support.patch index b5937a3557..b5937a3557 100644 --- a/target/linux/generic/patches-2.6.39/091-mtd-m25p80-add-MX25L1606E-support.patch +++ b/target/linux/generic/patches-2.6.39/472-mtd_m25p80_add_MX25L1606E_support.patch diff --git a/target/linux/generic/patches-2.6.39/510-yaffs_support.patch b/target/linux/generic/patches-2.6.39/500-yaffs_support.patch index 51ef4fcd3c..51ef4fcd3c 100644 --- a/target/linux/generic/patches-2.6.39/510-yaffs_support.patch +++ b/target/linux/generic/patches-2.6.39/500-yaffs_support.patch diff --git a/target/linux/generic/patches-2.6.39/511-yaffs-cvs-2009-04-24.patch b/target/linux/generic/patches-2.6.39/501-yaffs_cvs_2009_04_24.patch index 5c70e79a05..5c70e79a05 100644 --- a/target/linux/generic/patches-2.6.39/511-yaffs-cvs-2009-04-24.patch +++ b/target/linux/generic/patches-2.6.39/501-yaffs_cvs_2009_04_24.patch diff --git a/target/linux/generic/patches-2.6.39/511-yaffs-git-2010-10-20.patch b/target/linux/generic/patches-2.6.39/502-yaffs_git_2010_10_20.patch index 2f4e6ef83b..2f4e6ef83b 100644 --- a/target/linux/generic/patches-2.6.39/511-yaffs-git-2010-10-20.patch +++ b/target/linux/generic/patches-2.6.39/502-yaffs_git_2010_10_20.patch diff --git a/target/linux/generic/patches-2.6.39/512-yaffs_symlink_bug.patch b/target/linux/generic/patches-2.6.39/503-yaffs_symlink_bug.patch index dabf2871bf..dabf2871bf 100644 --- a/target/linux/generic/patches-2.6.39/512-yaffs_symlink_bug.patch +++ b/target/linux/generic/patches-2.6.39/503-yaffs_symlink_bug.patch diff --git a/target/linux/generic/patches-2.6.39/513-yaffs_mutex_fix.patch b/target/linux/generic/patches-2.6.39/504-yaffs_mutex_fix.patch index b34b12f785..b34b12f785 100644 --- a/target/linux/generic/patches-2.6.39/513-yaffs_mutex_fix.patch +++ b/target/linux/generic/patches-2.6.39/504-yaffs_mutex_fix.patch diff --git a/target/linux/generic/patches-2.6.39/008-jffs2_make_lzma_available.patch b/target/linux/generic/patches-2.6.39/510-jffs2_make_lzma_available.patch index a1be392941..a1be392941 100644 --- a/target/linux/generic/patches-2.6.39/008-jffs2_make_lzma_available.patch +++ b/target/linux/generic/patches-2.6.39/510-jffs2_make_lzma_available.patch diff --git a/target/linux/generic/patches-2.6.39/010-debloat_lzma.patch b/target/linux/generic/patches-2.6.39/511-debloat_lzma.patch index 18e4a51ee3..18e4a51ee3 100644 --- a/target/linux/generic/patches-2.6.39/010-debloat_lzma.patch +++ b/target/linux/generic/patches-2.6.39/511-debloat_lzma.patch diff --git a/target/linux/generic/patches-2.6.39/204-jffs2_eofdetect.patch b/target/linux/generic/patches-2.6.39/512-jffs2_eofdetect.patch index eaf9489d35..eaf9489d35 100644 --- a/target/linux/generic/patches-2.6.39/204-jffs2_eofdetect.patch +++ b/target/linux/generic/patches-2.6.39/512-jffs2_eofdetect.patch diff --git a/target/linux/generic/patches-2.6.39/550-squashfs_update_xz_comp_opts.patch b/target/linux/generic/patches-2.6.39/520-squashfs_update_xz_comp_opts.patch index 523b89f9ac..523b89f9ac 100644 --- a/target/linux/generic/patches-2.6.39/550-squashfs_update_xz_comp_opts.patch +++ b/target/linux/generic/patches-2.6.39/520-squashfs_update_xz_comp_opts.patch diff --git a/target/linux/generic/patches-2.6.39/100-netfilter_layer7_2.22.patch b/target/linux/generic/patches-2.6.39/600-netfilter_layer7_2.22.patch index 2bebf646cb..710afc8c99 100644 --- a/target/linux/generic/patches-2.6.39/100-netfilter_layer7_2.22.patch +++ b/target/linux/generic/patches-2.6.39/600-netfilter_layer7_2.22.patch @@ -1,6 +1,6 @@ --- a/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig -@@ -1020,6 +1020,27 @@ config NETFILTER_XT_MATCH_STATE +@@ -1018,6 +1018,27 @@ 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.39/101-netfilter_layer7_pktmatch.patch b/target/linux/generic/patches-2.6.39/601-netfilter_layer7_pktmatch.patch index f65e301fd1..f65e301fd1 100644 --- a/target/linux/generic/patches-2.6.39/101-netfilter_layer7_pktmatch.patch +++ b/target/linux/generic/patches-2.6.39/601-netfilter_layer7_pktmatch.patch diff --git a/target/linux/generic/patches-2.6.39/102-netfilter_layer7_match.patch b/target/linux/generic/patches-2.6.39/602-netfilter_layer7_match.patch index b2e48c824f..b2e48c824f 100644 --- a/target/linux/generic/patches-2.6.39/102-netfilter_layer7_match.patch +++ b/target/linux/generic/patches-2.6.39/602-netfilter_layer7_match.patch diff --git a/target/linux/generic/patches-2.6.39/103-netfilter_layer7_2.6.36_fix.patch b/target/linux/generic/patches-2.6.39/603-netfilter_layer7_2.6.36_fix.patch index 58e5c30a3f..9f4c310d7e 100644 --- a/target/linux/generic/patches-2.6.39/103-netfilter_layer7_2.6.36_fix.patch +++ b/target/linux/generic/patches-2.6.39/603-netfilter_layer7_2.6.36_fix.patch @@ -1,6 +1,6 @@ --- a/net/netfilter/Kconfig +++ b/net/netfilter/Kconfig -@@ -834,6 +834,27 @@ config NETFILTER_XT_MATCH_IPVS +@@ -832,6 +832,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 -@@ -1020,26 +1041,11 @@ config NETFILTER_XT_MATCH_STATE +@@ -1018,26 +1039,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.39/160-netfilter_cisco_794x_iphone.patch b/target/linux/generic/patches-2.6.39/604-netfilter_cisco_794x_iphone.patch index 662a499d17..662a499d17 100644 --- a/target/linux/generic/patches-2.6.39/160-netfilter_cisco_794x_iphone.patch +++ b/target/linux/generic/patches-2.6.39/604-netfilter_cisco_794x_iphone.patch diff --git a/target/linux/generic/patches-2.6.39/190-netfilter_rtsp.patch b/target/linux/generic/patches-2.6.39/605-netfilter_rtsp.patch index ead213a4f9..ead213a4f9 100644 --- a/target/linux/generic/patches-2.6.39/190-netfilter_rtsp.patch +++ b/target/linux/generic/patches-2.6.39/605-netfilter_rtsp.patch diff --git a/target/linux/generic/patches-2.6.39/200-sched_esfq.patch b/target/linux/generic/patches-2.6.39/620-sched_esfq.patch index 868f97b339..868f97b339 100644 --- a/target/linux/generic/patches-2.6.39/200-sched_esfq.patch +++ b/target/linux/generic/patches-2.6.39/620-sched_esfq.patch diff --git a/target/linux/generic/patches-2.6.39/290-sched_act_connmark.patch b/target/linux/generic/patches-2.6.39/621-sched_act_connmark.patch index c8c9b232a5..c8c9b232a5 100644 --- a/target/linux/generic/patches-2.6.39/290-sched_act_connmark.patch +++ b/target/linux/generic/patches-2.6.39/621-sched_act_connmark.patch diff --git a/target/linux/generic/patches-2.6.39/240-packet_socket_type.patch b/target/linux/generic/patches-2.6.39/630-packet_socket_type.patch index 75b61290c3..75b61290c3 100644 --- a/target/linux/generic/patches-2.6.39/240-packet_socket_type.patch +++ b/target/linux/generic/patches-2.6.39/630-packet_socket_type.patch diff --git a/target/linux/generic/patches-2.6.39/270-bridge_no_eap_forward.patch b/target/linux/generic/patches-2.6.39/640-bridge_no_eap_forward.patch index dac898276d..dac898276d 100644 --- a/target/linux/generic/patches-2.6.39/270-bridge_no_eap_forward.patch +++ b/target/linux/generic/patches-2.6.39/640-bridge_no_eap_forward.patch diff --git a/target/linux/generic/patches-2.6.39/271-bridge_always_accept_eap.patch b/target/linux/generic/patches-2.6.39/641-bridge_always_accept_eap.patch index b3a793e49b..b3a793e49b 100644 --- a/target/linux/generic/patches-2.6.39/271-bridge_always_accept_eap.patch +++ b/target/linux/generic/patches-2.6.39/641-bridge_always_accept_eap.patch diff --git a/target/linux/generic/patches-2.6.39/300-bridge_port_isolate.patch b/target/linux/generic/patches-2.6.39/642-bridge_port_isolate.patch index c051a29f2d..c051a29f2d 100644 --- a/target/linux/generic/patches-2.6.39/300-bridge_port_isolate.patch +++ b/target/linux/generic/patches-2.6.39/642-bridge_port_isolate.patch diff --git a/target/linux/generic/patches-2.6.39/250-pppoe_header_pad.patch b/target/linux/generic/patches-2.6.39/650-pppoe_header_pad.patch index 4875d5f23f..4875d5f23f 100644 --- a/target/linux/generic/patches-2.6.39/250-pppoe_header_pad.patch +++ b/target/linux/generic/patches-2.6.39/650-pppoe_header_pad.patch diff --git a/target/linux/generic/patches-2.6.39/940-wireless_mesh_header.patch b/target/linux/generic/patches-2.6.39/651-wireless_mesh_header.patch index 48c4c2a153..48c4c2a153 100644 --- a/target/linux/generic/patches-2.6.39/940-wireless_mesh_header.patch +++ b/target/linux/generic/patches-2.6.39/651-wireless_mesh_header.patch diff --git a/target/linux/generic/patches-2.6.39/650-swconfig.patch b/target/linux/generic/patches-2.6.39/700-swconfig.patch index 6825037ce9..6825037ce9 100644 --- a/target/linux/generic/patches-2.6.39/650-swconfig.patch +++ b/target/linux/generic/patches-2.6.39/700-swconfig.patch diff --git a/target/linux/generic/patches-2.6.39/600-phy_extension.patch b/target/linux/generic/patches-2.6.39/701-phy_extension.patch index b2d1665cea..b2d1665cea 100644 --- a/target/linux/generic/patches-2.6.39/600-phy_extension.patch +++ b/target/linux/generic/patches-2.6.39/701-phy_extension.patch diff --git a/target/linux/generic/patches-2.6.39/601-phy-add-aneg-done-function.patch b/target/linux/generic/patches-2.6.39/702-phy_add_aneg_done_function.patch index 776b768431..776b768431 100644 --- a/target/linux/generic/patches-2.6.39/601-phy-add-aneg-done-function.patch +++ b/target/linux/generic/patches-2.6.39/702-phy_add_aneg_done_function.patch diff --git a/target/linux/generic/patches-2.6.39/620-phy_adm6996.patch b/target/linux/generic/patches-2.6.39/720-phy_adm6996.patch index 614cfdfe1d..5b2218edf4 100644 --- a/target/linux/generic/patches-2.6.39/620-phy_adm6996.patch +++ b/target/linux/generic/patches-2.6.39/720-phy_adm6996.patch @@ -1,6 +1,6 @@ --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig -@@ -91,6 +91,11 @@ config MICREL_PHY +@@ -97,6 +97,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.39/630-phy_packets.patch b/target/linux/generic/patches-2.6.39/721-phy_packets.patch index b8a76b0ce0..b8a76b0ce0 100644 --- a/target/linux/generic/patches-2.6.39/630-phy_packets.patch +++ b/target/linux/generic/patches-2.6.39/721-phy_packets.patch diff --git a/target/linux/generic/patches-2.6.39/660-phy_mvswitch.patch b/target/linux/generic/patches-2.6.39/722-phy_mvswitch.patch index b5fef7668e..b5fef7668e 100644 --- a/target/linux/generic/patches-2.6.39/660-phy_mvswitch.patch +++ b/target/linux/generic/patches-2.6.39/722-phy_mvswitch.patch diff --git a/target/linux/generic/patches-2.6.39/670-phy_ip175c.patch b/target/linux/generic/patches-2.6.39/723-phy_ip175c.patch index d99ca61799..d99ca61799 100644 --- a/target/linux/generic/patches-2.6.39/670-phy_ip175c.patch +++ b/target/linux/generic/patches-2.6.39/723-phy_ip175c.patch diff --git a/target/linux/generic/patches-2.6.39/680-phy_ar8216.patch b/target/linux/generic/patches-2.6.39/724-phy_ar8216.patch index a7afdfd820..a7afdfd820 100644 --- a/target/linux/generic/patches-2.6.39/680-phy_ar8216.patch +++ b/target/linux/generic/patches-2.6.39/724-phy_ar8216.patch diff --git a/target/linux/generic/patches-2.6.39/690-phy_rtl8306.patch b/target/linux/generic/patches-2.6.39/725-phy_rtl8306.patch index cd5e1a88b2..cd5e1a88b2 100644 --- a/target/linux/generic/patches-2.6.39/690-phy_rtl8306.patch +++ b/target/linux/generic/patches-2.6.39/725-phy_rtl8306.patch diff --git a/target/linux/generic/patches-2.6.39/691-phy_rtl8366.patch b/target/linux/generic/patches-2.6.39/726-phy_rtl8366.patch index c4599969cb..c4599969cb 100644 --- a/target/linux/generic/patches-2.6.39/691-phy_rtl8366.patch +++ b/target/linux/generic/patches-2.6.39/726-phy_rtl8366.patch diff --git a/target/linux/generic/patches-2.6.39/903-hostap_txpower.patch b/target/linux/generic/patches-2.6.39/750-hostap_txpower.patch index e4c1803ff5..e4c1803ff5 100644 --- a/target/linux/generic/patches-2.6.39/903-hostap_txpower.patch +++ b/target/linux/generic/patches-2.6.39/750-hostap_txpower.patch diff --git a/target/linux/generic/patches-2.6.39/030-pci_disable_common_quirks.patch b/target/linux/generic/patches-2.6.39/810-pci_disable_common_quirks.patch index c947836166..c947836166 100644 --- a/target/linux/generic/patches-2.6.39/030-pci_disable_common_quirks.patch +++ b/target/linux/generic/patches-2.6.39/810-pci_disable_common_quirks.patch diff --git a/target/linux/generic/patches-2.6.39/031-pci_disable_usb_common_quirks.patch b/target/linux/generic/patches-2.6.39/811-pci_disable_usb_common_quirks.patch index 47abdf27ca..47abdf27ca 100644 --- a/target/linux/generic/patches-2.6.39/031-pci_disable_usb_common_quirks.patch +++ b/target/linux/generic/patches-2.6.39/811-pci_disable_usb_common_quirks.patch diff --git a/target/linux/generic/patches-2.6.39/310-usb-add-usb_find_device_by_name.patch b/target/linux/generic/patches-2.6.39/820-usb_add_usb_find_device_by_name.patch index 3aeda678fc..3aeda678fc 100644 --- a/target/linux/generic/patches-2.6.39/310-usb-add-usb_find_device_by_name.patch +++ b/target/linux/generic/patches-2.6.39/820-usb_add_usb_find_device_by_name.patch diff --git a/target/linux/generic/patches-2.6.39/801-usb_serial_endpoint_size.patch b/target/linux/generic/patches-2.6.39/821-usb_serial_endpoint_size.patch index 3dd419f2ae..3dd419f2ae 100644 --- a/target/linux/generic/patches-2.6.39/801-usb_serial_endpoint_size.patch +++ b/target/linux/generic/patches-2.6.39/821-usb_serial_endpoint_size.patch diff --git a/target/linux/generic/patches-2.6.39/400-ledtrig_morse.patch b/target/linux/generic/patches-2.6.39/830-ledtrig_morse.patch index 2edc4f33cb..2edc4f33cb 100644 --- a/target/linux/generic/patches-2.6.39/400-ledtrig_morse.patch +++ b/target/linux/generic/patches-2.6.39/830-ledtrig_morse.patch diff --git a/target/linux/generic/patches-2.6.39/402-ledtrig_netdev.patch b/target/linux/generic/patches-2.6.39/831-ledtrig_netdev.patch index 413174006c..413174006c 100644 --- a/target/linux/generic/patches-2.6.39/402-ledtrig_netdev.patch +++ b/target/linux/generic/patches-2.6.39/831-ledtrig_netdev.patch diff --git a/target/linux/generic/patches-2.6.39/403-ledtrig-usbdev.patch b/target/linux/generic/patches-2.6.39/832-ledtrig_usbdev.patch index 54c94a6650..54c94a6650 100644 --- a/target/linux/generic/patches-2.6.39/403-ledtrig-usbdev.patch +++ b/target/linux/generic/patches-2.6.39/832-ledtrig_usbdev.patch diff --git a/target/linux/generic/patches-2.6.39/410-gpio_buttons.patch b/target/linux/generic/patches-2.6.39/833-gpio_buttons.patch index cfe00286d9..cfe00286d9 100644 --- a/target/linux/generic/patches-2.6.39/410-gpio_buttons.patch +++ b/target/linux/generic/patches-2.6.39/833-gpio_buttons.patch diff --git a/target/linux/generic/patches-2.6.39/411-gpio_ioctl.patch b/target/linux/generic/patches-2.6.39/834-gpio_ioctl.patch index 6609a1670a..6609a1670a 100644 --- a/target/linux/generic/patches-2.6.39/411-gpio_ioctl.patch +++ b/target/linux/generic/patches-2.6.39/834-gpio_ioctl.patch diff --git a/target/linux/generic/patches-2.6.39/420-gpiodev.patch b/target/linux/generic/patches-2.6.39/835-gpiodev.patch index f41d5a6850..f41d5a6850 100644 --- a/target/linux/generic/patches-2.6.39/420-gpiodev.patch +++ b/target/linux/generic/patches-2.6.39/835-gpiodev.patch diff --git a/target/linux/generic/patches-2.6.39/700-rtc7301.patch b/target/linux/generic/patches-2.6.39/840-rtc7301.patch index 75f71d7601..75f71d7601 100644 --- a/target/linux/generic/patches-2.6.39/700-rtc7301.patch +++ b/target/linux/generic/patches-2.6.39/840-rtc7301.patch diff --git a/target/linux/generic/patches-2.6.39/750-glamo-headers.patch b/target/linux/generic/patches-2.6.39/850-glamo_headers.patch index f3cf973651..f3cf973651 100644 --- a/target/linux/generic/patches-2.6.39/750-glamo-headers.patch +++ b/target/linux/generic/patches-2.6.39/850-glamo_headers.patch diff --git a/target/linux/generic/patches-2.6.39/920-01-hotpluggable-spi-gpio.patch b/target/linux/generic/patches-2.6.39/860-01_hotpluggable_spi_gpio.patch index f8e6374fa7..f8e6374fa7 100644 --- a/target/linux/generic/patches-2.6.39/920-01-hotpluggable-spi-gpio.patch +++ b/target/linux/generic/patches-2.6.39/860-01_hotpluggable_spi_gpio.patch diff --git a/target/linux/generic/patches-2.6.39/920-04-spi-gpio-implement-spi-delay.patch b/target/linux/generic/patches-2.6.39/861-04_spi_gpio_implement_spi_delay.patch index 4b145c2734..4b145c2734 100644 --- a/target/linux/generic/patches-2.6.39/920-04-spi-gpio-implement-spi-delay.patch +++ b/target/linux/generic/patches-2.6.39/861-04_spi_gpio_implement_spi_delay.patch diff --git a/target/linux/generic/patches-2.6.39/921-gpio_spi_driver.patch b/target/linux/generic/patches-2.6.39/862-gpio_spi_driver.patch index 3ea9f9091c..3ea9f9091c 100644 --- a/target/linux/generic/patches-2.6.39/921-gpio_spi_driver.patch +++ b/target/linux/generic/patches-2.6.39/862-gpio_spi_driver.patch diff --git a/target/linux/generic/patches-2.6.39/922-gpiommc.patch b/target/linux/generic/patches-2.6.39/863-gpiommc.patch index c10eaeed25..c10eaeed25 100644 --- a/target/linux/generic/patches-2.6.39/922-gpiommc.patch +++ b/target/linux/generic/patches-2.6.39/863-gpiommc.patch diff --git a/target/linux/generic/patches-2.6.39/923-gpiommc-configfs-locking.patch b/target/linux/generic/patches-2.6.39/864-gpiommc_configfs_locking.patch index 2e4e820b2b..2e4e820b2b 100644 --- a/target/linux/generic/patches-2.6.39/923-gpiommc-configfs-locking.patch +++ b/target/linux/generic/patches-2.6.39/864-gpiommc_configfs_locking.patch diff --git a/target/linux/generic/patches-2.6.39/975-hifn795x-byteswap.patch b/target/linux/generic/patches-2.6.39/870-hifn795x_byteswap.patch index 3a37c951ec..3a37c951ec 100644 --- a/target/linux/generic/patches-2.6.39/975-hifn795x-byteswap.patch +++ b/target/linux/generic/patches-2.6.39/870-hifn795x_byteswap.patch diff --git a/target/linux/generic/patches-2.6.39/203-slab_maxsize.patch b/target/linux/generic/patches-2.6.39/900-slab_maxsize.patch index 1c9569450a..1c9569450a 100644 --- a/target/linux/generic/patches-2.6.39/203-slab_maxsize.patch +++ b/target/linux/generic/patches-2.6.39/900-slab_maxsize.patch diff --git a/target/linux/generic/patches-2.6.39/219-kobject_uevent.patch b/target/linux/generic/patches-2.6.39/910-kobject_uevent.patch index f15749fa17..f15749fa17 100644 --- a/target/linux/generic/patches-2.6.39/219-kobject_uevent.patch +++ b/target/linux/generic/patches-2.6.39/910-kobject_uevent.patch diff --git a/target/linux/generic/patches-2.6.39/223-kobject-add-broadcast_uevent.patch b/target/linux/generic/patches-2.6.39/911-kobject_add_broadcast_uevent.patch index a428ec5cd1..a428ec5cd1 100644 --- a/target/linux/generic/patches-2.6.39/223-kobject-add-broadcast_uevent.patch +++ b/target/linux/generic/patches-2.6.39/911-kobject_add_broadcast_uevent.patch diff --git a/target/linux/generic/patches-2.6.39/840-unable_to_open_console.patch b/target/linux/generic/patches-2.6.39/920-unable_to_open_console.patch index 27b9002936..27b9002936 100644 --- a/target/linux/generic/patches-2.6.39/840-unable_to_open_console.patch +++ b/target/linux/generic/patches-2.6.39/920-unable_to_open_console.patch diff --git a/target/linux/generic/patches-2.6.39/999-use_preinit_as_init.patch b/target/linux/generic/patches-2.6.39/921-use_preinit_as_init.patch index c47779810d..c47779810d 100644 --- a/target/linux/generic/patches-2.6.39/999-use_preinit_as_init.patch +++ b/target/linux/generic/patches-2.6.39/921-use_preinit_as_init.patch diff --git a/target/linux/generic/patches-2.6.39/970-ocf_kbuild_integration.patch b/target/linux/generic/patches-2.6.39/940-ocf_kbuild_integration.patch index 3c322f3d14..3c322f3d14 100644 --- a/target/linux/generic/patches-2.6.39/970-ocf_kbuild_integration.patch +++ b/target/linux/generic/patches-2.6.39/940-ocf_kbuild_integration.patch diff --git a/target/linux/generic/patches-2.6.39/971-ocf_20100325.patch b/target/linux/generic/patches-2.6.39/941-ocf_20100325.patch index 537f9ed374..537f9ed374 100644 --- a/target/linux/generic/patches-2.6.39/971-ocf_20100325.patch +++ b/target/linux/generic/patches-2.6.39/941-ocf_20100325.patch diff --git a/target/linux/generic/patches-2.6.39/980-vm_exports.patch b/target/linux/generic/patches-2.6.39/950-vm_exports.patch index 9fcaabc791..9fcaabc791 100644 --- a/target/linux/generic/patches-2.6.39/980-vm_exports.patch +++ b/target/linux/generic/patches-2.6.39/950-vm_exports.patch diff --git a/target/linux/generic/patches-2.6.39/009-decompress_unlzo_fix.patch b/target/linux/generic/patches-2.6.39/960-decompress_unlzo_fix.patch index ee7c118ef0..ee7c118ef0 100644 --- a/target/linux/generic/patches-2.6.39/009-decompress_unlzo_fix.patch +++ b/target/linux/generic/patches-2.6.39/960-decompress_unlzo_fix.patch |