Commit Graph

168 Commits

Author SHA1 Message Date
Rolf Neugebauer
5b2bdd3ef7 kernel: Print unified diff if kernel config does not match
After 'make oldconfig' we check that that the kernel config
is as we expect and error if they don't. We used to print
the default 'diff' output on a mismatch but a unified diff
is easier to read.

Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2018-10-20 01:05:05 +01:00
Jason A. Donenfeld
bbb459c2ad wireguard: upgrade to 0.0.20181018
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-18 03:48:12 +02:00
Jason A. Donenfeld
49e6aed4fb wireguard: upgrade to 0.0.20181006
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-06 05:07:57 +02:00
Rolf Neugebauer
f5cf0bd054 kernel: Update build to latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2018-09-27 19:38:33 +01:00
Jason A. Donenfeld
10c3de3ded wireguard: upgrade to 0.0.20180918
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-18 16:56:10 +02:00
Jason A. Donenfeld
8be1a84dee wireguard: upgrade to 0.0.20180910
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-10 18:59:29 -06:00
Jason A. Donenfeld
e446af1659 wireguard: upgrade to 0.0.20180904
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-04 12:34:05 -06:00
Rolf Neugebauer
5011c473ca kernel: Update Intel microcode to latest
Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
2018-08-17 11:58:42 +01:00
Jason A. Donenfeld
d987c058bd wireguard: upgrade to 0.0.20180809
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-12 01:27:53 -07:00
Jason A. Donenfeld
7a74c0a212 wireguard: upgrade to 0.0.20180802
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-03 22:12:29 +02:00
Jason A. Donenfeld
f8b14ba25a wireguard: upgrade to 0.0.20180718
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-07-19 00:00:08 +02:00
Jason A. Donenfeld
05753e7341 wireguard: upgrade to 0.0.20180708
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-07-08 19:43:03 +02:00
Rolf Neugebauer
d7d995cab5 kernel: Update build to use updated alpine base
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-07-07 17:51:08 +01:00
Jason A. Donenfeld
bfd0ba0983 wireguard: upgrade to 0.0.20180625
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-25 19:58:49 +02:00
Jason A. Donenfeld
8ce01c5736 wireguard: upgrade to 0.0.20180613
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-14 18:26:41 +02:00
Rolf Neugebauer
18ec668c91 kernel: Consistently use curl -f
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-06-06 18:32:23 +01:00
Rolf Neugebauer
5176ce7dd3 kernel: Stash kernel source and WireGuard source in the package
While we can re-create the kernel source code we don't have it
handily available in one place. This commit stashes the kernel
and the WireGuard source as /src/linux.tar.xz and
/src/wireguard.tar.xz in the kernel package.

