[LEDE-DEV] [PATCH v3 09/10] mwlwifi: fix compile problem with kernel 4.14

Hauke Mehrtens hauke at hauke-m.de
Sun Feb 11 14:46:17 PST 2018


vfs_write() is not exported on kernel 4.14 any more and kernel_write()
should be used instead.

Signed-off-by: Hauke Mehrtens <hauke at hauke-m.de>
---
 .../mwlwifi/patches/001-remove-vfs_write.patch     | 92 ++++++++++++++++++++++
 1 file changed, 92 insertions(+)
 create mode 100644 package/kernel/mwlwifi/patches/001-remove-vfs_write.patch

diff --git a/package/kernel/mwlwifi/patches/001-remove-vfs_write.patch b/package/kernel/mwlwifi/patches/001-remove-vfs_write.patch
new file mode 100644
index 0000000000..9703d1d688
--- /dev/null
+++ b/package/kernel/mwlwifi/patches/001-remove-vfs_write.patch
@@ -0,0 +1,92 @@
+--- a/debugfs.c
++++ b/debugfs.c
+@@ -279,7 +279,6 @@ static void core_dump_file(u8 *valbuf, u
+ 			   u32 append, u32 totallen, bool textmode)
+ {
+ 	struct file *filp_core = NULL;
+-	mm_segment_t oldfs;
+ 	char file_name[40];
+ 	u8 *buf = kmalloc(length * 3, GFP_KERNEL);
+ 	u8 *data_p = buf;
+@@ -292,9 +291,6 @@ static void core_dump_file(u8 *valbuf, u
+ 	sprintf(file_name, "/dev/shm/coredump-%x-%x",
+ 		region, (region + totallen));
+ 
+-	oldfs = get_fs();
+-	set_fs(KERNEL_DS);
+-
+ 	if (append)
+ 		filp_core = filp_open(file_name, O_RDWR | O_APPEND, 0);
+ 	else
+@@ -317,15 +313,15 @@ static void core_dump_file(u8 *valbuf, u
+ 			}
+ 			data_p = buf + j;
+ 			data_p += sprintf(data_p, "\n");
+-			vfs_write(filp_core, buf, strlen(buf),
+-				  &filp_core->f_pos);
++			kernel_write(filp_core, buf, strlen(buf),
++				     &filp_core->f_pos);
+ 		} else
+-			vfs_write(filp_core, valbuf, length, &filp_core->f_pos);
++			kernel_write(filp_core, valbuf, length,
++				     &filp_core->f_pos);
+ 
+ 		filp_close(filp_core, current->files);
+ 	}
+ 
+-	set_fs(oldfs);
+ 	kfree(buf);
+ }
+ 
+@@ -1338,7 +1334,6 @@ static ssize_t mwl_debugfs_ba_hist_read(
+ 	u8 bmap0flag, nobaflag;
+ 	char buff[500], file_location[20];
+ 	struct file *filp_bahisto;
+-	mm_segment_t oldfs;
+ 	u8 *data_p = buff;
+ 	ssize_t ret;
+ 
+@@ -1354,13 +1349,10 @@ static ssize_t mwl_debugfs_ba_hist_read(
+ 	memset(file_location, 0, sizeof(file_location));
+ 	sprintf(file_location, "/tmp/ba_histo-%d", priv->ba_aid);
+ 
+-	oldfs = get_fs();
+-	set_fs(KERNEL_DS);
+ 	filp_bahisto = filp_open(file_location,
+ 				 O_RDWR | O_CREAT | O_TRUNC, 0);
+ 
+ 	if (IS_ERR(filp_bahisto)) {
+-		set_fs(oldfs);
+ 		ret = -EIO;
+ 		goto err;
+ 	}
+@@ -1401,8 +1393,8 @@ static ssize_t mwl_debugfs_ba_hist_read(
+ 
+ 			/* Buffer is full. Write to file and reset buf */
+ 			if ((strlen(buff) + 36) >= 500) {
+-				vfs_write(filp_bahisto, buff, strlen(buff),
+-					  &filp_bahisto->f_pos);
++				kernel_write(filp_bahisto, buff, strlen(buff),
++					     &filp_bahisto->f_pos);
+ 				mdelay(2);
+ 				memset(buff, 0, sizeof(buff));
+ 				data_p = buff;
+@@ -1426,8 +1418,8 @@ static ssize_t mwl_debugfs_ba_hist_read(
+ 				data_p += sprintf(data_p, "%8d\n", nobaflag);
+ 		}
+ 
+-		vfs_write(filp_bahisto, buff, strlen(buff),
+-			  &filp_bahisto->f_pos);
++		kernel_write(filp_bahisto, buff, strlen(buff),
++			     &filp_bahisto->f_pos);
+ 		len += scnprintf(p + len, size - len,
+ 				 "hole: %d, expect: %d, bmap0: %d, noba: %d\n",
+ 				 baholecnt, baexpcnt, bmap0cnt, nobacnt);
+@@ -1440,7 +1432,6 @@ static ssize_t mwl_debugfs_ba_hist_read(
+ 				 priv->ba_aid);
+ 
+ 	filp_close(filp_bahisto, current->files);
+-	set_fs(oldfs);
+ 
+ 	ret = simple_read_from_buffer(ubuf, count, ppos, p, len);
+ 
-- 
2.11.0




More information about the Lede-dev mailing list