diff options
author | David S. Miller <davem@davemloft.net> | 2018-01-12 05:27:54 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-01-12 06:13:42 +0300 |
commit | 19d28fbd306e7ae7c1acf05c3e6968b56f0d196b (patch) | |
tree | 0584a3a4639424733bad7714796f858aa7addee7 /net/socket.c | |
parent | 8c2e6c904fd8701a8d02d2bdb86871dc3ec4e85b (diff) | |
parent | 1545dec46db3858bbce84c2065b579e2925706ab (diff) | |
download | linux-19d28fbd306e7ae7c1acf05c3e6968b56f0d196b.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
BPF alignment tests got a conflict because the registers
are output as Rn_w instead of just Rn in net-next, and
in net a fixup for a testcase prohibits logical operations
on pointers before using them.
Also, we should attempt to patch BPF call args if JIT always on is
enabled. Instead, if we fail to JIT the subprogs we should pass
an error back up and fail immediately.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/net/socket.c b/net/socket.c index bbd2e9ceb692..fbfae1ed3ff5 100644 --- a/net/socket.c +++ b/net/socket.c @@ -430,8 +430,10 @@ static int sock_map_fd(struct socket *sock, int flags) { struct file *newfile; int fd = get_unused_fd_flags(flags); - if (unlikely(fd < 0)) + if (unlikely(fd < 0)) { + sock_release(sock); return fd; + } newfile = sock_alloc_file(sock, flags, NULL); if (likely(!IS_ERR(newfile))) { @@ -2611,6 +2613,15 @@ out_fs: core_initcall(sock_init); /* early initcall */ +static int __init jit_init(void) +{ +#ifdef CONFIG_BPF_JIT_ALWAYS_ON + bpf_jit_enable = 1; +#endif + return 0; +} +pure_initcall(jit_init); + #ifdef CONFIG_PROC_FS void socket_seq_show(struct seq_file *seq) { |