diff --git a/index.html b/index.html
index e19e5b4..17aefe2 100644
--- a/index.html
+++ b/index.html
@@ -1661,11 +1661,11 @@ the processes.
writing regular programs to run as processes, there is no need to worry about
segments. When you write a kernel module, normally you want to access
the kernel memory segment, which is handled automatically by the system.
-However, when the content of a memory buffer needs to be passed between
-the currently running process and the kernel, the kernel function receives a
-pointer to the memory buffer which is in the process segment. The put_user
-and get_user macros allow you to access that memory. These functions
-handle only one caracter, you can handle several caracters with copy_to_user
+However, when the content of a memory buffer needs to be passed between the
+currently running process and the kernel, the kernel function receives a pointer
+to the memory buffer which is in the process segment. The put_user and
+get_user macros allow you to access that memory. These functions handle
+only one character, you can handle several characters with copy_to_user
and copy_from_user. As the buffer (in read or write function) is in kernel
space, for write function you need to import data because it comes from
user space, but not for the read function because data is already in kernel
@@ -1949,7 +1949,7 @@ and stop(). The A sequence begins with the call of the function start(). If the return is a non
NULL value, the function next() is called. This function is an iterator, the goal is to
-go thought all the data. Each time next() is called, the function show() is also called.
+go through all the data. Each time next() is called, the function show() is also called.
It writes data values in the buffer read by the user. The function next() is called until
it returns NULL. The sequence ends when next() returns NULL, then the function
stop() is called.
diff --git a/lkmpg.html b/lkmpg.html
index e19e5b4..17aefe2 100644
--- a/lkmpg.html
+++ b/lkmpg.html
@@ -1661,11 +1661,11 @@ the processes.
writing regular programs to run as processes, there is no need to worry about
segments. When you write a kernel module, normally you want to access
the kernel memory segment, which is handled automatically by the system.
-However, when the content of a memory buffer needs to be passed between
-the currently running process and the kernel, the kernel function receives a
-pointer to the memory buffer which is in the process segment. The put_user
-and get_user macros allow you to access that memory. These functions
-handle only one caracter, you can handle several caracters with copy_to_user
+However, when the content of a memory buffer needs to be passed between the
+currently running process and the kernel, the kernel function receives a pointer
+to the memory buffer which is in the process segment. The put_user and
+get_user macros allow you to access that memory. These functions handle
+only one character, you can handle several characters with copy_to_user
and copy_from_user. As the buffer (in read or write function) is in kernel
space, for write function you need to import data because it comes from
user space, but not for the read function because data is already in kernel
@@ -1949,7 +1949,7 @@ and stop(). The A sequence begins with the call of the function start(). If the return is a non
NULL value, the function next() is called. This function is an iterator, the goal is to
-go thought all the data. Each time next() is called, the function show() is also called.
+go through all the data. Each time next() is called, the function show() is also called.
It writes data values in the buffer read by the user. The function next() is called until
it returns NULL. The sequence ends when next() returns NULL, then the function
stop() is called.