From 56dd5c4388d44cc116841519b819acf2852fcf6c Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Wed, 1 Jun 2011 02:23:22 +0000
Subject: fix a crash in mtd_concat when the .sync op is not implemented

SVN-Revision: 27074
---
 .../generic/patches-2.6.37/475-mtd_concat_sync_fix.patch     | 12 ++++++++++++
 .../generic/patches-2.6.38/474-mtd_concat_sync_fix.patch     | 12 ++++++++++++
 .../generic/patches-2.6.39/474-mtd_concat_sync_fix.patch     | 12 ++++++++++++
 3 files changed, 36 insertions(+)
 create mode 100644 target/linux/generic/patches-2.6.37/475-mtd_concat_sync_fix.patch
 create mode 100644 target/linux/generic/patches-2.6.38/474-mtd_concat_sync_fix.patch
 create mode 100644 target/linux/generic/patches-2.6.39/474-mtd_concat_sync_fix.patch

(limited to 'target/linux')

diff --git a/target/linux/generic/patches-2.6.37/475-mtd_concat_sync_fix.patch b/target/linux/generic/patches-2.6.37/475-mtd_concat_sync_fix.patch
new file mode 100644
index 0000000000..4e3426b7bd
--- /dev/null
+++ b/target/linux/generic/patches-2.6.37/475-mtd_concat_sync_fix.patch
@@ -0,0 +1,12 @@
+--- a/drivers/mtd/mtdconcat.c
++++ b/drivers/mtd/mtdconcat.c
+@@ -619,7 +619,8 @@ static void concat_sync(struct mtd_info 
+ 
+ 	for (i = 0; i < concat->num_subdev; i++) {
+ 		struct mtd_info *subdev = concat->subdev[i];
+-		subdev->sync(subdev);
++		if (subdev->sync)
++			subdev->sync(subdev);
+ 	}
+ }
+ 
diff --git a/target/linux/generic/patches-2.6.38/474-mtd_concat_sync_fix.patch b/target/linux/generic/patches-2.6.38/474-mtd_concat_sync_fix.patch
new file mode 100644
index 0000000000..4e3426b7bd
--- /dev/null
+++ b/target/linux/generic/patches-2.6.38/474-mtd_concat_sync_fix.patch
@@ -0,0 +1,12 @@
+--- a/drivers/mtd/mtdconcat.c
++++ b/drivers/mtd/mtdconcat.c
+@@ -619,7 +619,8 @@ static void concat_sync(struct mtd_info 
+ 
+ 	for (i = 0; i < concat->num_subdev; i++) {
+ 		struct mtd_info *subdev = concat->subdev[i];
+-		subdev->sync(subdev);
++		if (subdev->sync)
++			subdev->sync(subdev);
+ 	}
+ }
+ 
diff --git a/target/linux/generic/patches-2.6.39/474-mtd_concat_sync_fix.patch b/target/linux/generic/patches-2.6.39/474-mtd_concat_sync_fix.patch
new file mode 100644
index 0000000000..4e3426b7bd
--- /dev/null
+++ b/target/linux/generic/patches-2.6.39/474-mtd_concat_sync_fix.patch
@@ -0,0 +1,12 @@
+--- a/drivers/mtd/mtdconcat.c
++++ b/drivers/mtd/mtdconcat.c
+@@ -619,7 +619,8 @@ static void concat_sync(struct mtd_info 
+ 
+ 	for (i = 0; i < concat->num_subdev; i++) {
+ 		struct mtd_info *subdev = concat->subdev[i];
+-		subdev->sync(subdev);
++		if (subdev->sync)
++			subdev->sync(subdev);
+ 	}
+ }
+ 
-- 
cgit v1.2.3