diff --git a/target/linux/generic/patches-2.6.38/160-l2tp_fix_oops_backport.patch b/target/linux/generic/patches-2.6.38/010-l2tp_fix_oops_backport.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/160-l2tp_fix_oops_backport.patch rename to target/linux/generic/patches-2.6.38/010-l2tp_fix_oops_backport.patch diff --git a/target/linux/generic/patches-2.6.38/941-ssb_update.patch b/target/linux/generic/patches-2.6.38/020-ssb_update.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/941-ssb_update.patch rename to target/linux/generic/patches-2.6.38/020-ssb_update.patch diff --git a/target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch b/target/linux/generic/patches-2.6.38/067-block2mtd_2.6.38_fix.patch deleted file mode 100644 index 1a052b3f43..0000000000 --- a/target/linux/generic/patches-2.6.38/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.38/209-overlayfs.patch b/target/linux/generic/patches-2.6.38/100-overlayfs.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/209-overlayfs.patch rename to target/linux/generic/patches-2.6.38/100-overlayfs.patch diff --git a/target/linux/generic/patches-2.6.38/210-overlayfs_fix_readdir_deadlock.patch b/target/linux/generic/patches-2.6.38/101-overlayfs_fix_readdir_deadlock.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/210-overlayfs_fix_readdir_deadlock.patch rename to target/linux/generic/patches-2.6.38/101-overlayfs_fix_readdir_deadlock.patch diff --git a/target/linux/generic/patches-2.6.38/211-overlayfs_fix_readdir_unlink_deadlock.patch b/target/linux/generic/patches-2.6.38/102-overlayfs_fix_readdir_unlink_deadlock.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/211-overlayfs_fix_readdir_unlink_deadlock.patch rename to target/linux/generic/patches-2.6.38/102-overlayfs_fix_readdir_unlink_deadlock.patch diff --git a/target/linux/generic/patches-2.6.38/001-fix_localversion.patch b/target/linux/generic/patches-2.6.38/200-fix_localversion.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/001-fix_localversion.patch rename to target/linux/generic/patches-2.6.38/200-fix_localversion.patch diff --git a/target/linux/generic/patches-2.6.38/012-extra_optimization.patch b/target/linux/generic/patches-2.6.38/201-extra_optimization.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/012-extra_optimization.patch rename to target/linux/generic/patches-2.6.38/201-extra_optimization.patch diff --git a/target/linux/generic/patches-2.6.38/902-darwin_scripts_include.patch b/target/linux/generic/patches-2.6.38/210-darwin_scripts_include.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/902-darwin_scripts_include.patch rename to target/linux/generic/patches-2.6.38/210-darwin_scripts_include.patch diff --git a/target/linux/generic/patches-2.6.38/903-stddef_include.patch b/target/linux/generic/patches-2.6.38/211-stddef_include.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/903-stddef_include.patch rename to target/linux/generic/patches-2.6.38/211-stddef_include.patch diff --git a/target/linux/generic/patches-2.6.38/028-module_exports.patch b/target/linux/generic/patches-2.6.38/220-module_exports.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/028-module_exports.patch rename to target/linux/generic/patches-2.6.38/220-module_exports.patch diff --git a/target/linux/generic/patches-2.6.38/998-openwrt_lzma_options.patch b/target/linux/generic/patches-2.6.38/230-openwrt_lzma_options.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/998-openwrt_lzma_options.patch rename to target/linux/generic/patches-2.6.38/230-openwrt_lzma_options.patch diff --git a/target/linux/generic/patches-2.6.38/180-netfilter_depends.patch b/target/linux/generic/patches-2.6.38/250-netfilter_depends.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/180-netfilter_depends.patch rename to target/linux/generic/patches-2.6.38/250-netfilter_depends.patch diff --git a/target/linux/generic/patches-2.6.38/220-sound_kconfig.patch b/target/linux/generic/patches-2.6.38/251-sound_kconfig.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/220-sound_kconfig.patch rename to target/linux/generic/patches-2.6.38/251-sound_kconfig.patch diff --git a/target/linux/generic/patches-2.6.38/972-mv_cesa_depends.patch b/target/linux/generic/patches-2.6.38/252-mv_cesa_depends.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/972-mv_cesa_depends.patch rename to target/linux/generic/patches-2.6.38/252-mv_cesa_depends.patch diff --git a/target/linux/generic/patches-2.6.38/974-ssb_b43_default_on.patch b/target/linux/generic/patches-2.6.38/253-ssb_b43_default_on.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/974-ssb_b43_default_on.patch rename to target/linux/generic/patches-2.6.38/253-ssb_b43_default_on.patch diff --git a/target/linux/generic/patches-2.6.38/977-textsearch_kconfig_hacks.patch b/target/linux/generic/patches-2.6.38/254-textsearch_kconfig_hacks.patch similarity index 88% rename from target/linux/generic/patches-2.6.38/977-textsearch_kconfig_hacks.patch rename to target/linux/generic/patches-2.6.38/254-textsearch_kconfig_hacks.patch index b5d9a7ecd0..e9577ba5a0 100644 --- a/target/linux/generic/patches-2.6.38/977-textsearch_kconfig_hacks.patch +++ b/target/linux/generic/patches-2.6.38/254-textsearch_kconfig_hacks.patch @@ -1,6 +1,6 @@ --- a/lib/Kconfig +++ b/lib/Kconfig -@@ -164,16 +164,16 @@ config REED_SOLOMON_DEC16 +@@ -158,16 +158,16 @@ config REED_SOLOMON_DEC16 # Textsearch support is select'ed if needed # config TEXTSEARCH diff --git a/target/linux/generic/patches-2.6.38/978-lib80211_kconfig_hacks.patch b/target/linux/generic/patches-2.6.38/255-lib80211_kconfig_hacks.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/978-lib80211_kconfig_hacks.patch rename to target/linux/generic/patches-2.6.38/255-lib80211_kconfig_hacks.patch diff --git a/target/linux/generic/patches-2.6.38/979-crypto_add_kconfig_prompts.patch b/target/linux/generic/patches-2.6.38/256-crypto_add_kconfig_prompts.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/979-crypto_add_kconfig_prompts.patch rename to target/linux/generic/patches-2.6.38/256-crypto_add_kconfig_prompts.patch diff --git a/target/linux/generic/patches-2.6.38/981-wireless_ext_kconfig_hack.patch b/target/linux/generic/patches-2.6.38/257-wireless_ext_kconfig_hack.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/981-wireless_ext_kconfig_hack.patch rename to target/linux/generic/patches-2.6.38/257-wireless_ext_kconfig_hack.patch diff --git a/target/linux/generic/patches-2.6.38/982-make-config-average-selectable.patch b/target/linux/generic/patches-2.6.38/258-make_config_average_selectable.patch similarity index 90% rename from target/linux/generic/patches-2.6.38/982-make-config-average-selectable.patch rename to target/linux/generic/patches-2.6.38/258-make_config_average_selectable.patch index 18fff0aa55..e66391cb0a 100644 --- a/target/linux/generic/patches-2.6.38/982-make-config-average-selectable.patch +++ b/target/linux/generic/patches-2.6.38/258-make_config_average_selectable.patch @@ -1,6 +1,6 @@ --- a/lib/Kconfig +++ b/lib/Kconfig -@@ -223,6 +223,13 @@ config LRU_CACHE +@@ -217,6 +217,13 @@ config LRU_CACHE tristate config AVERAGE diff --git a/target/linux/generic/patches-2.6.38/011-mips_expose_boot_raw.patch b/target/linux/generic/patches-2.6.38/300-mips_expose_boot_raw.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/011-mips_expose_boot_raw.patch rename to target/linux/generic/patches-2.6.38/300-mips_expose_boot_raw.patch diff --git a/target/linux/generic/patches-2.6.38/021-mips_image_cmdline_hack.patch b/target/linux/generic/patches-2.6.38/301-mips_image_cmdline_hack.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/021-mips_image_cmdline_hack.patch rename to target/linux/generic/patches-2.6.38/301-mips_image_cmdline_hack.patch diff --git a/target/linux/generic/patches-2.6.38/022-mips_use_generic_thread_info_allocator.patch b/target/linux/generic/patches-2.6.38/302-mips_use_generic_thread_info_allocator.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/022-mips_use_generic_thread_info_allocator.patch rename to target/linux/generic/patches-2.6.38/302-mips_use_generic_thread_info_allocator.patch diff --git a/target/linux/generic/patches-2.6.38/023-mips-fix-kexec.patch b/target/linux/generic/patches-2.6.38/303-mips_fix_kexec.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/023-mips-fix-kexec.patch rename to target/linux/generic/patches-2.6.38/303-mips_fix_kexec.patch diff --git a/target/linux/generic/patches-2.6.38/025-mips_disable_fpu.patch b/target/linux/generic/patches-2.6.38/304-mips_disable_fpu.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/025-mips_disable_fpu.patch rename to target/linux/generic/patches-2.6.38/304-mips_disable_fpu.patch diff --git a/target/linux/generic/patches-2.6.38/027-mips_module_reloc.patch b/target/linux/generic/patches-2.6.38/305-mips_module_reloc.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/027-mips_module_reloc.patch rename to target/linux/generic/patches-2.6.38/305-mips_module_reloc.patch diff --git a/target/linux/generic/patches-2.6.38/202-mips_mem_functions_performance.patch b/target/linux/generic/patches-2.6.38/306-mips_mem_functions_performance.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/202-mips_mem_functions_performance.patch rename to target/linux/generic/patches-2.6.38/306-mips_mem_functions_performance.patch diff --git a/target/linux/generic/patches-2.6.38/208-mips_oprofile_fix.patch b/target/linux/generic/patches-2.6.38/307-mips_oprofile_fix.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/208-mips_oprofile_fix.patch rename to target/linux/generic/patches-2.6.38/307-mips_oprofile_fix.patch diff --git a/target/linux/generic/patches-2.6.38/029-arm_module_unresolved_weak_sym.patch b/target/linux/generic/patches-2.6.38/310-arm_module_unresolved_weak_sym.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/029-arm_module_unresolved_weak_sym.patch rename to target/linux/generic/patches-2.6.38/310-arm_module_unresolved_weak_sym.patch diff --git a/target/linux/generic/patches-2.6.38/040-arm_update_mach-types.patch b/target/linux/generic/patches-2.6.38/311-arm_update_mach_types.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/040-arm_update_mach-types.patch rename to target/linux/generic/patches-2.6.38/311-arm_update_mach_types.patch diff --git a/target/linux/generic/patches-2.6.38/991-ppc4xx_optimization.patch b/target/linux/generic/patches-2.6.38/320-ppc4xx_optimization.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/991-ppc4xx_optimization.patch rename to target/linux/generic/patches-2.6.38/320-ppc4xx_optimization.patch diff --git a/target/linux/generic/patches-2.6.38/950-powerpc_crtsavres_prereq.patch b/target/linux/generic/patches-2.6.38/321-powerpc_crtsavres_prereq.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/950-powerpc_crtsavres_prereq.patch rename to target/linux/generic/patches-2.6.38/321-powerpc_crtsavres_prereq.patch diff --git a/target/linux/generic/patches-2.6.38/065-rootfs_split.patch b/target/linux/generic/patches-2.6.38/400-rootfs_split.patch similarity index 57% rename from target/linux/generic/patches-2.6.38/065-rootfs_split.patch rename to target/linux/generic/patches-2.6.38/400-rootfs_split.patch index 7a82354dd7..a8e4be6ae7 100644 --- a/target/linux/generic/patches-2.6.38/065-rootfs_split.patch +++ b/target/linux/generic/patches-2.6.38/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.38/222-partial_eraseblock_write.patch b/target/linux/generic/patches-2.6.38/401-partial_eraseblock_write.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/222-partial_eraseblock_write.patch rename to target/linux/generic/patches-2.6.38/401-partial_eraseblock_write.patch diff --git a/target/linux/generic/patches-2.6.38/082-mtd_info_move_forward_decl.patch b/target/linux/generic/patches-2.6.38/410-mtd_info_move_forward_decl.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/082-mtd_info_move_forward_decl.patch rename to target/linux/generic/patches-2.6.38/410-mtd_info_move_forward_decl.patch diff --git a/target/linux/generic/patches-2.6.38/070-redboot_space.patch b/target/linux/generic/patches-2.6.38/420-redboot_space.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/070-redboot_space.patch rename to target/linux/generic/patches-2.6.38/420-redboot_space.patch diff --git a/target/linux/generic/patches-2.6.38/071-redboot_boardconfig.patch b/target/linux/generic/patches-2.6.38/421-redboot_boardconfig.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/071-redboot_boardconfig.patch rename to target/linux/generic/patches-2.6.38/421-redboot_boardconfig.patch diff --git a/target/linux/generic/patches-2.6.38/081-mtd_myloader_partition_parser.patch b/target/linux/generic/patches-2.6.38/430-mtd_myloader_partition_parser.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/081-mtd_myloader_partition_parser.patch rename to target/linux/generic/patches-2.6.38/430-mtd_myloader_partition_parser.patch diff --git a/target/linux/generic/patches-2.6.38/060-block2mtd_init.patch b/target/linux/generic/patches-2.6.38/440-block2mtd_init.patch similarity index 99% rename from target/linux/generic/patches-2.6.38/060-block2mtd_init.patch rename to target/linux/generic/patches-2.6.38/440-block2mtd_init.patch index 60d96b1a97..f8495b4e80 100644 --- a/target/linux/generic/patches-2.6.38/060-block2mtd_init.patch +++ b/target/linux/generic/patches-2.6.38/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.38/441-block2mtd_refresh.patch b/target/linux/generic/patches-2.6.38/441-block2mtd_refresh.patch new file mode 100644 index 0000000000..24ee22f5f6 --- /dev/null +++ b/target/linux/generic/patches-2.6.38/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.38/066-block2mtd_probe.patch b/target/linux/generic/patches-2.6.38/442-block2mtd_probe.patch similarity index 72% rename from target/linux/generic/patches-2.6.38/066-block2mtd_probe.patch rename to target/linux/generic/patches-2.6.38/442-block2mtd_probe.patch index 1afd2ff20a..780dd28fd2 100644 --- a/target/linux/generic/patches-2.6.38/066-block2mtd_probe.patch +++ b/target/linux/generic/patches-2.6.38/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.38/080-mtd_plat_nand_chip_fixup.patch b/target/linux/generic/patches-2.6.38/450-mtd_plat_nand_chip_fixup.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/080-mtd_plat_nand_chip_fixup.patch rename to target/linux/generic/patches-2.6.38/450-mtd_plat_nand_chip_fixup.patch diff --git a/target/linux/generic/patches-2.6.38/083-mtd_fix_nand_correct_data_return_code.patch b/target/linux/generic/patches-2.6.38/451-mtd_fix_nand_correct_data_return_code.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/083-mtd_fix_nand_correct_data_return_code.patch rename to target/linux/generic/patches-2.6.38/451-mtd_fix_nand_correct_data_return_code.patch diff --git a/target/linux/generic/patches-2.6.38/014-cfi_show_amd_extended_table_version.patch b/target/linux/generic/patches-2.6.38/460-cfi_show_amd_extended_table_version.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/014-cfi_show_amd_extended_table_version.patch rename to target/linux/generic/patches-2.6.38/460-cfi_show_amd_extended_table_version.patch diff --git a/target/linux/generic/patches-2.6.38/084-mtd_m25p80_add_pm25lv_flash_support.patch b/target/linux/generic/patches-2.6.38/470-mtd_m25p80_add_pm25lv_flash_support.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/084-mtd_m25p80_add_pm25lv_flash_support.patch rename to target/linux/generic/patches-2.6.38/470-mtd_m25p80_add_pm25lv_flash_support.patch diff --git a/target/linux/generic/patches-2.6.38/090-mtd-m25p80-add-en25f32-chip-support.patch b/target/linux/generic/patches-2.6.38/471-mtd_m25p80_add_en25f32_chip_support.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/090-mtd-m25p80-add-en25f32-chip-support.patch rename to target/linux/generic/patches-2.6.38/471-mtd_m25p80_add_en25f32_chip_support.patch diff --git a/target/linux/generic/patches-2.6.38/091-mtd-m25p80-add-MX25L1606E-support.patch b/target/linux/generic/patches-2.6.38/472-mtd_m25p80_add_MX25L1606E_support.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/091-mtd-m25p80-add-MX25L1606E-support.patch rename to target/linux/generic/patches-2.6.38/472-mtd_m25p80_add_MX25L1606E_support.patch diff --git a/target/linux/generic/patches-2.6.38/510-yaffs_support.patch b/target/linux/generic/patches-2.6.38/500-yaffs_support.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/510-yaffs_support.patch rename to target/linux/generic/patches-2.6.38/500-yaffs_support.patch diff --git a/target/linux/generic/patches-2.6.38/511-yaffs-cvs-2009-04-24.patch b/target/linux/generic/patches-2.6.38/501-yaffs_cvs_2009_04_24.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/511-yaffs-cvs-2009-04-24.patch rename to target/linux/generic/patches-2.6.38/501-yaffs_cvs_2009_04_24.patch diff --git a/target/linux/generic/patches-2.6.38/511-yaffs-git-2010-10-20.patch b/target/linux/generic/patches-2.6.38/502-yaffs_git_2010_10_20.patch similarity index 99% rename from target/linux/generic/patches-2.6.38/511-yaffs-git-2010-10-20.patch rename to target/linux/generic/patches-2.6.38/502-yaffs_git_2010_10_20.patch index f5e7fff6e6..f26ecf5425 100644 --- a/target/linux/generic/patches-2.6.38/511-yaffs-git-2010-10-20.patch +++ b/target/linux/generic/patches-2.6.38/502-yaffs_git_2010_10_20.patch @@ -8,7 +8,7 @@ endif # BLOCK -@@ -176,6 +175,10 @@ source "fs/hfsplus/Kconfig" +@@ -177,6 +176,10 @@ source "fs/hfsplus/Kconfig" source "fs/befs/Kconfig" source "fs/bfs/Kconfig" source "fs/efs/Kconfig" diff --git a/target/linux/generic/patches-2.6.38/512-yaffs_symlink_bug.patch b/target/linux/generic/patches-2.6.38/503-yaffs_symlink_bug.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/512-yaffs_symlink_bug.patch rename to target/linux/generic/patches-2.6.38/503-yaffs_symlink_bug.patch diff --git a/target/linux/generic/patches-2.6.38/513-yaffs_mutex_fix.patch b/target/linux/generic/patches-2.6.38/504-yaffs_mutex_fix.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/513-yaffs_mutex_fix.patch rename to target/linux/generic/patches-2.6.38/504-yaffs_mutex_fix.patch diff --git a/target/linux/generic/patches-2.6.38/008-jffs2_make_lzma_available.patch b/target/linux/generic/patches-2.6.38/510-jffs2_make_lzma_available.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/008-jffs2_make_lzma_available.patch rename to target/linux/generic/patches-2.6.38/510-jffs2_make_lzma_available.patch diff --git a/target/linux/generic/patches-2.6.38/010-debloat_lzma.patch b/target/linux/generic/patches-2.6.38/511-debloat_lzma.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/010-debloat_lzma.patch rename to target/linux/generic/patches-2.6.38/511-debloat_lzma.patch diff --git a/target/linux/generic/patches-2.6.38/204-jffs2_eofdetect.patch b/target/linux/generic/patches-2.6.38/512-jffs2_eofdetect.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/204-jffs2_eofdetect.patch rename to target/linux/generic/patches-2.6.38/512-jffs2_eofdetect.patch diff --git a/target/linux/generic/patches-2.6.38/100-netfilter_layer7_2.22.patch b/target/linux/generic/patches-2.6.38/600-netfilter_layer7_2.22.patch similarity index 99% rename from target/linux/generic/patches-2.6.38/100-netfilter_layer7_2.22.patch rename to target/linux/generic/patches-2.6.38/600-netfilter_layer7_2.22.patch index 58732b8ffd..b47f05c4c7 100644 --- a/target/linux/generic/patches-2.6.38/100-netfilter_layer7_2.22.patch +++ b/target/linux/generic/patches-2.6.38/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. diff --git a/target/linux/generic/patches-2.6.38/101-netfilter_layer7_pktmatch.patch b/target/linux/generic/patches-2.6.38/601-netfilter_layer7_pktmatch.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/101-netfilter_layer7_pktmatch.patch rename to target/linux/generic/patches-2.6.38/601-netfilter_layer7_pktmatch.patch diff --git a/target/linux/generic/patches-2.6.38/102-netfilter_layer7_match.patch b/target/linux/generic/patches-2.6.38/602-netfilter_layer7_match.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/102-netfilter_layer7_match.patch rename to target/linux/generic/patches-2.6.38/602-netfilter_layer7_match.patch diff --git a/target/linux/generic/patches-2.6.38/103-netfilter_layer7_2.6.36_fix.patch b/target/linux/generic/patches-2.6.38/603-netfilter_layer7_2.6.36_fix.patch similarity index 94% rename from target/linux/generic/patches-2.6.38/103-netfilter_layer7_2.6.36_fix.patch rename to target/linux/generic/patches-2.6.38/603-netfilter_layer7_2.6.36_fix.patch index 1082da5b67..14c5cc6982 100644 --- a/target/linux/generic/patches-2.6.38/103-netfilter_layer7_2.6.36_fix.patch +++ b/target/linux/generic/patches-2.6.38/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.38/160-netfilter_cisco_794x_iphone.patch b/target/linux/generic/patches-2.6.38/604-netfilter_cisco_794x_iphone.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/160-netfilter_cisco_794x_iphone.patch rename to target/linux/generic/patches-2.6.38/604-netfilter_cisco_794x_iphone.patch diff --git a/target/linux/generic/patches-2.6.38/190-netfilter_rtsp.patch b/target/linux/generic/patches-2.6.38/605-netfilter_rtsp.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/190-netfilter_rtsp.patch rename to target/linux/generic/patches-2.6.38/605-netfilter_rtsp.patch diff --git a/target/linux/generic/patches-2.6.38/200-sched_esfq.patch b/target/linux/generic/patches-2.6.38/620-sched_esfq.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/200-sched_esfq.patch rename to target/linux/generic/patches-2.6.38/620-sched_esfq.patch diff --git a/target/linux/generic/patches-2.6.38/290-sched_act_connmark.patch b/target/linux/generic/patches-2.6.38/621-sched_act_connmark.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/290-sched_act_connmark.patch rename to target/linux/generic/patches-2.6.38/621-sched_act_connmark.patch diff --git a/target/linux/generic/patches-2.6.38/240-packet_socket_type.patch b/target/linux/generic/patches-2.6.38/630-packet_socket_type.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/240-packet_socket_type.patch rename to target/linux/generic/patches-2.6.38/630-packet_socket_type.patch diff --git a/target/linux/generic/patches-2.6.38/270-bridge_no_eap_forward.patch b/target/linux/generic/patches-2.6.38/640-bridge_no_eap_forward.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/270-bridge_no_eap_forward.patch rename to target/linux/generic/patches-2.6.38/640-bridge_no_eap_forward.patch diff --git a/target/linux/generic/patches-2.6.38/271-bridge_always_accept_eap.patch b/target/linux/generic/patches-2.6.38/641-bridge_always_accept_eap.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/271-bridge_always_accept_eap.patch rename to target/linux/generic/patches-2.6.38/641-bridge_always_accept_eap.patch diff --git a/target/linux/generic/patches-2.6.38/300-bridge_port_isolate.patch b/target/linux/generic/patches-2.6.38/642-bridge_port_isolate.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/300-bridge_port_isolate.patch rename to target/linux/generic/patches-2.6.38/642-bridge_port_isolate.patch diff --git a/target/linux/generic/patches-2.6.38/250-pppoe_header_pad.patch b/target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/250-pppoe_header_pad.patch rename to target/linux/generic/patches-2.6.38/650-pppoe_header_pad.patch diff --git a/target/linux/generic/patches-2.6.38/940-wireless_mesh_header.patch b/target/linux/generic/patches-2.6.38/651-wireless_mesh_header.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/940-wireless_mesh_header.patch rename to target/linux/generic/patches-2.6.38/651-wireless_mesh_header.patch diff --git a/target/linux/generic/patches-2.6.38/650-swconfig.patch b/target/linux/generic/patches-2.6.38/700-swconfig.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/650-swconfig.patch rename to target/linux/generic/patches-2.6.38/700-swconfig.patch diff --git a/target/linux/generic/patches-2.6.38/600-phy_extension.patch b/target/linux/generic/patches-2.6.38/701-phy_extension.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/600-phy_extension.patch rename to target/linux/generic/patches-2.6.38/701-phy_extension.patch diff --git a/target/linux/generic/patches-2.6.38/601-phy-add-aneg-done-function.patch b/target/linux/generic/patches-2.6.38/702-phy_add_aneg_done_function.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/601-phy-add-aneg-done-function.patch rename to target/linux/generic/patches-2.6.38/702-phy_add_aneg_done_function.patch diff --git a/target/linux/generic/patches-2.6.38/620-phy_adm6996.patch b/target/linux/generic/patches-2.6.38/720-phy_adm6996.patch similarity index 88% rename from target/linux/generic/patches-2.6.38/620-phy_adm6996.patch rename to target/linux/generic/patches-2.6.38/720-phy_adm6996.patch index bd387d1bc7..8e0ef559a8 100644 --- a/target/linux/generic/patches-2.6.38/620-phy_adm6996.patch +++ b/target/linux/generic/patches-2.6.38/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.38/630-phy_packets.patch b/target/linux/generic/patches-2.6.38/721-phy_packets.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/630-phy_packets.patch rename to target/linux/generic/patches-2.6.38/721-phy_packets.patch diff --git a/target/linux/generic/patches-2.6.38/660-phy_mvswitch.patch b/target/linux/generic/patches-2.6.38/722-phy_mvswitch.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/660-phy_mvswitch.patch rename to target/linux/generic/patches-2.6.38/722-phy_mvswitch.patch diff --git a/target/linux/generic/patches-2.6.38/670-phy_ip175c.patch b/target/linux/generic/patches-2.6.38/723-phy_ip175c.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/670-phy_ip175c.patch rename to target/linux/generic/patches-2.6.38/723-phy_ip175c.patch diff --git a/target/linux/generic/patches-2.6.38/680-phy_ar8216.patch b/target/linux/generic/patches-2.6.38/724-phy_ar8216.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/680-phy_ar8216.patch rename to target/linux/generic/patches-2.6.38/724-phy_ar8216.patch diff --git a/target/linux/generic/patches-2.6.38/690-phy_rtl8306.patch b/target/linux/generic/patches-2.6.38/725-phy_rtl8306.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/690-phy_rtl8306.patch rename to target/linux/generic/patches-2.6.38/725-phy_rtl8306.patch diff --git a/target/linux/generic/patches-2.6.38/691-phy_rtl8366.patch b/target/linux/generic/patches-2.6.38/726-phy_rtl8366.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/691-phy_rtl8366.patch rename to target/linux/generic/patches-2.6.38/726-phy_rtl8366.patch diff --git a/target/linux/generic/patches-2.6.38/903-hostap_txpower.patch b/target/linux/generic/patches-2.6.38/750-hostap_txpower.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/903-hostap_txpower.patch rename to target/linux/generic/patches-2.6.38/750-hostap_txpower.patch diff --git a/target/linux/generic/patches-2.6.38/030-pci_disable_common_quirks.patch b/target/linux/generic/patches-2.6.38/810-pci_disable_common_quirks.patch similarity index 71% rename from target/linux/generic/patches-2.6.38/030-pci_disable_common_quirks.patch rename to target/linux/generic/patches-2.6.38/810-pci_disable_common_quirks.patch index b81ab74dce..c947836166 100644 --- a/target/linux/generic/patches-2.6.38/030-pci_disable_common_quirks.patch +++ b/target/linux/generic/patches-2.6.38/810-pci_disable_common_quirks.patch @@ -1,7 +1,5 @@ -Index: linux-2.6.38.1/drivers/pci/Kconfig -=================================================================== ---- linux-2.6.38.1.orig/drivers/pci/Kconfig 2011-03-23 21:04:47.000000000 +0100 -+++ linux-2.6.38.1/drivers/pci/Kconfig 2011-03-28 16:48:00.052118712 +0200 +--- a/drivers/pci/Kconfig ++++ b/drivers/pci/Kconfig @@ -62,6 +62,12 @@ config XEN_PCIDEV_FE_DEBUG When in doubt, say N. @@ -15,10 +13,8 @@ Index: linux-2.6.38.1/drivers/pci/Kconfig config HT_IRQ bool "Interrupts on hypertransport devices" default y -Index: linux-2.6.38.1/drivers/pci/quirks.c -=================================================================== ---- linux-2.6.38.1.orig/drivers/pci/quirks.c 2011-03-23 21:04:47.000000000 +0100 -+++ linux-2.6.38.1/drivers/pci/quirks.c 2011-03-28 16:48:13.130041612 +0200 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c @@ -104,6 +104,7 @@ static void __devinit quirk_mmio_always_ } DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, quirk_mmio_always_on); diff --git a/target/linux/generic/patches-2.6.38/031-pci_disable_usb_common_quirks.patch b/target/linux/generic/patches-2.6.38/811-pci_disable_usb_common_quirks.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/031-pci_disable_usb_common_quirks.patch rename to target/linux/generic/patches-2.6.38/811-pci_disable_usb_common_quirks.patch diff --git a/target/linux/generic/patches-2.6.38/310-usb-add-usb_find_device_by_name.patch b/target/linux/generic/patches-2.6.38/820-usb_add_usb_find_device_by_name.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/310-usb-add-usb_find_device_by_name.patch rename to target/linux/generic/patches-2.6.38/820-usb_add_usb_find_device_by_name.patch diff --git a/target/linux/generic/patches-2.6.38/801-usb_serial_endpoint_size.patch b/target/linux/generic/patches-2.6.38/821-usb_serial_endpoint_size.patch similarity index 74% rename from target/linux/generic/patches-2.6.38/801-usb_serial_endpoint_size.patch rename to target/linux/generic/patches-2.6.38/821-usb_serial_endpoint_size.patch index 726dc7dd53..3dd419f2ae 100644 --- a/target/linux/generic/patches-2.6.38/801-usb_serial_endpoint_size.patch +++ b/target/linux/generic/patches-2.6.38/821-usb_serial_endpoint_size.patch @@ -1,7 +1,5 @@ -Index: linux-2.6.38.1/drivers/usb/serial/usb-serial.c -=================================================================== ---- linux-2.6.38.1.orig/drivers/usb/serial/usb-serial.c 2011-03-23 21:04:47.000000000 +0100 -+++ linux-2.6.38.1/drivers/usb/serial/usb-serial.c 2011-03-28 16:58:26.673254994 +0200 +--- a/drivers/usb/serial/usb-serial.c ++++ b/drivers/usb/serial/usb-serial.c @@ -61,6 +61,7 @@ static struct usb_driver usb_serial_driv drivers depend on it. */ diff --git a/target/linux/generic/patches-2.6.38/400-ledtrig_morse.patch b/target/linux/generic/patches-2.6.38/830-ledtrig_morse.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/400-ledtrig_morse.patch rename to target/linux/generic/patches-2.6.38/830-ledtrig_morse.patch diff --git a/target/linux/generic/patches-2.6.38/402-ledtrig_netdev.patch b/target/linux/generic/patches-2.6.38/831-ledtrig_netdev.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/402-ledtrig_netdev.patch rename to target/linux/generic/patches-2.6.38/831-ledtrig_netdev.patch diff --git a/target/linux/generic/patches-2.6.38/403-ledtrig-usbdev.patch b/target/linux/generic/patches-2.6.38/832-ledtrig_usbdev.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/403-ledtrig-usbdev.patch rename to target/linux/generic/patches-2.6.38/832-ledtrig_usbdev.patch diff --git a/target/linux/generic/patches-2.6.38/410-gpio_buttons.patch b/target/linux/generic/patches-2.6.38/833-gpio_buttons.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/410-gpio_buttons.patch rename to target/linux/generic/patches-2.6.38/833-gpio_buttons.patch diff --git a/target/linux/generic/patches-2.6.38/411-gpio_ioctl.patch b/target/linux/generic/patches-2.6.38/834-gpio_ioctl.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/411-gpio_ioctl.patch rename to target/linux/generic/patches-2.6.38/834-gpio_ioctl.patch diff --git a/target/linux/generic/patches-2.6.38/420-gpiodev.patch b/target/linux/generic/patches-2.6.38/835-gpiodev.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/420-gpiodev.patch rename to target/linux/generic/patches-2.6.38/835-gpiodev.patch diff --git a/target/linux/generic/patches-2.6.38/700-rtc7301.patch b/target/linux/generic/patches-2.6.38/840-rtc7301.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/700-rtc7301.patch rename to target/linux/generic/patches-2.6.38/840-rtc7301.patch diff --git a/target/linux/generic/patches-2.6.38/750-glamo-headers.patch b/target/linux/generic/patches-2.6.38/850-glamo_headers.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/750-glamo-headers.patch rename to target/linux/generic/patches-2.6.38/850-glamo_headers.patch diff --git a/target/linux/generic/patches-2.6.38/920-01-hotpluggable-spi-gpio.patch b/target/linux/generic/patches-2.6.38/860-01_hotpluggable_spi_gpio.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/920-01-hotpluggable-spi-gpio.patch rename to target/linux/generic/patches-2.6.38/860-01_hotpluggable_spi_gpio.patch diff --git a/target/linux/generic/patches-2.6.38/920-04-spi-gpio-implement-spi-delay.patch b/target/linux/generic/patches-2.6.38/861-04_spi_gpio_implement_spi_delay.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/920-04-spi-gpio-implement-spi-delay.patch rename to target/linux/generic/patches-2.6.38/861-04_spi_gpio_implement_spi_delay.patch diff --git a/target/linux/generic/patches-2.6.38/921-gpio_spi_driver.patch b/target/linux/generic/patches-2.6.38/862-gpio_spi_driver.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/921-gpio_spi_driver.patch rename to target/linux/generic/patches-2.6.38/862-gpio_spi_driver.patch diff --git a/target/linux/generic/patches-2.6.38/922-gpiommc.patch b/target/linux/generic/patches-2.6.38/863-gpiommc.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/922-gpiommc.patch rename to target/linux/generic/patches-2.6.38/863-gpiommc.patch diff --git a/target/linux/generic/patches-2.6.38/923-gpiommc-configfs-locking.patch b/target/linux/generic/patches-2.6.38/864-gpiommc_configfs_locking.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/923-gpiommc-configfs-locking.patch rename to target/linux/generic/patches-2.6.38/864-gpiommc_configfs_locking.patch diff --git a/target/linux/generic/patches-2.6.38/975-hifn795x-byteswap.patch b/target/linux/generic/patches-2.6.38/870-hifn795x_byteswap.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/975-hifn795x-byteswap.patch rename to target/linux/generic/patches-2.6.38/870-hifn795x_byteswap.patch diff --git a/target/linux/generic/patches-2.6.38/203-slab_maxsize.patch b/target/linux/generic/patches-2.6.38/900-slab_maxsize.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/203-slab_maxsize.patch rename to target/linux/generic/patches-2.6.38/900-slab_maxsize.patch diff --git a/target/linux/generic/patches-2.6.38/219-kobject_uevent.patch b/target/linux/generic/patches-2.6.38/910-kobject_uevent.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/219-kobject_uevent.patch rename to target/linux/generic/patches-2.6.38/910-kobject_uevent.patch diff --git a/target/linux/generic/patches-2.6.38/223-kobject-add-broadcast_uevent.patch b/target/linux/generic/patches-2.6.38/911-kobject_add_broadcast_uevent.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/223-kobject-add-broadcast_uevent.patch rename to target/linux/generic/patches-2.6.38/911-kobject_add_broadcast_uevent.patch diff --git a/target/linux/generic/patches-2.6.38/840-unable_to_open_console.patch b/target/linux/generic/patches-2.6.38/920-unable_to_open_console.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/840-unable_to_open_console.patch rename to target/linux/generic/patches-2.6.38/920-unable_to_open_console.patch diff --git a/target/linux/generic/patches-2.6.38/999-use_preinit_as_init.patch b/target/linux/generic/patches-2.6.38/921-use_preinit_as_init.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/999-use_preinit_as_init.patch rename to target/linux/generic/patches-2.6.38/921-use_preinit_as_init.patch diff --git a/target/linux/generic/patches-2.6.38/970-ocf_kbuild_integration.patch b/target/linux/generic/patches-2.6.38/940-ocf_kbuild_integration.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/970-ocf_kbuild_integration.patch rename to target/linux/generic/patches-2.6.38/940-ocf_kbuild_integration.patch diff --git a/target/linux/generic/patches-2.6.38/971-ocf_20100325.patch b/target/linux/generic/patches-2.6.38/941-ocf_20100325.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/971-ocf_20100325.patch rename to target/linux/generic/patches-2.6.38/941-ocf_20100325.patch diff --git a/target/linux/generic/patches-2.6.38/980-vm_exports.patch b/target/linux/generic/patches-2.6.38/950-vm_exports.patch similarity index 60% rename from target/linux/generic/patches-2.6.38/980-vm_exports.patch rename to target/linux/generic/patches-2.6.38/950-vm_exports.patch index 05f1b4da32..d23ce2ce13 100644 --- a/target/linux/generic/patches-2.6.38/980-vm_exports.patch +++ b/target/linux/generic/patches-2.6.38/950-vm_exports.patch @@ -1,7 +1,5 @@ -Index: linux-2.6.38.2/mm/shmem.c -=================================================================== ---- linux-2.6.38.2.orig/mm/shmem.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/mm/shmem.c 2011-03-30 18:44:41.068346925 +0200 +--- a/mm/shmem.c ++++ b/mm/shmem.c @@ -2710,6 +2710,16 @@ out: /* common code */ @@ -32,10 +30,8 @@ Index: linux-2.6.38.2/mm/shmem.c + return 0; } -Index: linux-2.6.38.2/fs/file.c -=================================================================== ---- linux-2.6.38.2.orig/fs/file.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/fs/file.c 2011-03-28 22:44:57.267151662 +0200 +--- a/fs/file.c ++++ b/fs/file.c @@ -264,6 +264,7 @@ int expand_files(struct files_struct *fi /* All good, so we try */ return expand_fdtable(files, nr); @@ -44,10 +40,8 @@ Index: linux-2.6.38.2/fs/file.c static int count_open_files(struct fdtable *fdt) { -Index: linux-2.6.38.2/kernel/exit.c -=================================================================== ---- linux-2.6.38.2.orig/kernel/exit.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/kernel/exit.c 2011-03-28 22:44:57.269151650 +0200 +--- a/kernel/exit.c ++++ b/kernel/exit.c @@ -513,6 +513,7 @@ struct files_struct *get_files_struct(st return files; @@ -64,10 +58,8 @@ Index: linux-2.6.38.2/kernel/exit.c void reset_files_struct(struct files_struct *files) { -Index: linux-2.6.38.2/kernel/fork.c -=================================================================== ---- linux-2.6.38.2.orig/kernel/fork.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/kernel/fork.c 2011-03-28 22:44:57.270151644 +0200 +--- a/kernel/fork.c ++++ b/kernel/fork.c @@ -193,6 +193,7 @@ void __put_task_struct(struct task_struc if (!profile_handoff_task(tsk)) free_task(tsk); @@ -76,10 +68,8 @@ Index: linux-2.6.38.2/kernel/fork.c /* * macro override instead of weak attribute alias, to workaround -Index: linux-2.6.38.2/kernel/sched.c -=================================================================== ---- linux-2.6.38.2.orig/kernel/sched.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/kernel/sched.c 2011-03-28 22:44:57.274151620 +0200 +--- a/kernel/sched.c ++++ b/kernel/sched.c @@ -4641,6 +4641,7 @@ int can_nice(const struct task_struct *p return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || capable(CAP_SYS_NICE)); @@ -88,10 +78,8 @@ Index: linux-2.6.38.2/kernel/sched.c #ifdef __ARCH_WANT_SYS_NICE -Index: linux-2.6.38.2/mm/memory.c -=================================================================== ---- linux-2.6.38.2.orig/mm/memory.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/mm/memory.c 2011-03-28 22:44:57.277151603 +0200 +--- a/mm/memory.c ++++ b/mm/memory.c @@ -1229,6 +1229,7 @@ unsigned long zap_page_range(struct vm_a tlb_finish_mmu(tlb, address, end); return end; @@ -108,10 +96,8 @@ Index: linux-2.6.38.2/mm/memory.c /* * We enter with non-exclusive mmap_sem (to exclude vma changes, -Index: linux-2.6.38.2/mm/vmalloc.c -=================================================================== ---- linux-2.6.38.2.orig/mm/vmalloc.c 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/mm/vmalloc.c 2011-03-28 22:44:57.278151598 +0200 +--- a/mm/vmalloc.c ++++ b/mm/vmalloc.c @@ -1193,6 +1193,7 @@ void unmap_kernel_range(unsigned long ad vunmap_page_range(addr, end); flush_tlb_kernel_range(addr, end); @@ -128,10 +114,8 @@ Index: linux-2.6.38.2/mm/vmalloc.c struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags, void *caller) -Index: linux-2.6.38.2/include/linux/mm.h -=================================================================== ---- linux-2.6.38.2.orig/include/linux/mm.h 2011-03-27 20:37:20.000000000 +0200 -+++ linux-2.6.38.2/include/linux/mm.h 2011-03-28 22:44:57.279151592 +0200 +--- a/include/linux/mm.h ++++ b/include/linux/mm.h @@ -863,6 +863,7 @@ extern void show_free_areas(void); int shmem_lock(struct file *file, int lock, struct user_struct *user); diff --git a/target/linux/generic/patches-2.6.38/009-decompress_unlzo_fix.patch b/target/linux/generic/patches-2.6.38/960-decompress_unlzo_fix.patch similarity index 100% rename from target/linux/generic/patches-2.6.38/009-decompress_unlzo_fix.patch rename to target/linux/generic/patches-2.6.38/960-decompress_unlzo_fix.patch