diff options
-rw-r--r-- | Documentation/HOWTO | 2 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | kernel/cpuset.c | 24 | ||||
-rw-r--r-- | security/device_cgroup.c | 6 |
4 files changed, 23 insertions, 11 deletions
diff --git a/Documentation/HOWTO b/Documentation/HOWTO index 0291ade44c17..619e8caf30db 100644 --- a/Documentation/HOWTO +++ b/Documentation/HOWTO | |||
@@ -377,7 +377,7 @@ Bug Reporting | |||
377 | bugzilla.kernel.org is where the Linux kernel developers track kernel | 377 | bugzilla.kernel.org is where the Linux kernel developers track kernel |
378 | bugs. Users are encouraged to report all bugs that they find in this | 378 | bugs. Users are encouraged to report all bugs that they find in this |
379 | tool. For details on how to use the kernel bugzilla, please see: | 379 | tool. For details on how to use the kernel bugzilla, please see: |
380 | http://test.kernel.org/bugzilla/faq.html | 380 | http://bugzilla.kernel.org/page.cgi?id=faq.html |
381 | 381 | ||
382 | The file REPORTING-BUGS in the main kernel source directory has a good | 382 | The file REPORTING-BUGS in the main kernel source directory has a good |
383 | template for how to report a possible kernel bug, and details what kind | 383 | template for how to report a possible kernel bug, and details what kind |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 26 | 3 | SUBLEVEL = 26 |
4 | EXTRAVERSION = -rc9 | 4 | EXTRAVERSION = |
5 | NAME = Rotary Wombat | 5 | NAME = Rotary Wombat |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 64a05da9bc4c..459d601947a8 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
@@ -1894,7 +1894,7 @@ static void scan_for_empty_cpusets(const struct cpuset *root) | |||
1894 | * in order to minimize text size. | 1894 | * in order to minimize text size. |
1895 | */ | 1895 | */ |
1896 | 1896 | ||
1897 | static void common_cpu_mem_hotplug_unplug(void) | 1897 | static void common_cpu_mem_hotplug_unplug(int rebuild_sd) |
1898 | { | 1898 | { |
1899 | cgroup_lock(); | 1899 | cgroup_lock(); |
1900 | 1900 | ||
@@ -1906,7 +1906,8 @@ static void common_cpu_mem_hotplug_unplug(void) | |||
1906 | * Scheduler destroys domains on hotplug events. | 1906 | * Scheduler destroys domains on hotplug events. |
1907 | * Rebuild them based on the current settings. | 1907 | * Rebuild them based on the current settings. |
1908 | */ | 1908 | */ |
1909 | rebuild_sched_domains(); | 1909 | if (rebuild_sd) |
1910 | rebuild_sched_domains(); | ||
1910 | 1911 | ||
1911 | cgroup_unlock(); | 1912 | cgroup_unlock(); |
1912 | } | 1913 | } |
@@ -1924,11 +1925,22 @@ static void common_cpu_mem_hotplug_unplug(void) | |||
1924 | static int cpuset_handle_cpuhp(struct notifier_block *unused_nb, | 1925 | static int cpuset_handle_cpuhp(struct notifier_block *unused_nb, |
1925 | unsigned long phase, void *unused_cpu) | 1926 | unsigned long phase, void *unused_cpu) |
1926 | { | 1927 | { |
1927 | if (phase == CPU_DYING || phase == CPU_DYING_FROZEN) | 1928 | switch (phase) { |
1929 | case CPU_UP_CANCELED: | ||
1930 | case CPU_UP_CANCELED_FROZEN: | ||
1931 | case CPU_DOWN_FAILED: | ||
1932 | case CPU_DOWN_FAILED_FROZEN: | ||
1933 | case CPU_ONLINE: | ||
1934 | case CPU_ONLINE_FROZEN: | ||
1935 | case CPU_DEAD: | ||
1936 | case CPU_DEAD_FROZEN: | ||
1937 | common_cpu_mem_hotplug_unplug(1); | ||
1938 | break; | ||
1939 | default: | ||
1928 | return NOTIFY_DONE; | 1940 | return NOTIFY_DONE; |
1941 | } | ||
1929 | 1942 | ||
1930 | common_cpu_mem_hotplug_unplug(); | 1943 | return NOTIFY_OK; |
1931 | return 0; | ||
1932 | } | 1944 | } |
1933 | 1945 | ||
1934 | #ifdef CONFIG_MEMORY_HOTPLUG | 1946 | #ifdef CONFIG_MEMORY_HOTPLUG |
@@ -1941,7 +1953,7 @@ static int cpuset_handle_cpuhp(struct notifier_block *unused_nb, | |||
1941 | 1953 | ||
1942 | void cpuset_track_online_nodes(void) | 1954 | void cpuset_track_online_nodes(void) |
1943 | { | 1955 | { |
1944 | common_cpu_mem_hotplug_unplug(); | 1956 | common_cpu_mem_hotplug_unplug(0); |
1945 | } | 1957 | } |
1946 | #endif | 1958 | #endif |
1947 | 1959 | ||
diff --git a/security/device_cgroup.c b/security/device_cgroup.c index fd764a0858d0..ddd92cec78ed 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c | |||
@@ -222,7 +222,7 @@ static void devcgroup_destroy(struct cgroup_subsys *ss, | |||
222 | #define DEVCG_DENY 2 | 222 | #define DEVCG_DENY 2 |
223 | #define DEVCG_LIST 3 | 223 | #define DEVCG_LIST 3 |
224 | 224 | ||
225 | #define MAJMINLEN 10 | 225 | #define MAJMINLEN 13 |
226 | #define ACCLEN 4 | 226 | #define ACCLEN 4 |
227 | 227 | ||
228 | static void set_access(char *acc, short access) | 228 | static void set_access(char *acc, short access) |
@@ -254,7 +254,7 @@ static void set_majmin(char *str, unsigned m) | |||
254 | if (m == ~0) | 254 | if (m == ~0) |
255 | sprintf(str, "*"); | 255 | sprintf(str, "*"); |
256 | else | 256 | else |
257 | snprintf(str, MAJMINLEN, "%d", m); | 257 | snprintf(str, MAJMINLEN, "%u", m); |
258 | } | 258 | } |
259 | 259 | ||
260 | static int devcgroup_seq_read(struct cgroup *cgroup, struct cftype *cft, | 260 | static int devcgroup_seq_read(struct cgroup *cgroup, struct cftype *cft, |
@@ -300,7 +300,7 @@ static int may_access_whitelist(struct dev_cgroup *c, | |||
300 | continue; | 300 | continue; |
301 | if (whitem->minor != ~0 && whitem->minor != refwh->minor) | 301 | if (whitem->minor != ~0 && whitem->minor != refwh->minor) |
302 | continue; | 302 | continue; |
303 | if (refwh->access & (~(whitem->access | ACC_MASK))) | 303 | if (refwh->access & (~whitem->access)) |
304 | continue; | 304 | continue; |
305 | return 1; | 305 | return 1; |
306 | } | 306 | } |