summaryrefslogtreecommitdiff
path: root/sys-kernel/pf-sources
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sys-kernel/pf-sources
reinit the tree, so we can have metadata
Diffstat (limited to 'sys-kernel/pf-sources')
-rw-r--r--sys-kernel/pf-sources/Manifest24
-rw-r--r--sys-kernel/pf-sources/files/2100_proc-mem-handling-fix.patch270
-rw-r--r--sys-kernel/pf-sources/metadata.xml11
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.10_p3.ebuild77
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.11_p3.ebuild77
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.11_p4.ebuild77
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.13_p4.ebuild77
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.4_p8.ebuild77
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.5_p4.ebuild77
-rw-r--r--sys-kernel/pf-sources/pf-sources-4.8_p8.ebuild77
10 files changed, 844 insertions, 0 deletions
diff --git a/sys-kernel/pf-sources/Manifest b/sys-kernel/pf-sources/Manifest
new file mode 100644
index 000000000000..cfa5dbb34c6a
--- /dev/null
+++ b/sys-kernel/pf-sources/Manifest
@@ -0,0 +1,24 @@
+AUX 2100_proc-mem-handling-fix.patch 6683 SHA256 4936c8c83bbcdccdecb65ecd4da7fb405fe78786faea8efe3741f462dd9e19c6 SHA512 4746b1706cbd1fc2066b3b4a4cdcced65c65072f93f7e8d711841fb49c670455b17fbd6d74f4c7b33f5a75cb36dee503f48a68bc0d99c01d135876b035ad0bcc WHIRLPOOL e7581c0ea944b49f3983e31f2e843d6ceabcde34eed390fcc2569294b685fd75f32cc65e25462acb9376d69640af3d10badb4738ae62b27c89354855666c7e29
+DIST linux-4.10.tar.xz 94231404 SHA256 3c95d9f049bd085e5c346d2c77f063b8425f191460fcd3ae9fe7e94e0477dc4b SHA512 c3690125a8402df638095bd98a613fcf1a257b81de7611c84711d315cd11e2634ab4636302b3742aedf1e3ba9ce0fea53fe8c7d48e37865d8ee5db3565220d90 WHIRLPOOL 86d021bae2dbfc4ef80c22d9e886bed4fbd9476473a2851d7beaf8ed0c7f7fbc1fa0da230eb9e763eb231b7c164c17b2a73fd336ab233543f57be280d6173738
+DIST linux-4.11.tar.xz 95447768 SHA256 b67ecafd0a42b3383bf4d82f0850cbff92a7e72a215a6d02f42ddbafcf42a7d6 SHA512 6610eed97ffb7207c71771198c36179b8244ace7222bebb109507720e26c5f17d918079a56d5febdd8605844d67fb2df0ebe910fa2f2f53690daf6e2a8ad09c3 WHIRLPOOL f577b7c5c209cb8dfef2f1d56d77314fbd53323743a34b900e2559ab0049b7c2d6262bda136dd3d005bc0527788106e0484e46558448a8720dac389a969e5886
+DIST linux-4.13.tar.xz 100579888 SHA256 2db3d6066c3ad93eb25b973a3d2951e022a7e975ee2fa7cbe5bddf84d9a49a2c SHA512 a557c2f0303ae618910b7106ff63d9978afddf470f03cb72aa748213e099a0ecd5f3119aea6cbd7b61df30ca6ef3ec57044d524b7babbaabddf8b08b8bafa7d2 WHIRLPOOL d3d332e02cd3c5056c76c28cf1f81504c6f7b8f2caed7238e7dd7866747fb03154b88d8d7aec4d0eddf5760624bc7d6c5485fb52a3e32d098a2742eba96c0d05
+DIST linux-4.4.tar.xz 87295988 SHA256 401d7c8fef594999a460d10c72c5a94e9c2e1022f16795ec51746b0d165418b2 SHA512 13c8459933a8b80608e226a1398e3d1848352ace84bcfb7e6a4a33cb230bbe1ab719d4b58e067283df91ce5311be6d2d595fc8c19e2ae6ecc652499415614b3e WHIRLPOOL 02abc203d867404b9934aaa4c1e5b5dcbb0b0021e91a03f3a7e7fd224eed106821d8b4949f32a590536db150e5a88c16fcde88538777a26d0c17900f0257b1bc
+DIST linux-4.5.tar.xz 88375040 SHA256 a40defb401e01b37d6b8c8ad5c1bbab665be6ac6310cdeed59950c96b31a519c SHA512 cb0d5f30baff37dfea40fbc1119a1482182f95858c883e019ee3f81055c8efbdb9dba7dfc02ebcc4216db38f03ece58688e69efc0fce1dade359af30bd5426de WHIRLPOOL 8faa0b02c5733fc45dbe61f82a7022e9246b9b1665f27541d4afa5d14c310b9dce7a8532dfac8273898edf8c6923654ee2fbcf2cec1ec2a220f4c9f926f2b333
+DIST linux-4.8.tar.xz 91966856 SHA256 3e9150065f193d3d94bcf46a1fe9f033c7ef7122ab71d75a7fb5a2f0c9a7e11a SHA512 a48a065f21e1c7c4de4cf8ca47b8b8d9a70f86b64e7cfa6e01be490f78895745b9c8790734b1d22182cf1f930fb87eaaa84e62ec8cc1f64ac4be9b949e7c0358 WHIRLPOOL 3888c8c07db0c069f827245d4d7306087f78f7d03e8240eb1fcd13622cd5dbe1c17cd8ed7dc11513f77f3efd5dbd84e2b48e82bdb9b9bfd2242fd62ae32812d5
+DIST patch-4.10-pf3.xz 326024 SHA256 d38323bb91b6f2b04d1d51247bbfbab57daabc22ad71c0e195f688679db2f7e6 SHA512 f5cf7cad04500574f0a4b06df939d9ff685c038d0116e43b6828c72279a09c793fa6a41c662c7ccef1cc201511d00dab57d27e54292880282dd830aeea5c21c6 WHIRLPOOL d843429160afe36aedb50e7e0ae5522bea3546a2df9fa00a754d5e3423ef3c70b352c793c8898c7489c78af4e9050d26bb5eb7453fe326185d8f3faf1e5e1ee2
+DIST patch-4.11-pf3.xz 206568 SHA256 54ac2cd29f7ecd2a4118100303a959dd2ec415bddbbc56f0072ae6fed71f42cc SHA512 f312cbfc15382cdec02cd9fcca6610c33b33a73e2d468d83aa76be85453250e2788355ebd2694a9fa784068c529b51d0692d0db2b68ab7d855e341c924489038 WHIRLPOOL aca27cfeeac771b4f1c95574d90ef25a3033720c4360c82939515318dd9379833ba82e5be9c91add8cdbdaa1ae332ab6dfaff9137e834802a2dbd2f68f7a1413
+DIST patch-4.11-pf4.xz 265664 SHA256 51b4797a9ea511d1db7c7495a552cdf489a8f18413f9cbc4db705c3e93d7c259 SHA512 d5542663ea8748d3b3bb33fb59a14da018f1b3083003608b7df9253e7778fd5064e5cd090dbe9d5123c7d3051ddd29e40a93525d07542d071c4da6c4b6b6fcd1 WHIRLPOOL 2325985c3e41827b5695af78e91e81ee628c10e78ffd0c24f5bb71f1109aa3a0d688b17d1de76b1a88cff77a1e1df3182cc6845586f9a845434d21cc021c0f8e
+DIST patch-4.13-pf4.xz 173732 SHA256 4799ea1a3e459d68dca72ade5bf4fd16c3f383826f7b4846a1397f3eb8436a06 SHA512 6b6fdbb26ec1053c0b3fb0223b2e1cbfb28d88b172ffa8d110a5e7a37f3b0bf377d5957d47007c3468dc42b8c33aad1acbc89c44027c8f7326dcbf940d7de88f WHIRLPOOL 1d37fa8c9a19f47c310dbac246b5f47395d96ed813bf9c618d101d77ab046aacd090c569616730e16c91f243458b1b55b424c9ffa8927e4d90cd6c6800d252c2
+DIST patch-4.4-pf8.xz 507920 SHA256 8c416ec05bbb1faf0730a805c44dc508e8892bbe43c7046000373f2d618dc94d SHA512 bb417517c88eac7e1b93af8cf635708f0820b13de431039f91577db53dbaca961466c86777c67e61e3c5a7012678d8d50b537a2bddfa494a898101bc25b4c9bb WHIRLPOOL 40143e0d31e446aaf5cf299da236b2fbc6fb7bac305160301b1c19c818a65c6ac2d35e6804d3dfdad1622dfc06e286d4016644f65adf4797440e46d883101070
+DIST patch-4.5-pf4.xz 549912 SHA256 d90f4d13bcbca5903b9a70ab653ac4446938961cc7b83b053824ed6afb557898 SHA512 a94e58e67ee42229db56a5541a8969f9a627561b0fe91f72b78c71ad58187693c7ea26ed41982881110a41ee246bb93a774a173091a8e34455654113a8c110a9 WHIRLPOOL b7279ad6c0c7328bfad5803f5fe7875f9ae75f1dbe083c4828c54a8bbac81862d2179d84991d8c225aee92d7d3eae549c8c64baabe47889f3df3c85b71aca0db
+DIST patch-4.8-pf8.xz 362692 SHA256 2737a15ef112095abe5e6bf3c047d553c1ee2f6022d1414294a76212cf967108 SHA512 838556878d2ad60f53d208d4399a776ce976e3f610a56b239d11b1547782dd2fc0512381ee80eb800523ad2921e3047db265ddc42fec3d326fe799ce2729739c WHIRLPOOL 23e9f07dc9af51ea46e6e18f67a37c4114d6e2caaa9ce81ab29bba3f7d5e43ce6a3d32c67fd2a8b71f4a15a418089fe4482063300960ecdd02bc246e3ca2222c
+EBUILD pf-sources-4.10_p3.ebuild 1970 SHA256 4965997e94b3e04340a03cc6c00a310201841040735f39bfe97684a773feb4dc SHA512 e9c31c053bc53aff13032b743f40fb754cc451b28abfd6297643bbd43a3ec6f5b5ceaf89808a42089174cc8ec25bd59d86cf0dceede8867cddea6bf8d6c1277d WHIRLPOOL 6f7d70a99c6fc2f5ddfa5e538fa409b6dfb3bf56644658528b274b9c4fe65097450f70a7ee730d9d31baf1c1c8e4bbec5b53be7e8ff9cfb68f1955df689933d3
+EBUILD pf-sources-4.11_p3.ebuild 1970 SHA256 4965997e94b3e04340a03cc6c00a310201841040735f39bfe97684a773feb4dc SHA512 e9c31c053bc53aff13032b743f40fb754cc451b28abfd6297643bbd43a3ec6f5b5ceaf89808a42089174cc8ec25bd59d86cf0dceede8867cddea6bf8d6c1277d WHIRLPOOL 6f7d70a99c6fc2f5ddfa5e538fa409b6dfb3bf56644658528b274b9c4fe65097450f70a7ee730d9d31baf1c1c8e4bbec5b53be7e8ff9cfb68f1955df689933d3
+EBUILD pf-sources-4.11_p4.ebuild 1970 SHA256 4965997e94b3e04340a03cc6c00a310201841040735f39bfe97684a773feb4dc SHA512 e9c31c053bc53aff13032b743f40fb754cc451b28abfd6297643bbd43a3ec6f5b5ceaf89808a42089174cc8ec25bd59d86cf0dceede8867cddea6bf8d6c1277d WHIRLPOOL 6f7d70a99c6fc2f5ddfa5e538fa409b6dfb3bf56644658528b274b9c4fe65097450f70a7ee730d9d31baf1c1c8e4bbec5b53be7e8ff9cfb68f1955df689933d3
+EBUILD pf-sources-4.13_p4.ebuild 1970 SHA256 4965997e94b3e04340a03cc6c00a310201841040735f39bfe97684a773feb4dc SHA512 e9c31c053bc53aff13032b743f40fb754cc451b28abfd6297643bbd43a3ec6f5b5ceaf89808a42089174cc8ec25bd59d86cf0dceede8867cddea6bf8d6c1277d WHIRLPOOL 6f7d70a99c6fc2f5ddfa5e538fa409b6dfb3bf56644658528b274b9c4fe65097450f70a7ee730d9d31baf1c1c8e4bbec5b53be7e8ff9cfb68f1955df689933d3
+EBUILD pf-sources-4.4_p8.ebuild 1970 SHA256 6c353b953811fa214148650f50d681fe3f548b7b01113bb843297c0f77881227 SHA512 fa1c4bc4ccfa9b6b96413beb53da29f21d0c8563b7a289c4fc69482e6f146ba745e6fec4e978e95a0c67cb487e4a310e68e0525700e344f5ed3c778fe3043c64 WHIRLPOOL d56685aa605b98a15e133ccd50b967e03943932fb222a8dc5f05f0f6ffe24d07c66fb80f64c6eb558f87ca29929f1aa1630836c0042dcdf02c912b372655c2a6
+EBUILD pf-sources-4.5_p4.ebuild 1970 SHA256 6c353b953811fa214148650f50d681fe3f548b7b01113bb843297c0f77881227 SHA512 fa1c4bc4ccfa9b6b96413beb53da29f21d0c8563b7a289c4fc69482e6f146ba745e6fec4e978e95a0c67cb487e4a310e68e0525700e344f5ed3c778fe3043c64 WHIRLPOOL d56685aa605b98a15e133ccd50b967e03943932fb222a8dc5f05f0f6ffe24d07c66fb80f64c6eb558f87ca29929f1aa1630836c0042dcdf02c912b372655c2a6
+EBUILD pf-sources-4.8_p8.ebuild 1970 SHA256 6c353b953811fa214148650f50d681fe3f548b7b01113bb843297c0f77881227 SHA512 fa1c4bc4ccfa9b6b96413beb53da29f21d0c8563b7a289c4fc69482e6f146ba745e6fec4e978e95a0c67cb487e4a310e68e0525700e344f5ed3c778fe3043c64 WHIRLPOOL d56685aa605b98a15e133ccd50b967e03943932fb222a8dc5f05f0f6ffe24d07c66fb80f64c6eb558f87ca29929f1aa1630836c0042dcdf02c912b372655c2a6
+MISC ChangeLog 7562 SHA256 2e0194e71846c6231cd5fa61b4538a60190e26ff15103658c49771cb0e5d9549 SHA512 4ebfd000f9aa0a1bc483992413d840c3efe8ac56bf147df6d719219c02efcf00a56e4199d01234f0dd6ac384a9d1e1d39ab09e3bae7bc599ebcaa4b87d29a892 WHIRLPOOL cb4e546533c30333cdca6c90e46048136c0862cf534d648daeb51183b875619b23630ae6ba186089e022b6bc4f54ba63dd35371754d9d9ae511a0d65341db1fb
+MISC ChangeLog-2015 22812 SHA256 b836b2565045e2ae460ff36085099da0cdf4cf3d55e3d49c19414d9b01d10480 SHA512 3f71d04b73a6585a6c62748bcb002716d323856ebb60afd0996155cb4ebcda7da42c4a20aecb73d0a1e2810607746a2fa48ec1d5438aae3d6563c7da244cf85c WHIRLPOOL 0e8b69eaec3b93374ad33a7ae55e9986d613af4dc10945d4d29089c5013b202b9368c2688c0fdb7a644612befba87493de8fb49ea1ee17460754232c772d7f33
+MISC metadata.xml 337 SHA256 a46b783d9e5ae2537a95579e9ef892563a6dfd913272a40ac306133c2845c898 SHA512 99cb65073f0892e388794425f3a26a534f6ed5cea434cbc21b0d5e6a8b15c705d18c86d11c295046e546d2b20b07f5bdf667ef7f3b8d4c908c57e04a014c07df WHIRLPOOL e3f1b428ee2be3d48f6721650e8f47d924dbdd06575474cc7737206710df42bbd514121224579ef6e4a0565943c56a8e14de6282ebc901e8cdd638919b26f8d3
diff --git a/sys-kernel/pf-sources/files/2100_proc-mem-handling-fix.patch b/sys-kernel/pf-sources/files/2100_proc-mem-handling-fix.patch
new file mode 100644
index 000000000000..c32934daf899
--- /dev/null
+++ b/sys-kernel/pf-sources/files/2100_proc-mem-handling-fix.patch
@@ -0,0 +1,270 @@
+From e268337dfe26dfc7efd422a804dbb27977a3cccc Mon Sep 17 00:00:00 2001
+From: Linus Torvalds <torvalds@linux-foundation.org>
+Date: Tue, 17 Jan 2012 15:21:19 -0800
+Subject: proc: clean up and fix /proc/<pid>/mem handling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Linus Torvalds <torvalds@linux-foundation.org>
+
+commit e268337dfe26dfc7efd422a804dbb27977a3cccc upstream.
+
+Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
+robust, and it also doesn't match the permission checking of any of the
+other related files.
+
+This changes it to do the permission checks at open time, and instead of
+tracking the process, it tracks the VM at the time of the open. That
+simplifies the code a lot, but does mean that if you hold the file
+descriptor open over an execve(), you'll continue to read from the _old_
+VM.
+
+That is different from our previous behavior, but much simpler. If
+somebody actually finds a load where this matters, we'll need to revert
+this commit.
+
+I suspect that nobody will ever notice - because the process mapping
+addresses will also have changed as part of the execve. So you cannot
+actually usefully access the fd across a VM change simply because all
+the offsets for IO would have changed too.
+
+Reported-by: Jüri Aedla <asd@ut.ee>
+Cc: Al Viro <viro@zeniv.linux.org.uk>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/proc/base.c | 145 +++++++++++++++------------------------------------------
+ 1 file changed, 39 insertions(+), 106 deletions(-)
+
+--- a/fs/proc/base.c
++++ b/fs/proc/base.c
+@@ -194,65 +194,7 @@ static int proc_root_link(struct inode *
+ return result;
+ }
+
+-static struct mm_struct *__check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+-
+- mm = get_task_mm(task);
+- if (!mm)
+- return ERR_PTR(-EINVAL);
+-
+- /*
+- * A task can always look at itself, in case it chooses
+- * to use system calls instead of load instructions.
+- */
+- if (task == current)
+- return mm;
+-
+- /*
+- * If current is actively ptrace'ing, and would also be
+- * permitted to freshly attach with ptrace now, permit it.
+- */
+- if (task_is_stopped_or_traced(task)) {
+- int match;
+- rcu_read_lock();
+- match = (ptrace_parent(task) == current);
+- rcu_read_unlock();
+- if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
+- return mm;
+- }
+-
+- /*
+- * No one else is allowed.
+- */
+- mmput(mm);
+- return ERR_PTR(-EPERM);
+-}
+-
+-/*
+- * If current may access user memory in @task return a reference to the
+- * corresponding mm, otherwise ERR_PTR.
+- */
+-static struct mm_struct *check_mem_permission(struct task_struct *task)
+-{
+- struct mm_struct *mm;
+- int err;
+-
+- /*
+- * Avoid racing if task exec's as we might get a new mm but validate
+- * against old credentials.
+- */
+- err = mutex_lock_killable(&task->signal->cred_guard_mutex);
+- if (err)
+- return ERR_PTR(err);
+-
+- mm = __check_mem_permission(task);
+- mutex_unlock(&task->signal->cred_guard_mutex);
+-
+- return mm;
+-}
+-
+-struct mm_struct *mm_for_maps(struct task_struct *task)
++static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
+ {
+ struct mm_struct *mm;
+ int err;
+@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct tas
+
+ mm = get_task_mm(task);
+ if (mm && mm != current->mm &&
+- !ptrace_may_access(task, PTRACE_MODE_READ)) {
++ !ptrace_may_access(task, mode)) {
+ mmput(mm);
+ mm = ERR_PTR(-EACCES);
+ }
+@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct tas
+ return mm;
+ }
+
++struct mm_struct *mm_for_maps(struct task_struct *task)
++{
++ return mm_access(task, PTRACE_MODE_READ);
++}
++
+ static int proc_pid_cmdline(struct task_struct *task, char * buffer)
+ {
+ int res = 0;
+@@ -816,38 +763,39 @@ static const struct file_operations proc
+
+ static int mem_open(struct inode* inode, struct file* file)
+ {
+- file->private_data = (void*)((long)current->self_exec_id);
++ struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ struct mm_struct *mm;
++
++ if (!task)
++ return -ESRCH;
++
++ mm = mm_access(task, PTRACE_MODE_ATTACH);
++ put_task_struct(task);
++
++ if (IS_ERR(mm))
++ return PTR_ERR(mm);
++
+ /* OK to pass negative loff_t, we can catch out-of-range */
+ file->f_mode |= FMODE_UNSIGNED_OFFSET;
++ file->private_data = mm;
++
+ return 0;
+ }
+
+ static ssize_t mem_read(struct file * file, char __user * buf,
+ size_t count, loff_t *ppos)
+ {
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
++ int ret;
+ char *page;
+ unsigned long src = *ppos;
+- int ret = -ESRCH;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- ret = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out;
+-
+- mm = check_mem_permission(task);
+- ret = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- ret = -EIO;
+-
+- if (file->private_data != (void*)((long)current->self_exec_id))
+- goto out_put;
++ return -ENOMEM;
+
+ ret = 0;
+
+@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * fi
+ }
+ *ppos = src;
+
+-out_put:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out:
+- put_task_struct(task);
+-out_no_task:
+ return ret;
+ }
+
+@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * f
+ {
+ int copied;
+ char *page;
+- struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
+ unsigned long dst = *ppos;
+- struct mm_struct *mm;
++ struct mm_struct *mm = file->private_data;
+
+- copied = -ESRCH;
+- if (!task)
+- goto out_no_task;
++ if (!mm)
++ return 0;
+
+- copied = -ENOMEM;
+ page = (char *)__get_free_page(GFP_TEMPORARY);
+ if (!page)
+- goto out_task;
+-
+- mm = check_mem_permission(task);
+- copied = PTR_ERR(mm);
+- if (IS_ERR(mm))
+- goto out_free;
+-
+- copied = -EIO;
+- if (file->private_data != (void *)((long)current->self_exec_id))
+- goto out_mm;
++ return -ENOMEM;
+
+ copied = 0;
+ while (count > 0) {
+@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * f
+ }
+ *ppos = dst;
+
+-out_mm:
+- mmput(mm);
+-out_free:
+ free_page((unsigned long) page);
+-out_task:
+- put_task_struct(task);
+-out_no_task:
+ return copied;
+ }
+
+@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff
+ return file->f_pos;
+ }
+
++static int mem_release(struct inode *inode, struct file *file)
++{
++ struct mm_struct *mm = file->private_data;
++
++ mmput(mm);
++ return 0;
++}
++
+ static const struct file_operations proc_mem_operations = {
+ .llseek = mem_lseek,
+ .read = mem_read,
+ .write = mem_write,
+ .open = mem_open,
++ .release = mem_release,
+ };
+
+ static ssize_t environ_read(struct file *file, char __user *buf,
+
diff --git a/sys-kernel/pf-sources/metadata.xml b/sys-kernel/pf-sources/metadata.xml
new file mode 100644
index 000000000000..23659e87ca54
--- /dev/null
+++ b/sys-kernel/pf-sources/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/o:linux:linux_kernel</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sys-kernel/pf-sources/pf-sources-4.10_p3.ebuild b/sys-kernel/pf-sources/pf-sources-4.10_p3.ebuild
new file mode 100644
index 000000000000..77364744529d
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.10_p3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."
diff --git a/sys-kernel/pf-sources/pf-sources-4.11_p3.ebuild b/sys-kernel/pf-sources/pf-sources-4.11_p3.ebuild
new file mode 100644
index 000000000000..77364744529d
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.11_p3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."
diff --git a/sys-kernel/pf-sources/pf-sources-4.11_p4.ebuild b/sys-kernel/pf-sources/pf-sources-4.11_p4.ebuild
new file mode 100644
index 000000000000..77364744529d
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.11_p4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."
diff --git a/sys-kernel/pf-sources/pf-sources-4.13_p4.ebuild b/sys-kernel/pf-sources/pf-sources-4.13_p4.ebuild
new file mode 100644
index 000000000000..77364744529d
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.13_p4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."
diff --git a/sys-kernel/pf-sources/pf-sources-4.4_p8.ebuild b/sys-kernel/pf-sources/pf-sources-4.4_p8.ebuild
new file mode 100644
index 000000000000..8e67712b85a0
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.4_p8.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."
diff --git a/sys-kernel/pf-sources/pf-sources-4.5_p4.ebuild b/sys-kernel/pf-sources/pf-sources-4.5_p4.ebuild
new file mode 100644
index 000000000000..8e67712b85a0
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.5_p4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."
diff --git a/sys-kernel/pf-sources/pf-sources-4.8_p8.ebuild b/sys-kernel/pf-sources/pf-sources-4.8_p8.ebuild
new file mode 100644
index 000000000000..8e67712b85a0
--- /dev/null
+++ b/sys-kernel/pf-sources/pf-sources-4.8_p8.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+inherit readme.gentoo-r1 toolchain-funcs versionator
+
+COMPRESSTYPE=".xz"
+K_USEPV="yes"
+UNIPATCH_STRICTORDER="yes"
+K_SECURITY_UNSUPPORTED="1"
+
+CKV="$(get_version_component_range 1-2)"
+ETYPE="sources"
+inherit kernel-2
+detect_version
+K_NOSETEXTRAVERSION="don't_set_it"
+
+DESCRIPTION="Linux kernel fork with new features (-ck patchset (BFS), BFQ, TuxOnIce and UKSM)"
+HOMEPAGE="https://pf.natalenko.name/"
+
+PF_VERS="1"
+PF_FILE="patch-${PV/_p*/}-pf${PV/*_p/}${COMPRESSTYPE}"
+PF_URI="https://pf.natalenko.name/sources/$(get_version_component_range 1-2)/${PF_FILE}"
+SRC_URI="${KERNEL_URI} ${PF_URI}" # \${EXPERIMENTAL_URI}
+
+KEYWORDS="-* ~amd64 ~ppc ~ppc64 ~x86"
+IUSE=""
+
+KV_FULL="${PVR}-pf"
+S="${WORKDIR}/linux-${KV_FULL}"
+
+DISABLE_AUTOFORMATTING="yes"
+DOC_CONTENTS="
+${P} has the following optional runtime dependencies:
+- sys-apps/tuxonice-userui: provides minimal userspace progress
+information related to suspending and resuming process.
+- sys-power/hibernate-script or sys-power/pm-utils: runtime utilities
+for hibernating and suspending your computer."
+
+pkg_pretend() {
+ # 547868
+ if [[ $(gcc-version) < 4.9 ]]; then
+ eerror ""
+ eerror "${P} needs an active GCC 4.9+ compiler"
+ eerror ""
+ die "${P} needs an active sys-devel/gcc >= 4.9"
+ fi
+}
+
+pkg_setup(){
+ ewarn
+ ewarn "${PN} is *not* supported by the Gentoo Kernel Project in any way."
+ ewarn "If you need support, please contact the pf developers directly."
+ ewarn "Do *not* open bugs in Gentoo's bugzilla unless you have issues with"
+ ewarn "the ebuilds. Thank you."
+ ewarn
+ kernel-2_pkg_setup
+}
+
+src_prepare(){
+ epatch "${DISTDIR}/${PF_FILE}"
+
+ default
+}
+
+src_install() {
+ kernel-2_src_install
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ kernel-2_pkg_postinst
+ readme.gentoo_print_elog
+}
+
+K_EXTRAEINFO="For more info on pf-sources and details on how to report problems,
+see: ${HOMEPAGE}."