mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
Linux 3.16-rc7
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJT1VYNAAoJEHm+PkMAQRiGQJwIAKSYp1Uqz5O/e5r0V1TlZKT4 1B4Njopl57PwSrJQWcGEuH2yHyM896vfPO4L6BJIOfyWzh8kwpQqclDt6uhXoF/v OsO1zb/7/j+n/pDZsePqP9AyIgErsHEBgUbhecDqzjN++ITPcZjQ6TIMPglZaumN jFAdAZuAaEwqAk8jqN2wlm689Fh9MuUEarHXbXLCqu5RgLrWhFGhp/cTWY62aqnZ XfEeQ9KtpRZmlR/IYjerbb1eRH7ZdJsZ88WngLX9dj/JdNxHWBkWQBXGAusXk5Fk y6LsIV3TjyBdrRKJ1Ifyg/2EIXHNBs8HxTFGXpjtp2HPuMLDxZOWOWikb9URtNg= =Fjf4 -----END PGP SIGNATURE----- Merge tag 'v3.16-rc7' into perf/core, to merge in the latest fixes before applying new changes Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
commit
5030c69755
1000 changed files with 9707 additions and 5791 deletions
|
|
@ -35,7 +35,7 @@ static inline int __mutex_init(liblockdep_pthread_mutex_t *lock,
|
|||
|
||||
static inline int liblockdep_pthread_mutex_lock(liblockdep_pthread_mutex_t *lock)
|
||||
{
|
||||
lock_acquire(&lock->dep_map, 0, 0, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&lock->dep_map, 0, 0, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
return pthread_mutex_lock(&lock->mutex);
|
||||
}
|
||||
|
||||
|
|
@ -47,7 +47,7 @@ static inline int liblockdep_pthread_mutex_unlock(liblockdep_pthread_mutex_t *lo
|
|||
|
||||
static inline int liblockdep_pthread_mutex_trylock(liblockdep_pthread_mutex_t *lock)
|
||||
{
|
||||
lock_acquire(&lock->dep_map, 0, 1, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&lock->dep_map, 0, 1, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
return pthread_mutex_trylock(&lock->mutex) == 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ static inline int __rwlock_init(liblockdep_pthread_rwlock_t *lock,
|
|||
|
||||
static inline int liblockdep_pthread_rwlock_rdlock(liblockdep_pthread_rwlock_t *lock)
|
||||
{
|
||||
lock_acquire(&lock->dep_map, 0, 0, 2, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&lock->dep_map, 0, 0, 2, 1, NULL, (unsigned long)_RET_IP_);
|
||||
return pthread_rwlock_rdlock(&lock->rwlock);
|
||||
|
||||
}
|
||||
|
|
@ -49,19 +49,19 @@ static inline int liblockdep_pthread_rwlock_unlock(liblockdep_pthread_rwlock_t *
|
|||
|
||||
static inline int liblockdep_pthread_rwlock_wrlock(liblockdep_pthread_rwlock_t *lock)
|
||||
{
|
||||
lock_acquire(&lock->dep_map, 0, 0, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&lock->dep_map, 0, 0, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
return pthread_rwlock_wrlock(&lock->rwlock);
|
||||
}
|
||||
|
||||
static inline int liblockdep_pthread_rwlock_tryrdlock(liblockdep_pthread_rwlock_t *lock)
|
||||
{
|
||||
lock_acquire(&lock->dep_map, 0, 1, 2, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&lock->dep_map, 0, 1, 2, 1, NULL, (unsigned long)_RET_IP_);
|
||||
return pthread_rwlock_tryrdlock(&lock->rwlock) == 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
static inline int liblockdep_pthread_rwlock_trywlock(liblockdep_pthread_rwlock_t *lock)
|
||||
{
|
||||
lock_acquire(&lock->dep_map, 0, 1, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&lock->dep_map, 0, 1, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
return pthread_rwlock_trywlock(&lock->rwlock) == 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ enum { none, prepare, done, } __init_state;
|
|||
static void init_preload(void);
|
||||
static void try_init_preload(void)
|
||||
{
|
||||
if (!__init_state != done)
|
||||
if (__init_state != done)
|
||||
init_preload();
|
||||
}
|
||||
|
||||
|
|
@ -252,7 +252,7 @@ int pthread_mutex_lock(pthread_mutex_t *mutex)
|
|||
|
||||
try_init_preload();
|
||||
|
||||
lock_acquire(&__get_lock(mutex)->dep_map, 0, 0, 0, 2, NULL,
|
||||
lock_acquire(&__get_lock(mutex)->dep_map, 0, 0, 0, 1, NULL,
|
||||
(unsigned long)_RET_IP_);
|
||||
/*
|
||||
* Here's the thing with pthread mutexes: unlike the kernel variant,
|
||||
|
|
@ -281,7 +281,7 @@ int pthread_mutex_trylock(pthread_mutex_t *mutex)
|
|||
|
||||
try_init_preload();
|
||||
|
||||
lock_acquire(&__get_lock(mutex)->dep_map, 0, 1, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(mutex)->dep_map, 0, 1, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
r = ll_pthread_mutex_trylock(mutex);
|
||||
if (r)
|
||||
lock_release(&__get_lock(mutex)->dep_map, 0, (unsigned long)_RET_IP_);
|
||||
|
|
@ -303,7 +303,7 @@ int pthread_mutex_unlock(pthread_mutex_t *mutex)
|
|||
*/
|
||||
r = ll_pthread_mutex_unlock(mutex);
|
||||
if (r)
|
||||
lock_acquire(&__get_lock(mutex)->dep_map, 0, 0, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(mutex)->dep_map, 0, 0, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
@ -352,7 +352,7 @@ int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock)
|
|||
|
||||
init_preload();
|
||||
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 0, 2, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 0, 2, 1, NULL, (unsigned long)_RET_IP_);
|
||||
r = ll_pthread_rwlock_rdlock(rwlock);
|
||||
if (r)
|
||||
lock_release(&__get_lock(rwlock)->dep_map, 0, (unsigned long)_RET_IP_);
|
||||
|
|
@ -366,7 +366,7 @@ int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock)
|
|||
|
||||
init_preload();
|
||||
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 1, 2, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 1, 2, 1, NULL, (unsigned long)_RET_IP_);
|
||||
r = ll_pthread_rwlock_tryrdlock(rwlock);
|
||||
if (r)
|
||||
lock_release(&__get_lock(rwlock)->dep_map, 0, (unsigned long)_RET_IP_);
|
||||
|
|
@ -380,7 +380,7 @@ int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock)
|
|||
|
||||
init_preload();
|
||||
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 1, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 1, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
r = ll_pthread_rwlock_trywrlock(rwlock);
|
||||
if (r)
|
||||
lock_release(&__get_lock(rwlock)->dep_map, 0, (unsigned long)_RET_IP_);
|
||||
|
|
@ -394,7 +394,7 @@ int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock)
|
|||
|
||||
init_preload();
|
||||
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 0, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 0, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
r = ll_pthread_rwlock_wrlock(rwlock);
|
||||
if (r)
|
||||
lock_release(&__get_lock(rwlock)->dep_map, 0, (unsigned long)_RET_IP_);
|
||||
|
|
@ -411,7 +411,7 @@ int pthread_rwlock_unlock(pthread_rwlock_t *rwlock)
|
|||
lock_release(&__get_lock(rwlock)->dep_map, 0, (unsigned long)_RET_IP_);
|
||||
r = ll_pthread_rwlock_unlock(rwlock);
|
||||
if (r)
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 0, 0, 2, NULL, (unsigned long)_RET_IP_);
|
||||
lock_acquire(&__get_lock(rwlock)->dep_map, 0, 0, 0, 1, NULL, (unsigned long)_RET_IP_);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
@ -439,8 +439,6 @@ __attribute__((constructor)) static void init_preload(void)
|
|||
ll_pthread_rwlock_unlock = dlsym(RTLD_NEXT, "pthread_rwlock_unlock");
|
||||
#endif
|
||||
|
||||
printf("%p\n", ll_pthread_mutex_trylock);fflush(stdout);
|
||||
|
||||
lockdep_init();
|
||||
|
||||
__init_state = done;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
all:
|
||||
|
||||
run_tests:
|
||||
@/bin/sh ./on-off-test.sh || echo "cpu-hotplug selftests: [FAIL]"
|
||||
@/bin/bash ./on-off-test.sh || echo "cpu-hotplug selftests: [FAIL]"
|
||||
|
||||
clean:
|
||||
|
|
|
|||
|
|
@ -193,6 +193,11 @@ int main(int argc, char **argv)
|
|||
int msg, pid, err;
|
||||
struct msgque_data msgque;
|
||||
|
||||
if (getuid() != 0) {
|
||||
printf("Please run the test as root - Exiting.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
msgque.key = ftok(argv[0], 822155650);
|
||||
if (msgque.key == -1) {
|
||||
printf("Can't make key\n");
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
all:
|
||||
|
||||
run_tests:
|
||||
@/bin/sh ./on-off-test.sh || echo "memory-hotplug selftests: [FAIL]"
|
||||
@/bin/bash ./on-off-test.sh || echo "memory-hotplug selftests: [FAIL]"
|
||||
|
||||
clean:
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ PROGS := tm-resched-dscr
|
|||
|
||||
all: $(PROGS)
|
||||
|
||||
$(PROGS):
|
||||
$(PROGS): ../harness.c
|
||||
|
||||
run_tests: all
|
||||
@-for PROG in $(PROGS); do \
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@
|
|||
#include <assert.h>
|
||||
#include <asm/tm.h>
|
||||
|
||||
#include "utils.h"
|
||||
|
||||
#define TBEGIN ".long 0x7C00051D ;"
|
||||
#define TEND ".long 0x7C00055D ;"
|
||||
#define TCHECK ".long 0x7C00059C ;"
|
||||
|
|
@ -36,7 +38,8 @@
|
|||
#define SPRN_TEXASR 0x82
|
||||
#define SPRN_DSCR 0x03
|
||||
|
||||
int main(void) {
|
||||
int test_body(void)
|
||||
{
|
||||
uint64_t rv, dscr1 = 1, dscr2, texasr;
|
||||
|
||||
printf("Check DSCR TM context switch: ");
|
||||
|
|
@ -81,10 +84,15 @@ int main(void) {
|
|||
}
|
||||
if (dscr2 != dscr1) {
|
||||
printf(" FAIL\n");
|
||||
exit(EXIT_FAILURE);
|
||||
return 1;
|
||||
} else {
|
||||
printf(" OK\n");
|
||||
exit(EXIT_SUCCESS);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
return test_harness(test_body, "tm_resched_dscr");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ OBJS = tmon.o tui.o sysfs.o pid.o
|
|||
OBJS +=
|
||||
|
||||
tmon: $(OBJS) Makefile tmon.h
|
||||
$(CC) ${CFLAGS} $(LDFLAGS) $(OBJS) -o $(TARGET) -lm -lpanel -lncursesw -lpthread
|
||||
$(CC) ${CFLAGS} $(LDFLAGS) $(OBJS) -o $(TARGET) -lm -lpanel -lncursesw -ltinfo -lpthread
|
||||
|
||||
valgrind: tmon
|
||||
sudo valgrind -v --track-origins=yes --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes ./$(TARGET) 1> /dev/null
|
||||
|
|
|
|||
|
|
@ -142,6 +142,7 @@ static void start_syslog(void)
|
|||
static void prepare_logging(void)
|
||||
{
|
||||
int i;
|
||||
struct stat logstat;
|
||||
|
||||
if (!logging)
|
||||
return;
|
||||
|
|
@ -152,6 +153,29 @@ static void prepare_logging(void)
|
|||
return;
|
||||
}
|
||||
|
||||
if (lstat(TMON_LOG_FILE, &logstat) < 0) {
|
||||
syslog(LOG_ERR, "Unable to stat log file %s\n", TMON_LOG_FILE);
|
||||
fclose(tmon_log);
|
||||
tmon_log = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
/* The log file must be a regular file owned by us */
|
||||
if (S_ISLNK(logstat.st_mode)) {
|
||||
syslog(LOG_ERR, "Log file is a symlink. Will not log\n");
|
||||
fclose(tmon_log);
|
||||
tmon_log = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
if (logstat.st_uid != getuid()) {
|
||||
syslog(LOG_ERR, "We don't own the log file. Not logging\n");
|
||||
fclose(tmon_log);
|
||||
tmon_log = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
fprintf(tmon_log, "#----------- THERMAL SYSTEM CONFIG -------------\n");
|
||||
for (i = 0; i < ptdata.nr_tz_sensor; i++) {
|
||||
char binding_str[33]; /* size of long + 1 */
|
||||
|
|
@ -331,7 +355,7 @@ static void start_daemon_mode()
|
|||
disable_tui();
|
||||
|
||||
/* change the file mode mask */
|
||||
umask(0);
|
||||
umask(S_IWGRP | S_IWOTH);
|
||||
|
||||
/* new SID for the daemon process */
|
||||
sid = setsid();
|
||||
|
|
|
|||
|
|
@ -116,8 +116,8 @@ static const struct {
|
|||
.header = {
|
||||
.magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC),
|
||||
.length = cpu_to_le32(sizeof descriptors),
|
||||
.fs_count = 3,
|
||||
.hs_count = 3,
|
||||
.fs_count = cpu_to_le32(3),
|
||||
.hs_count = cpu_to_le32(3),
|
||||
},
|
||||
.fs_descs = {
|
||||
.intf = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue