aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/HOWTO2
-rw-r--r--Makefile2
-rw-r--r--kernel/cpuset.c24
-rw-r--r--security/device_cgroup.c6
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
377bugzilla.kernel.org is where the Linux kernel developers track kernel 377bugzilla.kernel.org is where the Linux kernel developers track kernel
378bugs. Users are encouraged to report all bugs that they find in this 378bugs. Users are encouraged to report all bugs that they find in this
379tool. For details on how to use the kernel bugzilla, please see: 379tool. 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
382The file REPORTING-BUGS in the main kernel source directory has a good 382The file REPORTING-BUGS in the main kernel source directory has a good
383template for how to report a possible kernel bug, and details what kind 383template for how to report a possible kernel bug, and details what kind
diff --git a/Makefile b/Makefile
index 6315424a00b9..e3c5eb66ec52 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 26 3SUBLEVEL = 26
4EXTRAVERSION = -rc9 4EXTRAVERSION =
5NAME = Rotary Wombat 5NAME = 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
1897static void common_cpu_mem_hotplug_unplug(void) 1897static 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)
1924static int cpuset_handle_cpuhp(struct notifier_block *unused_nb, 1925static 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
1942void cpuset_track_online_nodes(void) 1954void 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
228static void set_access(char *acc, short access) 228static 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
260static int devcgroup_seq_read(struct cgroup *cgroup, struct cftype *cft, 260static 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 }