lkml.org 
[lkml]   [2017]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 4.9 000/116] 4.9.2-stable review
Date
This is the start of the stable review cycle for the 4.9.2 release.
There are 116 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.

Responses should be made by Sun Jan 8 21:38:42 UTC 2017.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.2-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Linux 4.9.2-rc1

Mika Kuoppala <mika.kuoppala@linux.intel.com>
drm/i915: Fix setting of boost freq tunable

Paulo Zanoni <paulo.r.zanoni@intel.com>
drm/i915: skip the first 4k of stolen memory on everything >= gen8

Ville Syrjälä <ville.syrjala@linux.intel.com>
drm/i915: Initialize dev_priv->atomic_cdclk_freq at init time

Ville Syrjälä <ville.syrjala@linux.intel.com>
drm/i915: Fix cdclk vs. dev_cdclk mess when not recomputing things

Hans de Goede <hdegoede@redhat.com>
drm/i915/dsi: Do not clear DPOUNIT_CLOCK_GATE_DISABLE from vlv_init_display_clock_gating

Hans de Goede <hdegoede@redhat.com>
drm/i915/dsi: Fix chv_exec_gpio disabling the GPIOs it is setting

Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
net: mvpp2: fix dma unmapping of TX buffers for fragments

Al Viro <viro@zeniv.linux.org.uk>
sg_write()/bsg_write() is not fit to be called under KERNEL_DS

Ben Hutchings <ben.hutchings@codethink.co.uk>
kconfig/nconf: Fix hang when editing symbol with a long prompt

Andy Grover <agrover@redhat.com>
target/user: Fix use-after-free of tcmu_cmds if they are expired

Dan Williams <dan.j.williams@intel.com>
libnvdimm, pfn: fix align attribute

David Daney <david.daney@cavium.com>
of, numa: Return NUMA_NO_NODE from disable of_node_to_nid() if nid not possible.

Nicholas Piggin <npiggin@gmail.com>
powerpc/boot: Request no dynamic linker for boot wrapper

Geoff Levand <geoff@infradead.org>
powerpc/ps3: Fix system hang with GCC 5 builds

Nicholas Piggin <npiggin@gmail.com>
powerpc/64e: Convert cmpi to cmpwi in head_64.S

NeilBrown <neilb@suse.com>
SUNRPC: fix refcounting problems with auth_gss messages.

Trond Myklebust <trond.myklebust@primarydata.com>
pNFS: Fix a deadlock between read resends and layoutreturn

Trond Myklebust <trond.myklebust@primarydata.com>
pNFS: Clear NFS_LAYOUT_RETURN_REQUESTED when invalidating the layout stateid

Trond Myklebust <trond.myklebust@primarydata.com>
pNFS: Don't clear the layout stateid if a layout return is outstanding

Trond Myklebust <trond.myklebust@primarydata.com>
pNFS: On error, do not send LAYOUTGET until the LAYOUTRETURN has completed

Al Viro <viro@zeniv.linux.org.uk>
nfs_write_end(): fix handling of short copies

Ilya Dryomov <idryomov@gmail.com>
libceph: verify authorize reply on connect

Alan Stern <stern@rowland.harvard.edu>
PCI: Check for PME in targeted sleep state

Shiraz Saleem <shiraz.saleem@intel.com>
i40iw: Use correct src address in memcpy to rdma stats counters

Miklos Szeredi <mszeredi@redhat.com>
bad_inode: add missing i_op initializers

Jingkui Wang <jkwang@google.com>
Input: drv260x - fix input device's parent assignment

Laurent Pinchart <laurent.pinchart@ideasonboard.com>
v4l: tvp5150: Add missing break in set control handler

Andrey Utkin <andrey.utkin@corp.bluecherry.net>
media: solo6x10: fix lockup by avoiding delayed register write

Marek Szyprowski <m.szyprowski@samsung.com>
s5p-mfc: fix failure path of s5p_mfc_alloc_memdev()

Antti Palosaari <crope@iki.fi>
mn88473: fix chip id check on probe

Antti Palosaari <crope@iki.fi>
mn88472: fix chip id check on probe

Bart Van Assche <bart.vanassche@sandisk.com>
IB/cma: Fix a race condition in iboe_addr_get_sgid()

Bart Van Assche <bart.vanassche@sandisk.com>
IB/rxe: Fix a memory leak in rxe_qp_cleanup()