This increases the size of the hub image by around 100MB.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-06-06 18:32:23 +01:00
Jason A. Donenfeld
5e10631fe2 wireguard: upgrade to 0.0.20180531
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-31 02:21:28 +02:00
Jason A. Donenfeld
e945773f63 wireguard: upgrade to 0.0.20180524
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-24 14:45:29 +02:00
Jason A. Donenfeld
6e04261450 wireguard: upgrade to 0.0.20180519
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-19 03:19:21 +02:00
Jason A. Donenfeld
49c1f0007c wireguard: upgrade to 0.0.20180513
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-13 21:38:28 +02:00
Rolf Neugebauer
01a17392f8 kernel: Update Intel microcode to 20180425
This microcode bundle comes with a file called "list"
which seems to confuse the 'iucode_tool', so we just
remove it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-05-10 13:06:28 +01:00
Rolf Neugebauer
d87820124e kernel: Fix comment on when the perf compile failed
The version in the comment was accidentally bumped during
the past kernel updates.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-05-03 17:19:14 +01:00
Rolf Neugebauer
52874a18f7 kernel: Update alpine base to latest
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-05-03 17:18:49 +01:00
Rolf Neugebauer
262b25f874 kernel: Update to 4.16.6/4.14.38/4.9.97/4.4.130
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-30 10:35:33 +01:00
Rolf Neugebauer
54ed15ccce kernel: Update to 4.16.5/4.14.37/4.9.96/4.4.129
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-27 16:45:36 +01:00
Rolf Neugebauer
d56d66a7aa kernel: Update to 4.9.95
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-23 11:52:12 +01:00
Jason A. Donenfeld
bfad9ad0e9 wireguard: upgrade to 0.0.20180420
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-20 20:39:14 +02:00
Rolf Neugebauer
deaa4b855c kernel: Fix perf compile
This was broken with commit ae6a739ac0 ("kernel: Skip
compiling perf for 4.9.x") [by me]

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-19 15:41:43 +01:00
Rolf Neugebauer
e09023d723 kernel: Update build to latest linuxkit/alpine
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-04-19 13:52:26 +01:00
Justin Cormack
ccd9d711c0 Some kernel builds need openssl binary for key generation
For example kernel module signatures if you do not provide a key. So add
to the dependencies for kernel builds.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2018-04-17 14:16:13 +01:00
Jason A. Donenfeld
60fd3c062e wireguard: upgrade to 0.0.20180413
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-04-17 00:18:42 +02:00
Rolf Neugebauer
ae6a739ac0 kernel: Skip compiling perf for 4.9.x
4.9.93 broke the compile:

  tests/code-reading.c: In function 'read_object_code':
  tests/code-reading.c:228:19: error: 'KMOD_DECOMP_LEN' undeclared (first use in this function)
    char decomp_name[KMOD_DECOMP_LEN];
                     ^~~~~~~~~~~~~~~
  tests/code-reading.c:228:19: note: each undeclared identifier is reported only once for each function it appears in
  tests/code-reading.c:291:7: error: implicit declaration of function 'dso__decompress_kmodule_path' [-Werror=implicit-function-declaration]
    if (dso__decompress_kmodule_path(al.map->dso, objdump_name,
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  tests/code-reading.c:291:3: error: nested extern declaration of 'dso__decompress_kmodule_path' [-Werror=nested-externs]
    if (dso__decompress_kmodule_path(al.map->dso, objdump_name,
    ^~
  tests/code-reading.c:228:7: error: unused variable 'decomp_name' [-Werror=unused-variable]
    char decomp_name[KMOD_DECOMP_LEN];
         ^~~~~~~~~~~
  cc1: all warnings being treated as errors
  mv: can't rename '/build/perf/tests/.code-reading.o.tmp': No such file or directory
  make[3]: *** [/linux/tools/build/Makefile.build:101: /build/perf/tests/code-reading.o] Error 1
  make[3]: *** Waiting for unfinished jobs....
  make[2]: *** [/linux/tools/build/Makefile.build:144: tests] Error 2
  make[2]: *** Waiting for unfinished jobs....
  make[2]: *** [/linux/tools/build/Makefile.build:144: util] Error 2
  make[1]: *** [Makefile.perf:559: /build/perf/libperf-in.o] Error 2
  make[1]: *** Waiting for unfinished jobs....
  make[1]: *** [Makefile.perf:396: /build/perf/perf-in.o] Error 2
  make: *** [Makefile:69: all] Error 2
  make: Leaving directory '/linux/tools/perf'

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@gmail.com>
2018-04-14 12:21:53 +01:00
Rolf Neugebauer
1ff6f2eea5 kernel: Update Intel CPU firmware to 20180312
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-03-15 13:50:18 +00:00
Rolf Neugebauer
9a5727f5e4 kernel: Update to latest alpine base image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-03-15 11:22:11 +00:00
Jason A. Donenfeld
dc92ae7e39 wireguard: update to 0.0.20180304
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-03-05 13:47:34 +01:00
Alice Frosi
db0045b0c9 Add s390 support for linuxkit kernel
Update building process to add s390 support.

The patch serial-forbid-8250-on-s390.patch has been added to disable
8250 serial for s390.

The patch is available upstream https://patchwork.kernel.org/patch/10106437/
but it is not backported.

Signed-off-by: Alice Frosi <alice@linux.vnet.ibm.com>
2018-03-01 12:18:16 +00:00
Rolf Neugebauer
c08a2f19a8 kernel: Update alpine base to latest
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-02-28 16:35:23 +00:00
Rolf Neugebauer
1baf815c9a Merge pull request #2897 from TiejunChina/master-dev
Support Preempt-RT Linux kernel
2018-02-19 14:00:54 +00:00
Jason A. Donenfeld
82ec5cd4e7 wireguard: update to 0.0.20180218
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-02-18 21:46:59 +01:00
Tiejun Chen
0e5d447f07 Support Preempt-RT Linux kernel
In order to get such a preempt-rt Linux kerne, we grab -rt patch via
https://www.kernel.org/pub/linux/kernel/projects/rt/. So far we just enable it
over 4.14.x.

Signed-off-by: Tiejun Chen <tiejun.china@gmail.com>
2018-02-16 05:47:22 -08:00
Rolf Neugebauer
d0d7738efa kernel: Tighten patching of the kernel
- Disable any fuzzing. Patches should apply cleanly
- Assume unified diffs

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-02-08 11:50:17 +00:00
Jason A. Donenfeld
fa77458231 wireguard: update to 0.0.20180202
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-02-02 19:12:19 +01:00
Emily Casey
e0374afb54 Use microcode-20171117 in kernel build as microcode-20180108 is no longer available
Signed-off-by: Emily Casey <ecasey@pivotal.io>
Signed-off-by: Steve Hiehn <shiehn@pivotal.io>
2018-01-30 17:51:40 -05:00
Rolf Neugebauer
5de66f4fd9 kernel: Update to 4.14.15/4.9.78/4.4.113
While at it, also update to latest alpine base

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-24 11:56:34 +00:00
Jason A. Donenfeld
290d014959 wireguard: update to 0.0.20180118
* receive: treat packet checking as irrelevant for timers

Small simplification to the state machine, as discussed with Mathias
Hall-Andersen.

* socket: check for null socket before fishing out sport
* wg-quick: ifnames have max len of 15
* tools: plug memleak in config error path

Important bug fixes.

* external-tests: add python implementation

Piotr Lizonczyk has contributed a test vector written in Python.

* poly1305: remove indirect calls

From Samuel Neves, we now are in a better position to mitigate speculative
execution attacks.

* curve25519: modularize implementation
* curve25519: import 32-bit fiat-crypto implementation
* curve25519: import 64-bit hacl-star implementation
* curve25519: resolve symbol clash between fe types
* curve25519: wire up new impls and remove donna
* tools: import new curve25519 implementations
* contrib: keygen-html: update curve25519 implementation

Two of our Curve25519 implementations now use formally verified C. Read this
mailing list post for more information:
https://lists.zx2c4.com/pipermail/wireguard/2018-January/002304.html

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-01-19 11:53:18 +01:00
Rolf Neugebauer
430bea64c3 kernel: Build the Intel ucode cpio archive and add to the kernel package
DOwnload and verify the Intel microcode package and convert it
to a cpio archive which can be prepended to the initrd.

It also adds the license file to the kernel package.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2018-01-14 13:07:27 +00:00
Rolf Neugebauer
57c8383ce0 kernel: Update WireGuard to 0.0.20171221
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-12-30 16:08:43 +00:00
Jason A. Donenfeld
584e3ac7b3 wireguard: update to 0.0.20171211
* curve25519: explictly depend on AS_AVX
* curve25519: modularize dispatch

It's now much cleaner to see which implementation we're calling, and it will
be simpler to add more implementations in the future.

* compat: support RAP in assembly

This should fix PaX/Grsecurity support.

* device: do not clear keys during sleep on Android

While we want to clear keys when going to sleep on ordinary Linux, this
doesn't make sense in the Android world, where phones often sleep but are
woken up every few milliseconds by the radios to process packets.

* compat: fix 3.10 backport

Important compat fixes for non-x86.

* device: clear last handshake timer on ifdown

When bringing up an interface, we don't want the rate limiting to handshakes
to apply.

* netlink: rename symbol to avoid clashes

Allows coexistance with horrible Android drivers.

* kernel-tree: jury rig is the more common spelling
* tools: no need to put this on the stack
* blake2s-x86_64: fix spacing

Small fixes.

* contrib: keygen-html for generating keys in the browser

This was covered here:
https://lists.zx2c4.com/pipermail/wireguard/2017-December/002127.html

* tools: remove undocumented unused syntax

Not only did nobody know about this or use it, but the implementation actually
exposed compiler bugs in Qualcomm's "Snapdragon Clang".

* poly1305: update x86-64 kernel to AVX512F only

From Samuel Neves, this pulls in Andy Polyakov's changes to only require F and
not VL for the Poly implementation.

* chacha20-arm: fix with clang -fno-integrated-as.

This pulls in David Benjamin's clang fix.

* global: add SPDX tags to all files

From Greg KH, we now have SPDX annotations on all files, matching upstream
kernel's new approach to file licenses.

* chacha20poly1305: cleaner generic code

This entirely removes the last remains of Martin Willi's ChaCha
implementation, and now the generic C implementation is extremely small and
clearly written, while delivering a small performance boost too.

* poly1305: fix avx512f alignment bug

Unlucky people may have had their linkers misalign a constant. This fixes that
potential.

* chacha20: avx512vl implementation

From Samuel Neves, this imports Andy Polyakov's AVX512VL implementation of
ChaCha which should have a ~50% performance improvement over AVX2, though it
is still much slower than our AVX512F implementation.

* chacha20poly1305: wire up avx512vl for skylake-x

Some Skylake machines do not have two FMA units (though others do), so we
prefer the AVX512VL implementation over the should-be-faster AVX512F
implementation on those machines. What's needed now is to read the PIROM in
order to determine at runtime whether the particular Skylake-X machine
actually has the second FMA unit or not, but until that happens, we just fall
back to the VL implementation for all Skylake-X.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2017-12-11 05:11:56 +01:00
Rolf Neugebauer
4254c91c9f kernel: Update build to use the alpine:3.7 base image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-12-08 16:25:13 +00:00