[LG Optimus 2x] Firtecy:
Thanks for your contribution it is very appreciate! :)

They are not missing, but pengus cherry-picked two commits: https://github.com/Firtecy/kowalski/commit/044d46eb19cdfc0c3ea0f9ae2b167f91fc71db3f and https://github.com/Firtecy/kowalski/commit/1e9128aec36e77cfa94689777e483f36ddf8dc41

some months ago, where those changes were made. I can test later on if it does make a difference when building a kernel without these changes.

Just a small suggestion if someone wants to show differences in kernel source:

This is just a small tutorial for each user that is interested:

How to diff 2 files or directories in linux

If you are running linux and have two files on your computer and you want to find the differences you can run the diff command in the terminal.

Let's say you have a file "hjunii/traps.c" and "kowalski/traps.c", this is how you compare them:

diff -u hjunii/traps.c kowalski/traps.c

The command will compare both and will print an output to the terminal that will be similar to this:

@@ -27,6 +27,7 @@
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/sched.h>
+#include <linux/slab.h>

#include <linux/atomic.h>
#include <asm/cacheflush.h>
@@ -483,25 +484,38 @@
static inline void
do_cache_op(unsigned long start, unsigned long end, int flags)
{
-	struct mm_struct *mm = current->active_mm;
-	struct vm_area_struct *vma;
-
if (end < start || flags)
return;
+	return flush_cache_user_range(start, end);
+}
+
+static inline int
+do_cache_op_iov(const struct iovec __user *uiov, unsigned long cnt, int flags)
+{
+	int i, ret = 0;
+	unsigned long len = cnt * sizeof(struct iovec);
+	struct iovec *iov = kmalloc(len, GFP_KERNEL);

-	down_read(&mm->mmap_sem);
-	vma = find_vma(mm, start);
-	if (vma && vma->vm_start < end) {
-	if (start < vma->vm_start)
-	start = vma->vm_start;
-	if (end > vma->vm_end)
-	end = vma->vm_end;
+	if (iov == NULL) {
+	ret = -ENOMEM;
+	goto out;
+	}

-	up_read(&mm->mmap_sem);
-	flush_cache_user_range(start, end);
-	return;
+	if (copy_from_user(iov, uiov, len)) {
+	ret = -EFAULT;
+	goto out_free;
}
-	up_read(&mm->mmap_sem);
+
+	for (i = 0; i < cnt; ++i) {
+	unsigned long start = (unsigned long __force)iov[i].iov_base;
+	unsigned long end = start + iov[i].iov_len;
+	do_cache_op(start, end, flags);
+	}
+
+out_free:
+	kfree(iov);
+out:
+	return ret;
}

/*
@@ -550,6 +564,10 @@
do_cache_op(regs->ARM_r0, regs->ARM_r1, regs->ARM_r2);
return 0;

+	case NR(cacheflush_iov):
+	do_cache_op_iov((const struct iovec __user *)regs->ARM_r0,
+	regs->ARM_r1, regs->ARM_r2);
+
case NR(usr26):
if (!(elf_hwcap & HWCAP_26BIT))
break;

Each line starting with a "+" are lines that were added, for example:

+#include <linux/slab.h>

On the other side lines starting with a "-" are lines that were deleted, for example:

-	struct mm_struct *mm = current->active_mm;

A line like the following should just show you were you find the changes:

@@ -550,6 +564,10 @@

with the following syntax:

@@ -[line number in 1. file],[number of lines that were printed from 1.file] + [line number in 2. file], [number of lines that were printed from 2.file] @@

But the basic syntax is the following:

diff -u [base file] [file containing the changes you want to display]

You can also compare whole directories!

ProTip: Install the program "colordiff". It will color the console output, that means the output is more readable!

Syntax:

diff -u [base file] [file containing the changes you want to display] | colordiff

Example:

[COLOR="Plum"]@@ -1,8 +1,8 @@[/COLOR]
[COLOR="Red"]-VERSION = 2
-PATCHLEVEL = 6
-SUBLEVEL = 39
-EXTRAVERSION = .4
-NAME = Flesh-Eating Bats with Fangs[/COLOR]
[COLOR="RoyalBlue"]+VERSION = 3
+PATCHLEVEL = 1
+SUBLEVEL = 10
+EXTRAVERSION =
+NAME = "Divemaster Edition"[/COLOR]

Added the how to to the third post!