Bart Van Assche <bart.vanassche@sandisk.com>
IB/multicast: Check ib_find_pkey() return value

Bart Van Assche <bart.vanassche@sandisk.com>
IPoIB: Avoid reading an uninitialized member variable

Bart Van Assche <bart.vanassche@sandisk.com>
IB/mad: Fix an array index check

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
fgraph: Handle a case where a tracer ignores set_graph_notrace

Thomas Gleixner <tglx@linutronix.de>
x86/smpboot: Make logical package management more robust

Marcos Paulo de Souza <marcos.souza.org@gmail.com>
platform/x86: asus-nb-wmi.c: Add X45U quirk

Steven Rostedt (Red Hat) <rostedt@goodmis.org>
ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it

Michael S. Tsirkin <mst@redhat.com>
vsock/virtio: fix src/dst cid format

Jan Kara <jack@suse.cz>
fsnotify: Fix possible use-after-free in inode iteration on umount

Jim Mattson <jmattson@google.com>
kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF)

Paul Mackerras <paulus@ozlabs.org>
KVM: PPC: Book3S HV: Don't lose hardware R/C bit updates in H_PROTECT

Paul Mackerras <paulus@ozlabs.org>
KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state

Kevin Barnett <kevin.barnett@microsemi.com>
scsi: aacraid: remove wildcard for series 9 controllers

Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
md/raid5: limit request size according to implementation limits

Josh Cartwright <joshc@ni.com>
sc16is7xx: Drop bogus use of IRQF_ONESHOT

Kees Cook <keescook@chromium.org>
latent_entropy: fix ARM build error on earlier gcc

Marc Zyngier <marc.zyngier@arm.com>
arm64: KVM: pmu: Reset PMSELR_EL0.SEL to a sane value before entering the guest

Heiko Carstens <heiko.carstens@de.ibm.com>
s390/kexec: use node 0 when re-adding crash kernel memory

Gerald Schaefer <gerald.schaefer@de.ibm.com>
s390/vmlogrdr: fix IUCV buffer allocation

Yves-Alexis Perez <corsac@corsac.net>
firmware: fix usermode helper fallback loading

Vineet Gupta <vgupta@synopsys.com>
ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache

Wei Fang <fangwei1@huawei.com>
scsi: avoid a permanent stop of the scsi device's request queue

Steffen Maier <maier@linux.vnet.ibm.com>
scsi: zfcp: fix rport unblock race with LUN recovery

Steffen Maier <maier@linux.vnet.ibm.com>
scsi: zfcp: do not trace pure benign residual HBA responses at default level

Benjamin Block <bblock@linux.vnet.ibm.com>
scsi: zfcp: fix use-after-"free" in FC ingress path after TMF

Varun Prakash <varun@chelsio.com>
iscsi-target: Return error if unable to add network portal

Kashyap Desai <kashyap.desai@broadcom.com>
scsi: megaraid_sas: Do not set MPI2_TYPE_CUDA for JBOD FP path for FW which does not support JBOD sequence map

Kashyap Desai <kashyap.desai@broadcom.com>
scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset

Johan Hovold <johan@kernel.org>
stm class: Fix device leak in open error path

Maciej S. Szmigiero <mail@maciej.szmigiero.name>
vt: fix Scroll Lock LED trigger name

Rabin Vincent <rabinv@axis.com>
block: protect iterate_bdevs() against concurrent close

Tomas Winkler <tomas.winkler@intel.com>
mei: me: add lewisburg device ids

Alexander Usyskin <alexander.usyskin@intel.com>
mei: request async autosuspend at the end of enumeration

Russell Currey <ruscur@russell.cc>
drivers/gpu/drm/ast: Fix infinite loop if read fails

Rex Zhu <Rex.Zhu@amd.com>
drm/amdgpu: fix init save/restore list in gfx_v8.0

Rex Zhu <Rex.Zhu@amd.com>
drm/amdgpu: fix enable_cp_power_gating in gfx_v8.0.

Hawking Zhang <Hawking.Zhang@amd.com>
drm/amd/powerplay: bypass fan table setup if no fan connected

Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
drm/gma500: Add compat ioctl

Alex Deucher <alexander.deucher@amd.com>
drm/radeon/si: load the proper firmware on 0x87 oland boards

Alex Deucher <alexander.deucher@amd.com>
drm/radeon: add additional pci revision to dpm workaround

Michel Dänzer <michel.daenzer@amd.com>
drm/radeon: Hide the HW cursor while it's out of bounds

Michel Dänzer <michel.daenzer@amd.com>
drm/radeon: Also call cursor_move_locked when the cursor size changes

Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex

Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/i2c/gk110b,gm10x: use the correct implementation

Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/ttm: wait for bo fence to signal before unmapping vmas

Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/ltc: protect clearing of comptags with mutex

Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/bios: require checksum to match for fast acpi shadow method

Ben Skeggs <bskeggs@redhat.com>
drm/nouveau/kms: lvds panel strap moved again on maxwell

Alexandre Courbot <acourbot@nvidia.com>
drm/nouveau/gr: fallback to legacy paths during firmware lookup

Arindam Nath <arindam.nath@amd.com>
drm/amd/amdgpu: enable GUI idle INT after enabling CGCG

Michel Dänzer <michel.daenzer@amd.com>
drm/amdgpu: Also call cursor_move_locked when the cursor size changes

Michel Dänzer <michel.daenzer@amd.com>
drm/amdgpu: Store CRTC relative amdgpu_crtc->cursor_x/y values

Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu: add additional pci revision to dpm workaround

Alex Deucher <alexander.deucher@amd.com>
drm/amdgpu/si: load the proper firmware on 0x87 oland boards

Hans de Goede <hdegoede@redhat.com>
ACPI / video: Add force_native quirk for HP Pavilion dv6

Hans de Goede <hdegoede@redhat.com>
ACPI / video: Add force_native quirk for Dell XPS 17 L702X

Ian Abbott <abbotti@mev.co.uk>
staging: comedi: ni_mio_common: fix E series ni_ai_insn_read() data

Ian Abbott <abbotti@mev.co.uk>
staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask

Arnd Bergmann <arnd@arndb.de>
staging: lustre: ldlm: pl_recalc time handling is wrong

Oleg Drokin <green@linuxhacker.ru>
staging/lustre/osc: Revert erroneous list_for_each_entry_safe use

Vitaly Kuznetsov <vkuznets@redhat.com>
hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()

Dmitry Shachnev <mitya57@debian.org>
docs: sphinx-extensions: make rstFlatTable work with docutils 0.13

Krzysztof Kozlowski <krzk@kernel.org>
thermal: hwmon: Properly report critical temperature in sysfs

Boris Brezillon <boris.brezillon@free-electrons.com>
clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk

Alexandre Courbot <acourbot@nvidia.com>
arm64: tegra: Add VDD_GPU regulator to Jetson TX1

Lars-Peter Clausen <lars@metafoo.de>
gpio: chardev: Return error for seek operations

Linus Walleij <linus.walleij@linaro.org>
gpio: stmpe: fix interrupt handling bug

Thomas Gleixner <tglx@linutronix.de>
timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion

Paul Burton <paul.burton@imgtec.com>
mmc: sd: Meet alignment requirements for raw_ssr DMA

Linus Walleij <linus.walleij@linaro.org>
regulator: stw481x-vmmc: fix ages old enable error

Adrian Hunter <adrian.hunter@intel.com>
mmc: sdhci: Fix recovery from tuning timeout

Adrian Hunter <adrian.hunter@intel.com>
Revert "mmc: sdhci: Reset cmd and data circuits after tuning failure"

Tobias Klausmann <tobias.johannes.klausmann@mni.thm.de>
ath9k: do not return early to fix rcu unlocking

Vittorio Gambaletta (VittGam) <linux-wireless@vittgam.net>
ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards.

Matthias Schiffer <mschiffer@universe-factory.net>
ath9k: fix ath9k_hw_gpio_get() to return 0 or 1 on success

Johannes Berg <johannes.berg@intel.com>
cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts

Jes Sorensen <Jes.Sorensen@redhat.com>
rtl8xxxu: Work around issue with 8192eu and 8723bu devices not reconnecting

Thomas Gleixner <tglx@linutronix.de>
perf/x86/intel/cstate: Prevent hotplug callback leak

Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
perf annotate: Don't throw error for zero length symbols

Andi Kleen <ak@linux.intel.com>
perf/x86: Fix exclusion of BTS and LBR for Goldmont

Larry Finger <Larry.Finger@lwfinger.net>
rtlwifi: Fix enter/exit power_save

Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
ath10k: fix soft lockup during firmware crash/hw-restart

Larry Finger <Larry.Finger@lwfinger.net>
ssb: Fix error routine when fallback SPROM fails


-------------

