diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-23 17:05:10 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2017-03-23 17:05:10 -0400 |
commit | 5617c05d44ebd7b75973b5b31a9f2e55e5882d3f (patch) | |
tree | 7250f4b5690c141115a13afdb21c12cc720ae79c /tools | |
parent | 22db87ba6bbefcb12493ae9c7be2037f5f12639d (diff) | |
parent | 25cd9721c2b16ee0d775e36ec3af31f392003f80 (diff) |
Merge tag 'fixes-for-v4.11-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
Felipe writes:
usb: fixes for v4.11-rc4
f_acm got an endianness fix by Oliver Neukum. This has been around for a
long time but it's finally fixed.
f_hid learned that it should never access hidg->req without first
grabbing the spinlock.
Roger Quadros fixed two bugs in the f_uvc function driver.
Janusz Dziedzic fixed a very peculiar bug with EP0, one that's rather
difficult to trigger. When we're dealing with bounced EP0 requests, we
should delay unmap until after ->complete() is called.
UDC class got a use-after-free fix.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/include/uapi/linux/bpf_perf_event.h | 18 | ||||
-rw-r--r-- | tools/perf/util/symbol.c | 2 | ||||
-rw-r--r-- | tools/testing/selftests/bpf/Makefile | 4 | ||||
-rw-r--r-- | tools/testing/selftests/bpf/test_verifier.c | 4 | ||||
-rw-r--r-- | tools/testing/selftests/powerpc/include/vsx_asm.h | 48 |
5 files changed, 50 insertions, 26 deletions
diff --git a/tools/include/uapi/linux/bpf_perf_event.h b/tools/include/uapi/linux/bpf_perf_event.h new file mode 100644 index 000000000000..067427259820 --- /dev/null +++ b/tools/include/uapi/linux/bpf_perf_event.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* Copyright (c) 2016 Facebook | ||
2 | * | ||
3 | * This program is free software; you can redistribute it and/or | ||
4 | * modify it under the terms of version 2 of the GNU General Public | ||
5 | * License as published by the Free Software Foundation. | ||
6 | */ | ||
7 | #ifndef _UAPI__LINUX_BPF_PERF_EVENT_H__ | ||
8 | #define _UAPI__LINUX_BPF_PERF_EVENT_H__ | ||
9 | |||
10 | #include <linux/types.h> | ||
11 | #include <linux/ptrace.h> | ||
12 | |||
13 | struct bpf_perf_event_data { | ||
14 | struct pt_regs regs; | ||
15 | __u64 sample_period; | ||
16 | }; | ||
17 | |||
18 | #endif /* _UAPI__LINUX_BPF_PERF_EVENT_H__ */ | ||
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 70e389bc4af7..9b4d8ba22fed 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
@@ -202,7 +202,7 @@ void symbols__fixup_end(struct rb_root *symbols) | |||
202 | 202 | ||
203 | /* Last entry */ | 203 | /* Last entry */ |
204 | if (curr->end == curr->start) | 204 | if (curr->end == curr->start) |
205 | curr->end = roundup(curr->start, 4096); | 205 | curr->end = roundup(curr->start, 4096) + 4096; |
206 | } | 206 | } |
207 | 207 | ||
208 | void __map_groups__fixup_end(struct map_groups *mg, enum map_type type) | 208 | void __map_groups__fixup_end(struct map_groups *mg, enum map_type type) |
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 4b498265dae6..67531f47781b 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile | |||
@@ -1,12 +1,14 @@ | |||
1 | LIBDIR := ../../../lib | 1 | LIBDIR := ../../../lib |
2 | BPFOBJ := $(LIBDIR)/bpf/bpf.o | 2 | BPFOBJ := $(LIBDIR)/bpf/bpf.o |
3 | 3 | ||
4 | CFLAGS += -Wall -O2 -lcap -I../../../include/uapi -I$(LIBDIR) | 4 | CFLAGS += -Wall -O2 -lcap -I../../../include/uapi -I$(LIBDIR) $(BPFOBJ) |
5 | 5 | ||
6 | TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map | 6 | TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map |
7 | 7 | ||
8 | TEST_PROGS := test_kmod.sh | 8 | TEST_PROGS := test_kmod.sh |
9 | 9 | ||
10 | all: $(TEST_GEN_PROGS) | ||
11 | |||
10 | .PHONY: all clean force | 12 | .PHONY: all clean force |
11 | 13 | ||
12 | # force a rebuild of BPFOBJ when its dependencies are updated | 14 | # force a rebuild of BPFOBJ when its dependencies are updated |
diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index e1f5b9eea1e8..d1555e4240c0 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c | |||
@@ -8,6 +8,8 @@ | |||
8 | * License as published by the Free Software Foundation. | 8 | * License as published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <asm/types.h> | ||
12 | #include <linux/types.h> | ||
11 | #include <stdint.h> | 13 | #include <stdint.h> |
12 | #include <stdio.h> | 14 | #include <stdio.h> |
13 | #include <stdlib.h> | 15 | #include <stdlib.h> |
@@ -4583,10 +4585,12 @@ static bool is_admin(void) | |||
4583 | cap_flag_value_t sysadmin = CAP_CLEAR; | 4585 | cap_flag_value_t sysadmin = CAP_CLEAR; |
4584 | const cap_value_t cap_val = CAP_SYS_ADMIN; | 4586 | const cap_value_t cap_val = CAP_SYS_ADMIN; |
4585 | 4587 | ||
4588 | #ifdef CAP_IS_SUPPORTED | ||
4586 | if (!CAP_IS_SUPPORTED(CAP_SETFCAP)) { | 4589 | if (!CAP_IS_SUPPORTED(CAP_SETFCAP)) { |
4587 | perror("cap_get_flag"); | 4590 | perror("cap_get_flag"); |
4588 | return false; | 4591 | return false; |
4589 | } | 4592 | } |
4593 | #endif | ||
4590 | caps = cap_get_proc(); | 4594 | caps = cap_get_proc(); |
4591 | if (!caps) { | 4595 | if (!caps) { |
4592 | perror("cap_get_proc"); | 4596 | perror("cap_get_proc"); |
diff --git a/tools/testing/selftests/powerpc/include/vsx_asm.h b/tools/testing/selftests/powerpc/include/vsx_asm.h index d828bfb6ef2d..54064ced9e95 100644 --- a/tools/testing/selftests/powerpc/include/vsx_asm.h +++ b/tools/testing/selftests/powerpc/include/vsx_asm.h | |||
@@ -16,56 +16,56 @@ | |||
16 | */ | 16 | */ |
17 | FUNC_START(load_vsx) | 17 | FUNC_START(load_vsx) |
18 | li r5,0 | 18 | li r5,0 |
19 | lxvx vs20,r5,r3 | 19 | lxvd2x vs20,r5,r3 |
20 | addi r5,r5,16 | 20 | addi r5,r5,16 |
21 | lxvx vs21,r5,r3 | 21 | lxvd2x vs21,r5,r3 |
22 | addi r5,r5,16 | 22 | addi r5,r5,16 |
23 | lxvx vs22,r5,r3 | 23 | lxvd2x vs22,r5,r3 |
24 | addi r5,r5,16 | 24 | addi r5,r5,16 |
25 | lxvx vs23,r5,r3 | 25 | lxvd2x vs23,r5,r3 |
26 | addi r5,r5,16 | 26 | addi r5,r5,16 |
27 | lxvx vs24,r5,r3 | 27 | lxvd2x vs24,r5,r3 |
28 | addi r5,r5,16 | 28 | addi r5,r5,16 |
29 | lxvx vs25,r5,r3 | 29 | lxvd2x vs25,r5,r3 |
30 | addi r5,r5,16 | 30 | addi r5,r5,16 |
31 | lxvx vs26,r5,r3 | 31 | lxvd2x vs26,r5,r3 |
32 | addi r5,r5,16 | 32 | addi r5,r5,16 |
33 | lxvx vs27,r5,r3 | 33 | lxvd2x vs27,r5,r3 |
34 | addi r5,r5,16 | 34 | addi r5,r5,16 |
35 | lxvx vs28,r5,r3 | 35 | lxvd2x vs28,r5,r3 |
36 | addi r5,r5,16 | 36 | addi r5,r5,16 |
37 | lxvx vs29,r5,r3 | 37 | lxvd2x vs29,r5,r3 |
38 | addi r5,r5,16 | 38 | addi r5,r5,16 |
39 | lxvx vs30,r5,r3 | 39 | lxvd2x vs30,r5,r3 |
40 | addi r5,r5,16 | 40 | addi r5,r5,16 |
41 | lxvx vs31,r5,r3 | 41 | lxvd2x vs31,r5,r3 |
42 | blr | 42 | blr |
43 | FUNC_END(load_vsx) | 43 | FUNC_END(load_vsx) |
44 | 44 | ||
45 | FUNC_START(store_vsx) | 45 | FUNC_START(store_vsx) |
46 | li r5,0 | 46 | li r5,0 |
47 | stxvx vs20,r5,r3 | 47 | stxvd2x vs20,r5,r3 |
48 | addi r5,r5,16 | 48 | addi r5,r5,16 |
49 | stxvx vs21,r5,r3 | 49 | stxvd2x vs21,r5,r3 |
50 | addi r5,r5,16 | 50 | addi r5,r5,16 |
51 | stxvx vs22,r5,r3 | 51 | stxvd2x vs22,r5,r3 |
52 | addi r5,r5,16 | 52 | addi r5,r5,16 |
53 | stxvx vs23,r5,r3 | 53 | stxvd2x vs23,r5,r3 |
54 | addi r5,r5,16 | 54 | addi r5,r5,16 |
55 | stxvx vs24,r5,r3 | 55 | stxvd2x vs24,r5,r3 |
56 | addi r5,r5,16 | 56 | addi r5,r5,16 |
57 | stxvx vs25,r5,r3 | 57 | stxvd2x vs25,r5,r3 |
58 | addi r5,r5,16 | 58 | addi r5,r5,16 |
59 | stxvx vs26,r5,r3 | 59 | stxvd2x vs26,r5,r3 |
60 | addi r5,r5,16 | 60 | addi r5,r5,16 |
61 | stxvx vs27,r5,r3 | 61 | stxvd2x vs27,r5,r3 |
62 | addi r5,r5,16 | 62 | addi r5,r5,16 |
63 | stxvx vs28,r5,r3 | 63 | stxvd2x vs28,r5,r3 |
64 | addi r5,r5,16 | 64 | addi r5,r5,16 |
65 | stxvx vs29,r5,r3 | 65 | stxvd2x vs29,r5,r3 |
66 | addi r5,r5,16 | 66 | addi r5,r5,16 |
67 | stxvx vs30,r5,r3 | 67 | stxvd2x vs30,r5,r3 |
68 | addi r5,r5,16 | 68 | addi r5,r5,16 |
69 | stxvx vs31,r5,r3 | 69 | stxvd2x vs31,r5,r3 |
70 | blr | 70 | blr |
71 | FUNC_END(store_vsx) | 71 | FUNC_END(store_vsx) |