+ uml-locking-documentation.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     uml: locking documentation

has been added to the -mm tree.  Its filename is

     uml-locking-documentation.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: uml: locking documentation
From: Jeff Dike <jdike@xxxxxxxxxxx>

Some locking documentation and a cleanup.  uml_exitcode is copied into a local
before sprintf sees it, in case sprintf does anything non-atomic with it.

The rest are comments about why certain globals don't need any kind of
locking.

Signed-off-by: Jeff Dike <jdike@xxxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 arch/um/drivers/null.c           |    1 +
 arch/um/drivers/random.c         |    4 ++++
 arch/um/drivers/stderr_console.c |    2 ++
 arch/um/drivers/stdio_console.c  |    1 +
 arch/um/kernel/exitcode.c        |    8 ++++++--
 5 files changed, 14 insertions(+), 2 deletions(-)

diff -puN arch/um/drivers/null.c~uml-locking-documentation arch/um/drivers/null.c
--- a/arch/um/drivers/null.c~uml-locking-documentation
+++ a/arch/um/drivers/null.c
@@ -8,6 +8,7 @@
 #include "chan_user.h"
 #include "os.h"
 
+/* This address is used only as a unique identifer */
 static int null_chan;
 
 static void *null_init(char *str, int device, const struct chan_opts *opts)
diff -puN arch/um/drivers/random.c~uml-locking-documentation arch/um/drivers/random.c
--- a/arch/um/drivers/random.c~uml-locking-documentation
+++ a/arch/um/drivers/random.c
@@ -20,6 +20,10 @@
 
 #define RNG_MISCDEV_MINOR		183 /* official */
 
+/* Changed at init time, in the non-modular case, and at module load
+ * time, in the module case.  Presumably, the module subsystem
+ * protects against a module being loaded twice at the same time.
+ */
 static int random_fd = -1;
 
 static int rng_dev_open (struct inode *inode, struct file *filp)
diff -puN arch/um/drivers/stderr_console.c~uml-locking-documentation arch/um/drivers/stderr_console.c
--- a/arch/um/drivers/stderr_console.c~uml-locking-documentation
+++ a/arch/um/drivers/stderr_console.c
@@ -9,6 +9,8 @@
 /*
  * Don't register by default -- as this registeres very early in the
  * boot process it becomes the default console.
+ *
+ * Initialized at init time.
  */
 static int use_stderr_console = 0;
 
diff -puN arch/um/drivers/stdio_console.c~uml-locking-documentation arch/um/drivers/stdio_console.c
--- a/arch/um/drivers/stdio_console.c~uml-locking-documentation
+++ a/arch/um/drivers/stdio_console.c
@@ -108,6 +108,7 @@ static int con_open(struct tty_struct *t
 	return line_open(vts, tty);
 }
 
+/* Set in an initcall, checked in an exitcall */
 static int con_init_done = 0;
 
 static const struct tty_operations console_ops = {
diff -puN arch/um/kernel/exitcode.c~uml-locking-documentation arch/um/kernel/exitcode.c
--- a/arch/um/kernel/exitcode.c~uml-locking-documentation
+++ a/arch/um/kernel/exitcode.c
@@ -16,9 +16,13 @@ int uml_exitcode = 0;
 static int read_proc_exitcode(char *page, char **start, off_t off,
 			      int count, int *eof, void *data)
 {
-	int len;
+	int len, val;
 
-	len = sprintf(page, "%d\n", uml_exitcode);
+	/* Save uml_exitcode in a local so that we don't need to guarantee
+	 * that sprintf accesses it atomically.
+	 */
+	val = uml_exitcode;
+	len = sprintf(page, "%d\n", val);
 	len -= off;
 	if(len <= off+count) *eof = 1;
 	*start = page + off;
_

Patches currently in -mm which might be from jdike@xxxxxxxxxxx are

origin.patch
uml-assign-random-macs-to-interfaces-if-necessary.patch
uml-mechanical-tidying-after-random-macs-change.patch
uml-locking-documentation.patch
uml-close-file-descriptor-leaks.patch
uml-stack-consumption-reduction.patch
uml-remove-pte_mkexec.patch
simplify-update_times-avoid-jiffies-jiffies_64-aliasing-problem-2.patch
kill-wall_jiffies.patch
const-struct-tty_operations.patch
namespaces-utsname-switch-to-using-uts-namespaces.patch
introduce-kernel_execve.patch
rename-the-provided-execve-functions-to-kernel_execve.patch
provide-kernel_execve-on-all-architectures.patch
provide-kernel_execve-on-all-architectures-fix.patch
remove-the-use-of-_syscallx-macros-in-uml.patch
sh64-remove-the-use-of-kernel-syscalls.patch
remove-remaining-errno-and-__kernel_syscalls__-references.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux