ifeq ($(LINUX_VERSION),3.13.7)
LINUX_KERNEL_MD5SUM:=370adced5e5c1cb1d0d621c2dae2723f
endif
-ifeq ($(LINUX_VERSION),3.14.5)
- LINUX_KERNEL_MD5SUM:=db2f2b8a83239852b72e560811eb80de
+ifeq ($(LINUX_VERSION),3.14.7)
+ LINUX_KERNEL_MD5SUM:=046c448e477d534780ff7dad369b499f
endif
# disable the md5sum check for unknown kernel versions
7 files changed, 718 insertions(+)
create mode 100644 drivers/mtd/ubi/block.c
-diff --git a/drivers/mtd/ubi/Kconfig b/drivers/mtd/ubi/Kconfig
-index 36663af..783fb18 100644
--- a/drivers/mtd/ubi/Kconfig
+++ b/drivers/mtd/ubi/Kconfig
@@ -87,4 +87,19 @@ config MTD_UBI_GLUEBI
+ If in doubt, say "N".
+
endif # MTD_UBI
-diff --git a/drivers/mtd/ubi/Makefile b/drivers/mtd/ubi/Makefile
-index b46b0c97..4e3c3d7 100644
--- a/drivers/mtd/ubi/Makefile
+++ b/drivers/mtd/ubi/Makefile
@@ -3,5 +3,6 @@ obj-$(CONFIG_MTD_UBI) += ubi.o
+ubi-$(CONFIG_MTD_UBI_BLOCK) += block.o
obj-$(CONFIG_MTD_UBI_GLUEBI) += gluebi.o
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-new file mode 100644
-index 0000000..cea7d1c
--- /dev/null
+++ b/drivers/mtd/ubi/block.c
@@ -0,0 +1,646 @@
+ ubiblock_detach_all();
+ unregister_blkdev(ubiblock_major, "ubiblock");
+}
-diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
-index 57deae9..6e30a3c 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1298,6 +1298,15 @@ static int __init ubi_init(void)
for (i = 0; i < UBI_MAX_DEVICES; i++)
if (ubi_devices[i]) {
mutex_lock(&ubi_devices_mutex);
-diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c
-index 8ca49f2..39d3774 100644
--- a/drivers/mtd/ubi/cdev.c
+++ b/drivers/mtd/ubi/cdev.c
-@@ -561,6 +561,26 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
+@@ -561,6 +561,26 @@ static long vol_cdev_ioctl(struct file *
break;
}
default:
err = -ENOTTY;
break;
-diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h
-index 8ea6297..e76ff98 100644
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
-@@ -864,6 +864,20 @@ int ubi_update_fastmap(struct ubi_device *ubi);
+@@ -864,6 +864,20 @@ int ubi_update_fastmap(struct ubi_device
int ubi_scan_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai,
int fm_anchor);
/*
* ubi_rb_for_each_entry - walk an RB-tree.
* @rb: a pointer to type 'struct rb_node' to use as a loop counter
-diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h
-index 723c324..b98585a 100644
--- a/include/uapi/mtd/ubi-user.h
+++ b/include/uapi/mtd/ubi-user.h
@@ -134,6 +134,13 @@
/* Maximum MTD device name length supported by UBI */
#define MAX_UBI_MTD_NAME_LEN 127
---
-1.9.2
-
drivers/mtd/ubi/ubi.h | 14 ++++++++++----
3 files changed, 32 insertions(+), 25 deletions(-)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index cea7d1c..6402e41 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -29,10 +29,10 @@
*/
#include <linux/module.h>
-@@ -374,7 +374,7 @@ static const struct block_device_operations ubiblock_ops = {
+@@ -374,7 +374,7 @@ static const struct block_device_operati
.getgeo = ubiblock_getgeo,
};
{
struct ubiblock *dev;
struct gendisk *gd;
-@@ -464,7 +464,7 @@ static void ubiblock_cleanup(struct ubiblock *dev)
+@@ -464,7 +464,7 @@ static void ubiblock_cleanup(struct ubib
put_disk(dev->gd);
}
{
struct ubiblock *dev;
-@@ -503,7 +503,8 @@ static void ubiblock_resize(struct ubi_volume_info *vi)
+@@ -503,7 +503,8 @@ static void ubiblock_resize(struct ubi_v
/*
* Need to lock the device list until we stop using the device,
*/
mutex_lock(&devices_mutex);
dev = find_dev_nolock(vi->ubi_num, vi->vol_id);
-@@ -528,12 +529,12 @@ static int ubiblock_notify(struct notifier_block *nb,
+@@ -528,12 +529,12 @@ static int ubiblock_notify(struct notifi
switch (notification_type) {
case UBI_VOLUME_ADDED:
/*
break;
case UBI_VOLUME_RESIZED:
ubiblock_resize(&nt->vi);
-@@ -561,7 +562,7 @@ open_volume_desc(const char *name, int ubi_num, int vol_id)
+@@ -561,7 +562,7 @@ open_volume_desc(const char *name, int u
return ubi_open_volume(ubi_num, vol_id, UBI_READONLY);
}
{
int i, ret;
struct ubiblock_param *p;
-@@ -582,7 +583,7 @@ static int __init ubiblock_attach_from_param(void)
+@@ -582,7 +583,7 @@ static int __init ubiblock_attach_from_p
ubi_get_volume_info(desc, &vi);
ubi_close_volume(desc);
if (ret) {
ubi_err("block: can't add '%s' volume, err=%d\n",
vi.name, ret);
-@@ -592,7 +593,7 @@ static int __init ubiblock_attach_from_param(void)
+@@ -592,7 +593,7 @@ static int __init ubiblock_attach_from_p
return ret;
}
+ ubiblock_remove_all();
unregister_blkdev(ubiblock_major, "ubiblock");
}
-diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c
-index 39d3774..11c8473 100644
--- a/drivers/mtd/ubi/cdev.c
+++ b/drivers/mtd/ubi/cdev.c
-@@ -567,7 +567,7 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
+@@ -567,7 +567,7 @@ static long vol_cdev_ioctl(struct file *
struct ubi_volume_info vi;
ubi_get_volume_info(desc, &vi);
break;
}
-@@ -577,7 +577,7 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
+@@ -577,7 +577,7 @@ static long vol_cdev_ioctl(struct file *
struct ubi_volume_info vi;
ubi_get_volume_info(desc, &vi);
break;
}
-diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h
-index e76ff98..2e588a9 100644
--- a/drivers/mtd/ubi/ubi.h
+++ b/drivers/mtd/ubi/ubi.h
-@@ -868,13 +868,19 @@ int ubi_scan_fastmap(struct ubi_device *ubi, struct ubi_attach_info *ai,
+@@ -868,13 +868,19 @@ int ubi_scan_fastmap(struct ubi_device *
#ifdef CONFIG_MTD_UBI_BLOCK
int ubiblock_init(void);
void ubiblock_exit(void);
#endif
---
-1.9.2
-
drivers/mtd/ubi/block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index 6402e41..cd6be98 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
-@@ -156,7 +156,7 @@ static int __init ubiblock_set_param(const char *val,
+@@ -156,7 +156,7 @@ static int __init ubiblock_set_param(con
return 0;
}
.set = ubiblock_set_param,
};
module_param_cb(block, &ubiblock_param_ops, NULL, 0);
---
-1.9.2
-
drivers/mtd/ubi/block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index cd6be98..16e6731 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
-@@ -201,7 +201,7 @@ static int ubiblock_read(struct ubiblock *dev, char *buffer,
+@@ -201,7 +201,7 @@ static int ubiblock_read(struct ubiblock
int ret, leb, offset;
int bytes_left = len;
int to_read = len;
/* Get LEB:offset address to read from */
offset = do_div(pos, dev->leb_size);
---
-1.9.2
-
include/uapi/mtd/ubi-user.h | 14 +++++++-------
3 files changed, 12 insertions(+), 12 deletions(-)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index 16e6731..69a74fd 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -32,7 +32,7 @@
*/
#include <linux/module.h>
-diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c
-index 11c8473..f54562a 100644
--- a/drivers/mtd/ubi/cdev.c
+++ b/drivers/mtd/ubi/cdev.c
-@@ -561,8 +561,8 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
+@@ -561,8 +561,8 @@ static long vol_cdev_ioctl(struct file *
break;
}
{
struct ubi_volume_info vi;
-@@ -571,8 +571,8 @@ static long vol_cdev_ioctl(struct file *file, unsigned int cmd,
+@@ -571,8 +571,8 @@ static long vol_cdev_ioctl(struct file *
break;
}
{
struct ubi_volume_info vi;
-diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h
-index b98585a..9c885e2 100644
--- a/include/uapi/mtd/ubi-user.h
+++ b/include/uapi/mtd/ubi-user.h
@@ -138,9 +138,9 @@
/* Maximum MTD device name length supported by UBI */
#define MAX_UBI_MTD_NAME_LEN 127
---
-1.9.2
-
drivers/mtd/ubi/block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index 69a74fd..7ff473c 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
-@@ -156,7 +156,7 @@ static int __init ubiblock_set_param(const char *val,
+@@ -156,7 +156,7 @@ static int __init ubiblock_set_param(con
return 0;
}
.set = ubiblock_set_param,
};
module_param_cb(block, &ubiblock_param_ops, NULL, 0);
---
-1.9.2
-
drivers/mtd/ubi/block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index 7ff473c..8d659e6 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
-@@ -431,7 +431,7 @@ int ubiblock_create(struct ubi_volume_info *vi)
+@@ -431,7 +431,7 @@ int ubiblock_create(struct ubi_volume_in
* Create one workqueue per volume (per registered block device).
* Rembember workqueues are cheap, they're not threads.
*/
if (!dev->wq)
goto out_free_queue;
INIT_WORK(&dev->work, ubiblock_do_work);
---
-1.9.2
-
include/uapi/mtd/ubi-user.h | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
-diff --git a/include/uapi/mtd/ubi-user.h b/include/uapi/mtd/ubi-user.h
-index 9c885e2..1927b0d 100644
--- a/include/uapi/mtd/ubi-user.h
+++ b/include/uapi/mtd/ubi-user.h
@@ -138,9 +138,12 @@
+} __packed;
+
#endif /* __UBI_USER_H__ */
---
-1.9.2
-
{USB_DEVICE(0x0af0, 0xd155)},
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
-@@ -1266,6 +1266,18 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
+@@ -1280,6 +1280,18 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
0 ),
config INIT_ALL_POSSIBLE
--- a/kernel/module.c
+++ b/kernel/module.c
-@@ -2664,6 +2664,7 @@ static struct module *setup_load_info(st
+@@ -2661,6 +2661,7 @@ static struct module *setup_load_info(st
static int check_modinfo(struct module *mod, struct load_info *info, int flags)
{
const char *modmagic = get_modinfo(info, "vermagic");
int err;
-@@ -2689,6 +2690,7 @@ static int check_modinfo(struct module *
+@@ -2686,6 +2687,7 @@ static int check_modinfo(struct module *
pr_warn("%s: module is from the staging directory, the quality "
"is unknown, you have been warned.\n", mod->name);
}
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
-@@ -189,7 +189,8 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
+@@ -191,7 +191,8 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
KBUILD_CFLAGS += -mno-sched-epilog
endif
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
-@@ -156,7 +156,6 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)
+@@ -158,7 +158,6 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)
CHECKFLAGS += -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
drivers/mtd/ubi/build.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
-diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
-index 6e30a3c..999a36b 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
-@@ -1209,6 +1209,36 @@ static struct mtd_info * __init open_mtd_device(const char *mtd_dev)
+@@ -1209,6 +1209,36 @@ static struct mtd_info * __init open_mtd
return mtd;
}
err = ubiblock_init();
if (err) {
ubi_err("block: cannot initialize, error %d", err);
---
-1.9.2
-
drivers/mtd/ubi/block.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index 8d659e6..2dbe2f4 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
-@@ -593,6 +593,44 @@ static int __init ubiblock_create_from_param(void)
+@@ -593,6 +593,44 @@ static int __init ubiblock_create_from_p
return ret;
}
/*
* Block devices are only created upon user requests, so we ignore
* existing volumes.
---
-1.9.2
-
init/do_mounts.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
-diff --git a/init/do_mounts.c b/init/do_mounts.c
-index 82f2288..faba9c6 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -432,7 +432,27 @@ retry:
#ifdef CONFIG_BLOCK
create_dev("/dev/root", ROOT_DEV);
mount_block_root("/dev/root", root_mountflags);
---
-1.9.2
-
drivers/mtd/ubi/block.c | 10 ++++++++++
1 file changed, 10 insertions(+)
-diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c
-index 2dbe2f4..eaa29f8 100644
--- a/drivers/mtd/ubi/block.c
+++ b/drivers/mtd/ubi/block.c
@@ -48,6 +48,7 @@
#include "ubi-media.h"
#include "ubi.h"
-@@ -444,6 +445,15 @@ int ubiblock_create(struct ubi_volume_info *vi)
+@@ -444,6 +445,15 @@ int ubiblock_create(struct ubi_volume_in
add_disk(dev->gd);
ubi_msg("%s created from ubi%d:%d(%s)",
dev->gd->disk_name, dev->ubi_num, dev->vol_id, vi->name);
return 0;
out_free_queue:
---
-1.9.2
-
fs/ubifs/ubifs.h | 2 +-
5 files changed, 22 insertions(+), 16 deletions(-)
-diff --git a/fs/ubifs/commit.c b/fs/ubifs/commit.c
-index ff82293..865d13f 100644
--- a/fs/ubifs/commit.c
+++ b/fs/ubifs/commit.c
-@@ -542,7 +542,7 @@ int dbg_old_index_check_init(struct ubifs_info *c, struct ubifs_zbranch *zroot)
+@@ -542,7 +542,7 @@ int dbg_old_index_check_init(struct ubif
if (!idx)
return -ENOMEM;
if (err)
goto out;
-@@ -610,7 +610,7 @@ int dbg_check_old_index(struct ubifs_info *c, struct ubifs_zbranch *zroot)
+@@ -610,7 +610,7 @@ int dbg_check_old_index(struct ubifs_inf
list_add_tail(&i->list, &list);
/* Read the index node */
idx = &i->idx;
if (err)
goto out_free;
/* Validate index node */
-diff --git a/fs/ubifs/io.c b/fs/ubifs/io.c
-index e18b988..51c4072 100644
--- a/fs/ubifs/io.c
+++ b/fs/ubifs/io.c
-@@ -912,7 +912,7 @@ int ubifs_read_node_wbuf(struct ubifs_wbuf *wbuf, void *buf, int type, int len,
+@@ -912,7 +912,7 @@ int ubifs_read_node_wbuf(struct ubifs_wb
if (!overlap) {
/* We may safely unlock the write-buffer and read the data */
spin_unlock(&wbuf->lock);
{
int err, l;
struct ubifs_ch *ch = buf;
-@@ -988,30 +989,34 @@ int ubifs_read_node(const struct ubifs_info *c, void *buf, int type, int len,
+@@ -988,30 +989,34 @@ int ubifs_read_node(const struct ubifs_i
return err;
if (type != ch->node_type) {
return -EINVAL;
}
-diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
-index 4c37607..b46847d 100644
--- a/fs/ubifs/sb.c
+++ b/fs/ubifs/sb.c
-@@ -482,14 +482,15 @@ failed:
+@@ -493,14 +493,15 @@ failed:
struct ubifs_sb_node *ubifs_read_sb_node(struct ubifs_info *c)
{
struct ubifs_sb_node *sup;
if (err) {
kfree(sup);
return ERR_PTR(err);
-diff --git a/fs/ubifs/tnc_misc.c b/fs/ubifs/tnc_misc.c
-index f6bf899..e128689 100644
--- a/fs/ubifs/tnc_misc.c
+++ b/fs/ubifs/tnc_misc.c
-@@ -280,7 +280,7 @@ static int read_znode(struct ubifs_info *c, int lnum, int offs, int len,
+@@ -280,7 +280,7 @@ static int read_znode(struct ubifs_info
if (!idx)
return -ENOMEM;
if (err < 0) {
kfree(idx);
return err;
-@@ -472,7 +472,7 @@ int ubifs_tnc_read_node(struct ubifs_info *c, struct ubifs_zbranch *zbr,
+@@ -472,7 +472,7 @@ int ubifs_tnc_read_node(struct ubifs_inf
zbr->lnum, zbr->offs);
else
err = ubifs_read_node(c, node, type, zbr->len, zbr->lnum,
if (err) {
dbg_tnck(key, "key ");
-diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
-index e8c8cfe..85fdd11 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
-@@ -1481,7 +1481,7 @@ int ubifs_wbuf_write_nolock(struct ubifs_wbuf *wbuf, void *buf, int len);
+@@ -1481,7 +1481,7 @@ int ubifs_wbuf_write_nolock(struct ubifs
int ubifs_wbuf_seek_nolock(struct ubifs_wbuf *wbuf, int lnum, int offs);
int ubifs_wbuf_init(struct ubifs_info *c, struct ubifs_wbuf *wbuf);
int ubifs_read_node(const struct ubifs_info *c, void *buf, int type, int len,
int ubifs_read_node_wbuf(struct ubifs_wbuf *wbuf, void *buf, int type, int len,
int lnum, int offs);
int ubifs_write_node(struct ubifs_info *c, void *node, int len, int lnum,
---
-1.9.2
-
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
{
u16 cmd;
-@@ -1063,3 +1078,4 @@ static void quirk_usb_early_handoff(stru
+@@ -1070,3 +1085,4 @@ static void quirk_usb_early_handoff(stru
}
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
FEATURES:=ext4 vdi vmdk targz
MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>
-LINUX_VERSION:=3.14.5
+LINUX_VERSION:=3.14.7
KERNELNAME:=bzImage
CONFIG_ACPI_PROCESSOR=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
# CONFIG_ACPI_PROCFS is not set
+# CONFIG_ACPI_PROCFS_POWER is not set
# CONFIG_ACPI_SBS is not set
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_WMI is not set