#define _GNU_SOURCE #include #include #include #include #include #include #include "proc.h" #include "die.h" void cpu_affinity(int cpu) { int ret; cpu_set_t cpu_bitmask; CPU_ZERO(&cpu_bitmask); CPU_SET(cpu, &cpu_bitmask); ret = sched_setaffinity(getpid(), sizeof(cpu_bitmask), &cpu_bitmask); if (ret) panic("Can't set this cpu affinity!\n"); } int set_proc_prio(int priority) { int ret = setpriority(PRIO_PROCESS, getpid(), priority); if (ret) panic("Can't set nice val to %i!\n", priority); return 0; } int set_sched_status(int policy, int priority) { int ret, min_prio, max_prio; struct sched_param sp; max_prio = sched_get_priority_max(policy); min_prio = sched_get_priority_min(policy); if (max_prio == -1 || min_prio == -1) printf("Cannot determine scheduler prio limits!\n"); else if (priority < min_prio) priority = min_prio; else if (priority > max_prio) priority = max_prio; memset(&sp, 0, sizeof(sp)); sp.sched_priority = priority; ret = sched_setscheduler(getpid(), policy, &sp); if (ret) { printf("Cannot set scheduler policy!\n"); return -EINVAL; } ret = sched_setparam(getpid(), &sp); if (ret) { printf("Cannot set scheduler prio!\n"); return -EINVAL; } return 0; } ssize_t proc_get_cmdline(unsigned int pid, char *cmdline, size_t len) { ssize_t ret; char path[1024]; snprintf(path, sizeof(path), "/proc/%u/exe", pid); ret = readlink(path, cmdline, len - 1); if (ret < 0) cmdline[0] = '\0'; else cmdline[ret] = '\0'; return ret; } t.cgi/linux/net-next.git/refs/?id=b3c0a4dab7e35a9b6d69c0415641d2280fdefb2b'>refslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfram Sang <wsa@the-dreams.de>2016-06-06 18:48:38 +0200
committerMichael Ellerman <mpe@ellerman.id.au>2016-06-08 10:40:20 +1000
commitb3c0a4dab7e35a9b6d69c0415641d2280fdefb2b (patch)
tree5eb0148634c528f17c016e3c26bfc4cc0a1a5f10
parent2c2a63e301fd19ccae673e79de59b30a232ff7f9 (diff)
of: fix autoloading due to broken modalias with no 'compatible'
Because of an improper dereference, a stray 'C' character was output to the modalias when no 'compatible' was specified. This is the case for some old PowerMac drivers which only set the 'name' property. Fix it to let them match again. Reported-by: Mathieu Malaterre <malat@debian.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-by: Mathieu Malaterre <malat@debian.org> Cc: Philipp Zabel <p.zabel@pengutronix.de> Cc: Andreas Schwab <schwab@linux-m68k.org> Fixes: 6543becf26fff6 ("mod/file2alias: make modalias generation safe for cross compiling") Cc: stable@vger.kernel.org # v3.9+ Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>