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 | } |
