Files
kernel_google_b1c1/include/linux
Daniel Borkmann a3ea269b8b net: filter: keep original BPF program around
In order to open up the possibility to internally transform a BPF program
into an alternative and possibly non-trivial reversible representation, we
need to keep the original BPF program around, so that it can be passed back
to user space w/o the need of a complex decoder.

The reason for that use case resides in commit a8fc927780 ("sk-filter:
Add ability to get socket filter program (v2)"), that is, the ability
to retrieve the currently attached BPF filter from a given socket used
mainly by the checkpoint-restore project, for example.

Therefore, we add two helpers sk_{store,release}_orig_filter for taking
care of that. In the sk_unattached_filter_create() case, there's no such
possibility/requirement to retrieve a loaded BPF program. Therefore, we
can spare us the work in that case.

This approach will simplify and slightly speed up both, sk_get_filter()
and sock_diag_put_filterinfo() handlers as we won't need to successively
decode filters anymore through sk_decode_filter(). As we still need
sk_decode_filter() later on, we're keeping it around.

Joint work with Alexei Starovoitov.

Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Pavel Emelyanov <xemul@parallels.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-31 00:45:09 -04:00
..
2013-08-14 13:55:15 +05:30
2014-03-28 16:29:35 -04:00
2014-01-20 11:55:23 -08:00
2013-12-23 18:34:58 -08:00
2014-01-24 22:39:54 +01:00
2014-01-17 01:59:38 +01:00
2013-07-30 11:53:12 -04:00
2013-11-08 08:59:44 -07:00
2013-11-23 22:33:56 -08:00
2013-12-22 23:14:27 -08:00
2013-11-15 09:32:21 +09:00
2013-11-09 00:16:29 -05:00
2014-02-13 10:08:52 +05:30
2013-07-15 11:25:00 +09:30
2014-01-16 10:23:02 +10:30
2014-03-10 11:44:42 -04:00
2013-08-22 22:13:54 -07:00
2014-03-10 11:44:42 -04:00
2014-03-10 17:26:19 -07:00
2014-03-04 07:55:47 -08:00
2014-01-16 11:15:50 +01:00
2014-01-26 22:48:35 +01:00
2013-12-29 16:34:25 -05:00
2013-12-10 22:58:13 -08:00
2013-09-13 15:09:52 +02:00
2013-08-09 10:49:00 +02:00
2013-07-26 16:19:48 -07:00
2014-02-25 07:37:52 -08:00
2013-11-15 09:32:23 +09:00
2014-01-25 08:55:09 +01:00
2013-08-28 21:35:14 -07:00
2014-01-08 19:03:00 -02:00
2013-12-11 15:52:34 +01:00
2013-12-26 13:29:35 -05:00
2014-01-16 10:23:03 +10:30
2013-11-09 00:16:19 -05:00
2014-03-04 13:51:06 -05:00
2014-01-27 21:02:39 -08:00
2013-11-09 00:16:19 -05:00
2013-10-14 17:15:48 +02:00
2014-01-25 03:14:05 -05:00
2014-01-27 19:27:53 -05:00
2014-01-13 14:29:49 -08:00
2014-01-03 11:22:21 -08:00
2014-01-22 19:36:57 +01:00
2013-10-17 00:36:06 +02:00
2013-12-18 19:04:50 -08:00
2014-01-28 13:20:09 -08:00
2013-12-19 19:09:38 -05:00
2014-01-27 21:02:39 -08:00
2013-09-10 18:56:32 -04:00
2013-09-12 15:38:02 -07:00
2013-12-08 16:56:05 -08:00
2014-02-14 13:39:29 -08:00
2013-08-05 10:52:36 -06:00
2013-10-17 15:53:09 -04:00
2013-07-10 18:11:34 -07:00
2014-01-30 16:56:55 -08:00