Diffstat:

Documentation/sphinx/rstFlatTable.py | 5 ++
Documentation/virtual/kvm/api.txt | 1 +
Makefile | 4 +-
arch/arc/include/asm/cacheflush.h | 6 +-
arch/arc/mm/cache.c | 13 ++--
arch/arm64/boot/dts/nvidia/tegra210-p2180.dtsi | 18 ++++++
arch/arm64/kvm/hyp/switch.c | 8 ++-
arch/powerpc/boot/ps3-head.S | 5 --
arch/powerpc/boot/ps3.c | 8 +--
arch/powerpc/boot/wrapper | 24 +++++++-
arch/powerpc/include/asm/kvm_host.h | 1 +
arch/powerpc/include/uapi/asm/kvm.h | 1 +
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/head_64.S | 8 +--
arch/powerpc/kvm/book3s_hv.c | 6 ++
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 2 +
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 ++
arch/s390/kernel/setup.c | 2 +-
arch/x86/entry/entry_32.S | 4 +-
arch/x86/events/core.c | 8 ++-
arch/x86/events/intel/cstate.c | 14 ++---
arch/x86/events/perf_event.h | 2 +-
arch/x86/kernel/apic/apic.c | 15 -----
arch/x86/kernel/cpu/common.c | 24 +++-----
arch/x86/kernel/smpboot.c | 51 ++++++----------
arch/x86/kvm/vmx.c | 11 ++--
arch/x86/xen/smp.c | 6 --
block/bsg.c | 3 +
drivers/acpi/video_detect.c | 20 +++++++
drivers/base/firmware_class.c | 7 ++-
drivers/clk/bcm/clk-bcm2835.c | 4 +-
drivers/gpio/gpio-stmpe.c | 2 +-
drivers/gpio/gpiolib.c | 5 +-
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 15 ++---
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 15 ++---
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 14 +++--
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 15 ++---
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 28 +++++----
drivers/gpu/drm/amd/amdgpu/si_dpm.c | 2 +
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smc.c | 6 ++
drivers/gpu/drm/amd/powerplay/smumgr/iceland_smc.c | 6 ++
.../gpu/drm/amd/powerplay/smumgr/polaris10_smc.c | 6 ++
drivers/gpu/drm/amd/powerplay/smumgr/tonga_smc.c | 6 ++
drivers/gpu/drm/ast/ast_main.c | 7 ++-
drivers/gpu/drm/gma500/psb_drv.c | 3 +
drivers/gpu/drm/i915/i915_gem_stolen.c | 5 +-
drivers/gpu/drm/i915/i915_sysfs.c | 2 +-
drivers/gpu/drm/i915/intel_display.c | 9 ++-
drivers/gpu/drm/i915/intel_dsi_panel_vbt.c | 3 +-
drivers/gpu/drm/i915/intel_runtime_pm.c | 13 +++-
drivers/gpu/drm/nouveau/nouveau_bios.c | 3 +
drivers/gpu/drm/nouveau/nouveau_bo.c | 1 +
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c | 6 +-
.../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogf100.c | 9 ++-
.../gpu/drm/nouveau/nvkm/engine/fifo/gpfifogk104.c | 8 ++-
drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 50 ++++++++++++++--
drivers/gpu/drm/nouveau/nvkm/subdev/bios/priv.h | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadow.c | 7 ++-
.../gpu/drm/nouveau/nvkm/subdev/bios/shadowacpi.c | 1 +
drivers/gpu/drm/nouveau/nvkm/subdev/ltc/base.c | 2 +
drivers/gpu/drm/radeon/radeon_cursor.c | 69 +++++++++++++++-------
drivers/gpu/drm/radeon/radeon_mode.h | 1 +
drivers/gpu/drm/radeon/si.c | 1 +
drivers/gpu/drm/radeon/si_dpm.c | 1 +
drivers/hv/channel_mgmt.c | 2 +
drivers/hwtracing/stm/core.c | 8 ++-
drivers/infiniband/core/mad.c | 2 +-
drivers/infiniband/core/multicast.c | 7 ++-
drivers/infiniband/hw/i40iw/i40iw_verbs.c | 2 +-
drivers/infiniband/sw/rxe/rxe_qp.c | 1 +
drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 7 ++-
drivers/input/misc/drv260x.c | 1 -
drivers/md/raid5.c | 9 +++
drivers/media/dvb-frontends/mn88472.c | 24 ++++----
drivers/media/dvb-frontends/mn88473.c | 24 ++++----
drivers/media/i2c/tvp5150.c | 1 +
drivers/media/pci/solo6x10/solo6x10.h | 3 +
drivers/media/platform/s5p-mfc/s5p_mfc.c | 1 +
drivers/misc/mei/client.c | 2 +-
drivers/misc/mei/hw-me-regs.h | 2 +
drivers/misc/mei/pci-me.c | 1 +
drivers/mmc/core/sd.c | 12 +++-
drivers/mmc/host/sdhci.c | 24 ++++++--
drivers/net/ethernet/marvell/mvpp2.c | 59 +++++++++---------
drivers/net/wireless/ath/ath10k/core.c | 2 +-
drivers/net/wireless/ath/ath10k/mac.c | 1 -
drivers/net/wireless/ath/ath9k/hw.c | 2 +-
drivers/net/wireless/ath/ath9k/pci.c | 7 ++-
drivers/net/wireless/ath/ath9k/xmit.c | 2 +-
.../net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 8 +++
drivers/net/wireless/realtek/rtlwifi/base.c | 8 +--
drivers/net/wireless/realtek/rtlwifi/core.c | 9 +--
drivers/net/wireless/realtek/rtlwifi/pci.c | 14 ++---
drivers/net/wireless/realtek/rtlwifi/ps.c | 36 ++++++++---
drivers/nvdimm/pfn_devs.c | 2 +-
drivers/of/of_numa.c | 7 ++-
drivers/pci/pci.c | 4 ++
drivers/platform/x86/asus-nb-wmi.c | 9 +++
drivers/regulator/stw481x-vmmc.c | 3 +-
drivers/s390/char/vmlogrdr.c | 2 +-
drivers/s390/scsi/zfcp_dbf.c | 17 +++++-
drivers/s390/scsi/zfcp_dbf.h | 41 ++++++++++++-
drivers/s390/scsi/zfcp_erp.c | 61 ++++++++++++++++++-
drivers/s390/scsi/zfcp_ext.h | 4 +-
drivers/s390/scsi/zfcp_fsf.h | 3 +-
drivers/s390/scsi/zfcp_reqlist.h | 30 +++++++++-
drivers/s390/scsi/zfcp_scsi.c | 61 +++++++++++++++++--
drivers/scsi/aacraid/linit.c | 2 -
drivers/scsi/megaraid/megaraid_sas_fusion.c | 9 +--
drivers/scsi/scsi_sysfs.c | 4 --
drivers/scsi/sg.c | 3 +
drivers/ssb/pci.c | 1 +
drivers/staging/comedi/drivers/ni_mio_common.c | 7 +--
drivers/staging/lustre/lustre/ldlm/ldlm_pool.c | 8 +--
drivers/staging/lustre/lustre/osc/osc_page.c | 5 +-
drivers/target/iscsi/iscsi_target_configfs.c | 4 +-
drivers/target/target_core_user.c | 2 -
drivers/thermal/thermal_hwmon.c | 2 +-
drivers/tty/serial/sc16is7xx.c | 2 +-
drivers/tty/vt/keyboard.c | 2 +-
fs/bad_inode.c | 55 +++++++++++++++--
fs/block_dev.c | 7 ++-
fs/nfs/file.c | 2 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 4 ++
fs/nfs/pnfs.c | 31 ++++++----
fs/nfs/pnfs.h | 1 +
fs/notify/inode_mark.c | 45 +++-----------
include/net/cfg80211.h | 11 ++++
include/rdma/ib_addr.h | 6 +-
kernel/time/timekeeping.c | 4 +-
kernel/trace/trace_functions_graph.c | 17 +++++-
net/ceph/messenger.c | 13 ++++
net/mac80211/mlme.c | 21 ++++---
net/sunrpc/auth_gss/auth_gss.c | 7 ++-
net/vmw_vsock/virtio_transport_common.c | 14 ++---
net/wireless/core.h | 1 +
net/wireless/mlme.c | 12 ++++
net/wireless/sme.c | 14 +++++
scripts/gcc-plugins/latent_entropy_plugin.c | 4 +-
scripts/kconfig/nconf.gui.c | 15 +++--
tools/perf/util/annotate.c | 3 +-
141 files changed, 1032 insertions(+), 439 deletions(-)


\
 
 \ /
  Last update: 2017-01-06 23:33    [W:0.552 / U:0.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site