diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Kconfig.debug | 20 | ||||
| -rw-r--r-- | lib/fonts/Kconfig | 6 | ||||
| -rw-r--r-- | lib/kobject.c | 2 | ||||
| -rw-r--r-- | lib/random32.c | 13 | ||||
| -rw-r--r-- | lib/string.c | 2 | ||||
| -rw-r--r-- | lib/vsprintf.c | 13 |
6 files changed, 46 insertions, 10 deletions
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index a48abeac753f..dd7f8858188a 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug | |||
| @@ -980,6 +980,21 @@ config DEBUG_LOCKING_API_SELFTESTS | |||
| 980 | The following locking APIs are covered: spinlocks, rwlocks, | 980 | The following locking APIs are covered: spinlocks, rwlocks, |
| 981 | mutexes and rwsems. | 981 | mutexes and rwsems. |
| 982 | 982 | ||
| 983 | config LOCK_TORTURE_TEST | ||
| 984 | tristate "torture tests for locking" | ||
| 985 | depends on DEBUG_KERNEL | ||
| 986 | select TORTURE_TEST | ||
| 987 | default n | ||
| 988 | help | ||
| 989 | This option provides a kernel module that runs torture tests | ||
| 990 | on kernel locking primitives. The kernel module may be built | ||
| 991 | after the fact on the running kernel to be tested, if desired. | ||
| 992 | |||
| 993 | Say Y here if you want kernel locking-primitive torture tests | ||
| 994 | to be built into the kernel. | ||
| 995 | Say M if you want these torture tests to build as a module. | ||
| 996 | Say N if you are unsure. | ||
| 997 | |||
| 983 | endmenu # lock debugging | 998 | endmenu # lock debugging |
| 984 | 999 | ||
| 985 | config TRACE_IRQFLAGS | 1000 | config TRACE_IRQFLAGS |
| @@ -1141,9 +1156,14 @@ config SPARSE_RCU_POINTER | |||
| 1141 | 1156 | ||
| 1142 | Say N if you are unsure. | 1157 | Say N if you are unsure. |
| 1143 | 1158 | ||
| 1159 | config TORTURE_TEST | ||
| 1160 | tristate | ||
| 1161 | default n | ||
| 1162 | |||
| 1144 | config RCU_TORTURE_TEST | 1163 | config RCU_TORTURE_TEST |
| 1145 | tristate "torture tests for RCU" | 1164 | tristate "torture tests for RCU" |
| 1146 | depends on DEBUG_KERNEL | 1165 | depends on DEBUG_KERNEL |
| 1166 | select TORTURE_TEST | ||
| 1147 | default n | 1167 | default n |
| 1148 | help | 1168 | help |
| 1149 | This option provides a kernel module that runs torture tests | 1169 | This option provides a kernel module that runs torture tests |
diff --git a/lib/fonts/Kconfig b/lib/fonts/Kconfig index 4dc1b990aa23..34fd931b54b5 100644 --- a/lib/fonts/Kconfig +++ b/lib/fonts/Kconfig | |||
| @@ -9,7 +9,7 @@ if FONT_SUPPORT | |||
| 9 | 9 | ||
| 10 | config FONTS | 10 | config FONTS |
| 11 | bool "Select compiled-in fonts" | 11 | bool "Select compiled-in fonts" |
| 12 | depends on FRAMEBUFFER_CONSOLE | 12 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE |
| 13 | help | 13 | help |
| 14 | Say Y here if you would like to use fonts other than the default | 14 | Say Y here if you would like to use fonts other than the default |
| 15 | your frame buffer console usually use. | 15 | your frame buffer console usually use. |
| @@ -22,7 +22,7 @@ config FONTS | |||
| 22 | 22 | ||
| 23 | config FONT_8x8 | 23 | config FONT_8x8 |
| 24 | bool "VGA 8x8 font" if FONTS | 24 | bool "VGA 8x8 font" if FONTS |
| 25 | depends on FRAMEBUFFER_CONSOLE | 25 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE |
| 26 | default y if !SPARC && !FONTS | 26 | default y if !SPARC && !FONTS |
| 27 | help | 27 | help |
| 28 | This is the "high resolution" font for the VGA frame buffer (the one | 28 | This is the "high resolution" font for the VGA frame buffer (the one |
| @@ -45,7 +45,7 @@ config FONT_8x16 | |||
| 45 | 45 | ||
| 46 | config FONT_6x11 | 46 | config FONT_6x11 |
| 47 | bool "Mac console 6x11 font (not supported by all drivers)" if FONTS | 47 | bool "Mac console 6x11 font (not supported by all drivers)" if FONTS |
| 48 | depends on FRAMEBUFFER_CONSOLE | 48 | depends on FRAMEBUFFER_CONSOLE || STI_CONSOLE |
| 49 | default y if !SPARC && !FONTS && MAC | 49 | default y if !SPARC && !FONTS && MAC |
| 50 | help | 50 | help |
| 51 | Small console font with Macintosh-style high-half glyphs. Some Mac | 51 | Small console font with Macintosh-style high-half glyphs. Some Mac |
diff --git a/lib/kobject.c b/lib/kobject.c index cb14aeac4cca..58751bb80a7c 100644 --- a/lib/kobject.c +++ b/lib/kobject.c | |||
| @@ -94,7 +94,7 @@ static int create_dir(struct kobject *kobj) | |||
| 94 | BUG_ON(ops->type >= KOBJ_NS_TYPES); | 94 | BUG_ON(ops->type >= KOBJ_NS_TYPES); |
| 95 | BUG_ON(!kobj_ns_type_registered(ops->type)); | 95 | BUG_ON(!kobj_ns_type_registered(ops->type)); |
| 96 | 96 | ||
| 97 | kernfs_enable_ns(kobj->sd); | 97 | sysfs_enable_ns(kobj->sd); |
| 98 | } | 98 | } |
| 99 | 99 | ||
| 100 | return 0; | 100 | return 0; |
diff --git a/lib/random32.c b/lib/random32.c index 1e5b2df44291..614896778700 100644 --- a/lib/random32.c +++ b/lib/random32.c | |||
| @@ -244,8 +244,19 @@ static void __prandom_reseed(bool late) | |||
| 244 | static bool latch = false; | 244 | static bool latch = false; |
| 245 | static DEFINE_SPINLOCK(lock); | 245 | static DEFINE_SPINLOCK(lock); |
| 246 | 246 | ||
| 247 | /* Asking for random bytes might result in bytes getting | ||
| 248 | * moved into the nonblocking pool and thus marking it | ||
| 249 | * as initialized. In this case we would double back into | ||
| 250 | * this function and attempt to do a late reseed. | ||
| 251 | * Ignore the pointless attempt to reseed again if we're | ||
| 252 | * already waiting for bytes when the nonblocking pool | ||
| 253 | * got initialized. | ||
| 254 | */ | ||
| 255 | |||
| 247 | /* only allow initial seeding (late == false) once */ | 256 | /* only allow initial seeding (late == false) once */ |
| 248 | spin_lock_irqsave(&lock, flags); | 257 | if (!spin_trylock_irqsave(&lock, flags)) |
| 258 | return; | ||
| 259 | |||
| 249 | if (latch && !late) | 260 | if (latch && !late) |
| 250 | goto out; | 261 | goto out; |
| 251 | latch = true; | 262 | latch = true; |
diff --git a/lib/string.c b/lib/string.c index e5878de4f101..9b1f9062a202 100644 --- a/lib/string.c +++ b/lib/string.c | |||
| @@ -648,7 +648,7 @@ EXPORT_SYMBOL(memmove); | |||
| 648 | * @count: The size of the area. | 648 | * @count: The size of the area. |
| 649 | */ | 649 | */ |
| 650 | #undef memcmp | 650 | #undef memcmp |
| 651 | int memcmp(const void *cs, const void *ct, size_t count) | 651 | __visible int memcmp(const void *cs, const void *ct, size_t count) |
| 652 | { | 652 | { |
| 653 | const unsigned char *su1, *su2; | 653 | const unsigned char *su1, *su2; |
| 654 | int res = 0; | 654 | int res = 0; |
diff --git a/lib/vsprintf.c b/lib/vsprintf.c index 185b6d300ebc..5e2cf6f342f8 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c | |||
| @@ -719,10 +719,15 @@ char *resource_string(char *buf, char *end, struct resource *res, | |||
| 719 | specp = &mem_spec; | 719 | specp = &mem_spec; |
| 720 | decode = 0; | 720 | decode = 0; |
| 721 | } | 721 | } |
| 722 | p = number(p, pend, res->start, *specp); | 722 | if (decode && res->flags & IORESOURCE_UNSET) { |
| 723 | if (res->start != res->end) { | 723 | p = string(p, pend, "size ", str_spec); |
| 724 | *p++ = '-'; | 724 | p = number(p, pend, resource_size(res), *specp); |
| 725 | p = number(p, pend, res->end, *specp); | 725 | } else { |
| 726 | p = number(p, pend, res->start, *specp); | ||
| 727 | if (res->start != res->end) { | ||
| 728 | *p++ = '-'; | ||
| 729 | p = number(p, pend, res->end, *specp); | ||
| 730 | } | ||
| 726 | } | 731 | } |
| 727 | if (decode) { | 732 | if (decode) { |
| 728 | if (res->flags & IORESOURCE_MEM_64) | 733 | if (res->flags & IORESOURCE_MEM_64) |
