From f021bdf8cc1a304839c545a1309ff28a657ba9b5 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 9 May 2016 18:39:30 +0100 Subject: [PATCH] Fix malformed links in SyncPrim 3 & 4 and Initialization 7. 'CPU mask' link in Initialization 7 is double-bracketed. 'Previous part' links in SyncPrim 3 & 4 have two opening brackets and one closing. 'Previous part' link in SyncPrim 4 points to current page, instead of previous. Append to contributors. --- Initialization/linux-initialization-7.md | 2 +- SyncPrim/sync-3.md | 2 +- SyncPrim/sync-4.md | 2 +- contributors.md | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Initialization/linux-initialization-7.md b/Initialization/linux-initialization-7.md index e81db88..0965b3c 100644 --- a/Initialization/linux-initialization-7.md +++ b/Initialization/linux-initialization-7.md @@ -334,7 +334,7 @@ That's all, and now we can back to the `start_kernel` from the `setup_arch`. Back to the main.c ================================================================================ -As I wrote above, we have finished with the `setup_arch` function and now we can back to the `start_kernel` function from the [init/main.c](https://github.com/torvalds/linux/blob/master/init/main.c). As you may remember or saw yourself, `start_kernel` function as big as the `setup_arch`. So the couple of the next part will be dedicated to learning of this function. So, let's continue with it. After the `setup_arch` we can see the call of the `mm_init_cpumask` function. This function sets the [cpumask]((http://0xax.gitbooks.io/linux-insides/content/Concepts/cpumask.html)) pointer to the memory descriptor `cpumask`. We can look on its implementation: +As I wrote above, we have finished with the `setup_arch` function and now we can back to the `start_kernel` function from the [init/main.c](https://github.com/torvalds/linux/blob/master/init/main.c). As you may remember or saw yourself, `start_kernel` function as big as the `setup_arch`. So the couple of the next part will be dedicated to learning of this function. So, let's continue with it. After the `setup_arch` we can see the call of the `mm_init_cpumask` function. This function sets the [cpumask](http://0xax.gitbooks.io/linux-insides/content/Concepts/cpumask.html) pointer to the memory descriptor `cpumask`. We can look on its implementation: ```C static inline void mm_init_cpumask(struct mm_struct *mm) diff --git a/SyncPrim/sync-3.md b/SyncPrim/sync-3.md index 80fb531..a4dbe31 100644 --- a/SyncPrim/sync-3.md +++ b/SyncPrim/sync-3.md @@ -4,7 +4,7 @@ Synchronization primitives in the Linux kernel. Part 3. Semaphores -------------------------------------------------------------------------------- -This is the third part of the [chapter](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/index.html) which describes synchronization primitives in the Linux kernel and in the previous part we saw special type of [spinlocks](https://en.wikipedia.org/wiki/Spinlock) - `queued spinlocks`. The previous [part]((https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-2.html) was the last part which describes `spinlocks` related stuff. So we need to go ahead. +This is the third part of the [chapter](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/index.html) which describes synchronization primitives in the Linux kernel and in the previous part we saw special type of [spinlocks](https://en.wikipedia.org/wiki/Spinlock) - `queued spinlocks`. The previous [part](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-2.html) was the last part which describes `spinlocks` related stuff. So we need to go ahead. The next [synchronization primitive](https://en.wikipedia.org/wiki/Synchronization_%28computer_science%29) after `spinlock` which we will see in this part is [semaphore](https://en.wikipedia.org/wiki/Semaphore_%28programming%29). Se will start from theoretical side and will learn what is it `semaphore` and only after this, we will see how it is implemented in the Linux kernel as we did in the previous part. diff --git a/SyncPrim/sync-4.md b/SyncPrim/sync-4.md index e1d0758..c0f1631 100644 --- a/SyncPrim/sync-4.md +++ b/SyncPrim/sync-4.md @@ -13,7 +13,7 @@ So, let's start. Concept of `mutex` -------------------------------------------------------------------------------- -We already familiar with the [semaphore](https://en.wikipedia.org/wiki/Semaphore_%28programming%29) synchronization primitive from the previous [part]((https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-4.html). It represented by the: +We already familiar with the [semaphore](https://en.wikipedia.org/wiki/Semaphore_%28programming%29) synchronization primitive from the previous [part](https://0xax.gitbooks.io/linux-insides/content/SyncPrim/sync-3.html). It represented by the: ```C struct semaphore { diff --git a/contributors.md b/contributors.md index 67884d3..94b4b46 100644 --- a/contributors.md +++ b/contributors.md @@ -87,3 +87,4 @@ Thank you to all contributors: * [Jakub Wilk](https://github.com/jwilk) * [Justus Adam](https://github.com/JustusAdam) * [Roy Wellington Ⅳ](https://github.com/thanatos) +* [Jonathan Rennison](https://github.com/JGRennison)