[lkml]   [2017]   [Nov]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[GIT PULL] first round of SCSI updates for the 4.14+ merge window
This is mostly updates of the usual suspects: lpfc, qla2xxx, hisi_sas,
megaraid_sas, pm80xx, mpt3sas, be2iscsi, hpsa. and a host of minor

There's no major behaviour change or additions to the core in all of
this, so the potential for regressions should be small (biggest
potential being in the scsi error handler changes).

The patch is available here:

git:// scsi-misc

The short changelog is:

Alim Akhtar (4):
      scsi: ufs: Remove unused UFS_BIT() macro
      scsi: ufs: Remove unused #defines
      scsi: ufs-qcom: Remove uses of UFS_BIT() macro
      scsi: ufs: Change HCI macro to actual bit position

Arnd Bergmann (3):
      scsi: aacraid: use timespec64 instead of timeval
      scsi: mpt3sas: fix dma_addr_t casts
      scsi: nsp32: fix logic bug in error handling

Arvind Yadav (1):
      scsi: scsi_transport_iscsi: fix spelling mistake: 'Cound' -> 'Could'

Bader Ali Saleh (1):
      scsi: hpsa: update discovery polling

Bart Van Assche (1):
      scsi: qla2xxx: Suppress a kernel complaint in qla_init_base_qpair()

Cathy Avery (1):
      scsi: storvsc: Allow only one remove lun work item to be issued per lun

Christoph Hellwig (4):
      scsi: qla2xxx: don't break the bsg-lib abstractions
      scsi: scsi_transport_sas: check reply payload length instead of bidi request
      scsi: libfc: don't assign resid_len in fc_lport_bsg_request
      scsi: bfa: don't reset max_segments for every bsg request

Christos Gkekas (2):
      scsi: qedi: Delete redundant variables
      scsi: bnx2i: Clean up unused pointers in bnx2i_hwi

Colin Ian King (6):
      scsi: megaraid_sas: fix spelling mistake: "thershold" -> "threshold"
      scsi: aic7xxx: make a couple of functions static
      scsi: libsas: remove unused variable sas_ha
      scsi: libcxgbi: remove redundant check and close on csk
      scsi: ufs: tc-dwc-g210: make arrays static, reduces object code size
      scsi: lpfc: remove redundant null check on eqe

Damien Le Moal (6):
      scsi: sd_zbc: Fix sd_zbc_read_zoned_characteristics()
      scsi: sd_zbc: Use well defined macros
      scsi: sd_zbc: Rearrange code
      scsi: sd_zbc: Fix comments and indentation
      scsi: sd_zbc: Move ZBC declarations to scsi_proto.h
      scsi: sd: Align maximum write same blocks to physical block size

Dan Carpenter (4):
      scsi: mpt3sas: remove a stray KERN_INFO
      scsi: mpt3sas: cleanup _scsih_pcie_enumeration_event()
      scsi: lpfc: Fix a precedence bug in lpfc_nvme_io_cmd_wqe_cmpl()
      scsi: bfa: integer overflow in debugfs

Dick Kennedy (19):
      scsi: lpfc: Fix hard lock up NMI in els timeout handling.
      scsi: lpfc: change version to
      scsi: lpfc: Fix oops of nvme host during driver unload.
      scsi: lpfc: Extend RDP support
      scsi: lpfc: Ensure io aborts interlocked with the target.
      scsi: lpfc: Fix secure firmware updates
      scsi: lpfc: Fix crash in lpfc_nvme_fcp_io_submit during LIP
      scsi: lpfc: Disable NPIV support if NVME is enabled
      scsi: lpfc: Fix oops if nvmet_fc_register_targetport fails
      scsi: lpfc: Revise NVME module parameter descriptions for better clarity
      scsi: lpfc: Fix FCP hba_wqidx assignment
      scsi: lpfc: Move CQ processing to a soft IRQ
      scsi: lpfc: Make ktime sampling more accurate
      scsi: lpfc: PLOGI failures during NPIV testing
      scsi: lpfc: Fix warning messages when NVME_TARGET_FC not defined
      scsi: lpfc: Fix lpfc nvme host rejecting IO with Not Ready message
      scsi: lpfc: Fix crash receiving ELS while detaching driver
      scsi: lpfc: fix pci hot plug crash in list_add call
      scsi: lpfc: fix pci hot plug crash in timer management routines

Don Brace (10):
      scsi: hpsa: bump driver version
      scsi: hpsa: add enclosure logical identifier
      scsi: hpsa: correct logical volume removal
      scsi: hpsa: reduce warning messages on device removal
      scsi: hpsa: update queue depth for externals
      scsi: hpsa: correct smart path enabled
      scsi: hpsa: change timeout for internal cmds
      scsi: hpsa: add controller checkpoint
      scsi: smartpqi: correct spelling error in documentation
      scsi: smartpqi: update driver version to 1.1.2-126

Douglas Gilbert (1):
      scsi: scsi_debug: write_same: fix error report

Duane Grigsby (2):
      scsi: qla2xxx: Changes to support N2N logins
      scsi: qla2xxx: Allow MBC_GET_PORT_DATABASE to query and save the port states

Finn Thain (1):
      scsi: NCR5380: Suppress SDTR and WDTR message logging

Giridhar Malavali (1):
      scsi: qla2xxx: Query FC4 type during RSCN processing

Hannes Reinecke (14):
      scsi: scsi_error: Handle power-on reset unit attention
      scsi: scsi_error: Do not retry illegal function error
      scsi: scsi_devinfo: Add TRY_VPD_PAGES to HITACHI OPEN-V blacklist entry
      scsi: scsi_devinfo: Add 'AIX VDASD' to blacklist
      scsi: scsi_devinfo: fixup string compare
      scsi: scsi_devinfo: Whitespace fixes
      scsi: scsi_devinfo: Reformat blacklist flags
      scsi: scsi: Export blacklist flags to sysfs
      scsi: scsi_debug: allow to specify inquiry vendor and model
      scsi: scsi_dh: suppress errors from unsupported devices
      scsi: scsi_dh: Return SCSI_DH_XX error code from ->attach()
      scsi: fcoe: open-code fcoe_destroy_work() for NETDEV_UNREGISTER
      scsi: fcoe: separate out fcoe_vport_remove()
      scsi: fcoe: move fcoe_interface_remove() out of fcoe_interface_cleanup()

Himanshu Jha (1):
      scsi: be2iscsi: Use kasprintf

Himanshu Madhani (4):
      scsi: qla2xxx: Use ql2xnvmeenable to enable Q-Pair for FC-NVMe
      scsi: qla2xxx: Update driver version to
      scsi: qla2xxx: Add ATIO-Q processing for INTx mode
      scsi: qla2xxx: Reinstate module parameter ql2xenablemsix

Huanlin Ke (1):
      scsi: ufs: continue to boot even with Boot LUN is disabled

James Smart (4):
      scsi: scsi_transport_fc: add 64GBIT and 128GBIT port speed definitions
      scsi: lpfc: correct nvme sg segment count check
      scsi: lpfc: Set missing abort context
      scsi: lpfc: Reduce log spew on controller reconnects

Jason Yan (4):
      scsi: libsas: rename notify_port_event() for consistency
      scsi: libsas: remove unused port_gone_completion and DISCE_PORT_GONE
      scsi: libsas: remove the numbering for each event enum
      scsi: libsas: kill useless ha_event and do some cleanup

Jeffy Chen (1):
      scsi: scsi_devinfo: Add scsi_devinfo_tbl.c

Jitendra Bhivare (10):
      scsi: be2iscsi: Update driver version
      scsi: be2iscsi: Remove A-circumflex character in copyright marking
      scsi: be2iscsi: Fix misc static analysis errors
      scsi: be2iscsi: Add cmd to set host data
      scsi: be2iscsi: Modify IOCTL to fetch user configured IQN
      scsi: be2iscsi: Fix _get_initname buffer overflow
      scsi: be2iscsi: Fix _modify_eq_delay buffer overflow
      scsi: be2iscsi: Free msi_name and disable HW intr
      scsi: be2iscsi: Fix return value in mgmt_open_connection
      scsi: be2iscsi: Fix boot flags in sysfs

Kevin Barnett (2):
      scsi: smartpqi: cleanup raid map warning message
      scsi: smartpqi: update controller ids

Kurt Garloff (1):
      scsi: scsi_devinfo: Add REPORTLUN2 to EMC SYMMETRIX blacklist entry

Long Li (1):
      scsi: storvsc: Avoid excessive host scan on controller change

Martin K. Petersen (1):
      scsi: Clarify SCSI core module parameter documentation

Martin Wilck (2):
      scsi: hpsa: cleanup sas_phy structures in sysfs when unloading
      scsi: hpsa: destroy sas transport properties before scsi_host

Matthew R. Ochs (3):
      scsi: cxlflash: Derive pid through accessors
      scsi: cxlflash: Allow cards without WWPN VPD to configure
      scsi: cxlflash: Use derived maximum write same length

Meng Xu (1):
      scsi: mpt3sas: remove redundant copy_from_user in _ctl_getiocinfo

Petros Koutoupis (1):
      scsi: scsi_error: DID_SOFT_ERROR comment clean up

Randy Dunlap (2):
      scsi: update description of logging_level bits
      scsi: fix doc. typo for I2O

Scott Teel (1):
      scsi: hpsa: clear tmpdevice in scan thread

Shiju Jose (1):
      scsi: hisi_sas: use array for v2 hw AXI errors

Shivasharan S (19):
      scsi: megaraid_sas: driver version upgrade
      scsi: megaraid_sas: Add support for 64bit consistent DMA
      scsi: megaraid_sas: Do not limit queue_depth to 1k in non-RDPQ mode
      scsi: megaraid_sas: Retry with reduced queue depth when alloc fails for higher QD
      scsi: megaraid_sas: Incorrect processing of IOCTL frames for SMP/STP commands
      scsi: megaraid_sas: Resize MFA frame used for IOC INIT to 4k
      scsi: megaraid_sas: Update current host time to FW during IOC Init
      scsi: megaraid_sas: Move controller memory allocations and DMA mask settings from probe to megasas_init_fw
      scsi: megaraid_sas: Move initialization of instance parameters inside newly created function megasas_init_ctrl_params
      scsi: megaraid_sas: remove instance->ctrl_info
      scsi: megaraid_sas: Pre-allocate frequently used DMA buffers
      scsi: megaraid_sas: Create separate functions for allocating and freeing controller DMA buffers
      scsi: megaraid_sas: Create separate functions to allocate ctrl memory
      scsi: megaraid_sas: reduce size of fusion_context and use kmalloc for allocation
      scsi: megaraid_sas: replace is_ventura with adapter_type checks
      scsi: megaraid_sas: Remove redundant checks for ctrl_context
      scsi: megaraid_sas: replace instance->ctrl_context checks with instance->adapter_type
      scsi: megaraid_sas: Add support for Crusader controllers
      scsi: megaraid_sas: use adapter_type for all gen controllers

Sreekanth Reddy (10):
      scsi: mpt3sas: Bump mpt3sas driver version to v16.100.00.00
      scsi: mpt3sas: Adding support for SAS3616 HBA device
      scsi: mpt3sas: Fix possibility of using invalid Enclosure Handle for SAS device after host reset
      scsi: mpt3sas: Display chassis slot information of the drive
      scsi: mpt3sas: Updated MPI headers to v2.00.48
      scsi: mpt3sas: Fix IO error occurs on pulling out a drive from RAID1 volume created on two SATA drive
      scsi: mpt3sas: Fix removal and addition of vSES device during host reset
      scsi: mpt3sas: Reduce memory footprint in kdump kernel
      scsi: mpt3sas: Fixed memory leaks in driver
      scsi: mpt3sas: Processing of Cable Exception events

Suganath Prabu Subramani (13):
      scsi: mpt3sas: Update mpt3sas driver version.
      scsi: mpt3sas: Fix sparse warnings
      scsi: mpt3sas: Fix nvme drives checking for tlr.
      scsi: mpt3sas: NVMe drive support for BTDHMAPPING ioctl command and log info
      scsi: mpt3sas: Add-Task-management-debug-info-for-NVMe-drives.
      scsi: mpt3sas: scan and add nvme device after controller reset
      scsi: mpt3sas: Set NVMe device queue depth as 128
      scsi: mpt3sas: Handle NVMe PCIe device related events generated from firmware.
      scsi: mpt3sas: API's to remove nvme drive from sml
      scsi: mpt3sas: API 's to support NVMe drive addition to SML
      scsi: mpt3sas: Added support for nvme encapsulated request message.
      scsi: mpt3sas: SGL to PRP Translation for I/Os to NVMe devices
      scsi: mpt3sas: Add nvme device support in slave alloc, target alloc and probe

Thomas Meyer (2):
      scsi: qla2xxx: Cocci spatch "pool_zalloc-simple"
      scsi: lpfc: Cocci spatch "pool_zalloc-simple"

Varun Prakash (4):
      scsi: libcxgbi: simplify task->hdr allocation for mgmt cmds
      scsi: cxgb4i: fix Tx skb leak
      scsi: libcxgbi: in case of vlan pass 0 as ifindex to find route
      scsi: csiostor: enable PCIe relaxed ordering if supported

Vasyl Gomonovych (1):
      scsi: lpfc: fix kzalloc-simple.cocci warnings

Viswas G (9):
      scsi: pm80xx: corrected linkrate value.
      scsi: pm80xx: panic on ncq error cleaning up the read log.
      scsi: pm80xx: corrected SATA abort handling sequence.
      scsi: pm80xx: modified port reset timer value for PM8006 card
      scsi: pm80xx: cleanup in pm8001_abort_task function.
      scsi: pm80xx: tag allocation for phy control request.
      scsi: pm80xx: Different SAS addresses for phys.
      scsi: pm80xx: ILA and inactive firmware version through sysfs
      scsi: pm80xx: redefine sas_identify_frame structure

Xiang Chen (6):
      scsi: hisi_sas: fix a bug when free device for v3 hw
      scsi: hisi_sas: us start_phy in PHY_FUNC_LINK_RESET
      scsi: hisi_sas: fix SATA breakpoint memory size
      scsi: hisi_sas: grab hisi_hba.lock when processing slots
      scsi: hisi_sas: fix internal abort slot timeout bug
      scsi: hisi_sas: delete get_ncq_tag_v3_hw()

Xiaofei Tan (10):
      scsi: hisi_sas: add v3 hw port AXI error handling
      scsi: hisi_sas: add v3 hw support for AXI fatal error
      scsi: hisi_sas: complete all tasklets prior to host reset
      scsi: hisi_sas: add hisi_hba.rst_work init for v3 hw
      scsi: hisi_sas: add v3 hw DFX feature
      scsi: hisi_sas: init connect cfg register for v3 hw
      scsi: hisi_sas: check PHY state in get_wideport_bitmap_v3_hw()
      scsi: hisi_sas: fix the risk of freeing slot twice
      scsi: hisi_sas: fix NULL check in SMP abort task path
      scsi: hisi_sas: use spin_lock_irqsave() for hisi_hba.lock

Yisheng Xie (1):
      scsi: megaraid: Remove redundant code in megasas_alloc_cmds

Zang Leigang (2):
      scsi: ufs: add ufs a command complete time stamp
      scsi: ufs: fix a pclint warning

chenxiang (1):
      scsi: libsas: add event to defer list tail instead of head when draining

kehuanlin (1):
      scsi: ufs: fix wrong command type of UTRD for UFSHCI v2.1

weiping zhang (2):
      scsi: sd: change manage_start_stop to bool in sysfs interface
      scsi: sd: change allow_restart to bool in sysfs interface

And the diffstat:

Documentation/driver-api/scsi.rst | 2 +-
Documentation/scsi/scsi-parameters.txt | 13 +-
Documentation/scsi/smartpqi.txt | 2 +-
drivers/scsi/.gitignore | 1 +
drivers/scsi/Makefile | 8 +
drivers/scsi/NCR5380.c | 18 +-
drivers/scsi/aacraid/commsup.c | 26 +-
drivers/scsi/aic7xxx/aic7xxx_core.c | 2 +-
drivers/scsi/aic7xxx/aic7xxx_osm.c | 2 +-
drivers/scsi/aic94xx/aic94xx_hwi.c | 3 -
drivers/scsi/be2iscsi/be.h | 19 +-
drivers/scsi/be2iscsi/be_cmds.c | 55 +-
drivers/scsi/be2iscsi/be_cmds.h | 48 +-
drivers/scsi/be2iscsi/be_iscsi.c | 54 +-
drivers/scsi/be2iscsi/be_iscsi.h | 2 +-
drivers/scsi/be2iscsi/be_main.c | 114 +-
drivers/scsi/be2iscsi/be_main.h | 51 +-
drivers/scsi/be2iscsi/be_mgmt.c | 278 ++--
drivers/scsi/be2iscsi/be_mgmt.h | 10 +-
drivers/scsi/bfa/bfad_bsg.c | 7 -
drivers/scsi/bfa/bfad_debugfs.c | 5 +-
drivers/scsi/bnx2i/bnx2i_hwi.c | 10 -
drivers/scsi/csiostor/csio_hw.h | 3 +
drivers/scsi/csiostor/csio_init.c | 3 +
drivers/scsi/csiostor/csio_mb.c | 3 +
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 1 +
drivers/scsi/cxgbi/libcxgbi.c | 50 +-
drivers/scsi/cxgbi/libcxgbi.h | 1 -
drivers/scsi/cxlflash/main.c | 24 +-
drivers/scsi/cxlflash/main.h | 3 +-
drivers/scsi/cxlflash/sislite.h | 3 -
drivers/scsi/cxlflash/superpipe.c | 6 +-
drivers/scsi/cxlflash/vlun.c | 6 +-
drivers/scsi/device_handler/scsi_dh_alua.c | 10 +-
drivers/scsi/device_handler/scsi_dh_emc.c | 6 +-
drivers/scsi/device_handler/scsi_dh_hp_sw.c | 12 +-
drivers/scsi/device_handler/scsi_dh_rdac.c | 6 +-
drivers/scsi/fcoe/fcoe.c | 81 +-
drivers/scsi/hisi_sas/hisi_sas.h | 13 +-
drivers/scsi/hisi_sas/hisi_sas_main.c | 46 +-
drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 2 +-
drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 253 ++-
drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 257 ++-
drivers/scsi/hpsa.c | 356 +++-
drivers/scsi/hpsa_cmd.h | 3 +
drivers/scsi/libfc/fc_lport.c | 3 -
drivers/scsi/libsas/sas_dump.c | 10 -
drivers/scsi/libsas/sas_dump.h | 1 -
drivers/scsi/libsas/sas_event.c | 26 +-
drivers/scsi/libsas/sas_init.c | 12 -
drivers/scsi/lpfc/lpfc.h | 3 +
drivers/scsi/lpfc/lpfc_attr.c | 10 +-
drivers/scsi/lpfc/lpfc_bsg.c | 4 +-
drivers/scsi/lpfc/lpfc_debugfs.c | 9 +-
drivers/scsi/lpfc/lpfc_els.c | 19 +-
drivers/scsi/lpfc/lpfc_hbadisc.c | 8 +-
drivers/scsi/lpfc/lpfc_hw4.h | 2 +-
drivers/scsi/lpfc/lpfc_init.c | 30 +-
drivers/scsi/lpfc/lpfc_nportdisc.c | 2 +-
drivers/scsi/lpfc/lpfc_nvme.c | 174 +-
drivers/scsi/lpfc/lpfc_nvmet.c | 148 +-
drivers/scsi/lpfc/lpfc_sli.c | 232 ++-
drivers/scsi/lpfc/lpfc_sli4.h | 4 +-
drivers/scsi/lpfc/lpfc_version.h | 2 +-
drivers/scsi/lpfc/lpfc_vport.c | 9 +
drivers/scsi/megaraid/megaraid_sas.h | 64 +-
drivers/scsi/megaraid/megaraid_sas_base.c | 1025 +++++++-----
drivers/scsi/megaraid/megaraid_sas_fp.c | 20 +-
drivers/scsi/megaraid/megaraid_sas_fusion.c | 676 ++++++--
drivers/scsi/megaraid/megaraid_sas_fusion.h | 29 +-
drivers/scsi/mpt3sas/mpi/mpi2.h | 43 +-
drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 564 ++++++-
drivers/scsi/mpt3sas/mpi/mpi2_init.h | 11 +-
drivers/scsi/mpt3sas/mpi/mpi2_ioc.h | 282 +++-
drivers/scsi/mpt3sas/mpi/mpi2_pci.h | 111 ++
drivers/scsi/mpt3sas/mpi/mpi2_tool.h | 14 +-
drivers/scsi/mpt3sas/mpt3sas_base.c | 658 +++++++-
drivers/scsi/mpt3sas/mpt3sas_base.h | 177 +-
drivers/scsi/mpt3sas/mpt3sas_config.c | 100 ++
drivers/scsi/mpt3sas/mpt3sas_ctl.c | 164 +-
drivers/scsi/mpt3sas/mpt3sas_scsih.c | 2355 +++++++++++++++++++++++----
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c | 2 +-
drivers/scsi/nsp32.c | 2 +-
drivers/scsi/pm8001/pm8001_ctl.c | 54 +
drivers/scsi/pm8001/pm8001_hwi.c | 11 +-
drivers/scsi/pm8001/pm8001_init.c | 13 +-
drivers/scsi/pm8001/pm8001_sas.c | 124 +-
drivers/scsi/pm8001/pm8001_sas.h | 10 +
drivers/scsi/pm8001/pm80xx_hwi.c | 62 +-
drivers/scsi/pm8001/pm80xx_hwi.h | 102 +-
drivers/scsi/qedi/qedi_fw.c | 17 +-
drivers/scsi/qla2xxx/qla_bsg.c | 13 +-
drivers/scsi/qla2xxx/qla_def.h | 29 +
drivers/scsi/qla2xxx/qla_fw.h | 4 +-
drivers/scsi/qla2xxx/qla_gbl.h | 5 +
drivers/scsi/qla2xxx/qla_init.c | 140 +-
drivers/scsi/qla2xxx/qla_iocb.c | 195 ++-
drivers/scsi/qla2xxx/qla_isr.c | 73 +-
drivers/scsi/qla2xxx/qla_mbx.c | 132 +-
drivers/scsi/qla2xxx/qla_mid.c | 2 +-
drivers/scsi/qla2xxx/qla_mr.c | 3 +-
drivers/scsi/qla2xxx/qla_os.c | 40 +-
drivers/scsi/qla2xxx/qla_target.c | 12 +-
drivers/scsi/qla2xxx/qla_version.h | 2 +-
drivers/scsi/scsi_debug.c | 31 +-
drivers/scsi/scsi_devinfo.c | 72 +-
drivers/scsi/scsi_dh.c | 36 +-
drivers/scsi/scsi_error.c | 13 +-
drivers/scsi/scsi_lib.c | 9 +-
drivers/scsi/scsi_logging.h | 8 +-
drivers/scsi/scsi_priv.h | 4 +-
drivers/scsi/scsi_scan.c | 1 +
drivers/scsi/scsi_sysfs.c | 45 +-
drivers/scsi/scsi_transport_fc.c | 2 +
drivers/scsi/scsi_transport_iscsi.c | 2 +-
drivers/scsi/scsi_transport_sas.c | 2 +-
drivers/scsi/sd.c | 32 +-
drivers/scsi/sd_zbc.c | 169 +-
drivers/scsi/smartpqi/smartpqi_init.c | 18 +-
drivers/scsi/storvsc_drv.c | 52 +-
drivers/scsi/ufs/tc-dwc-g210.c | 10 +-
drivers/scsi/ufs/ufs-qcom.c | 4 +-
drivers/scsi/ufs/ufs-qcom.h | 7 +-
drivers/scsi/ufs/ufshcd.c | 40 +-
drivers/scsi/ufs/ufshcd.h | 16 +-
drivers/scsi/ufs/ufshci.h | 70 +-
include/scsi/libsas.h | 56 +-
include/scsi/scsi_device.h | 3 +-
include/scsi/scsi_devinfo.h | 76 +-
include/scsi/scsi_proto.h | 45 +-
include/scsi/scsi_transport_fc.h | 2 +
131 files changed, 8278 insertions(+), 2473 deletions(-)
create mode 100644 drivers/scsi/mpt3sas/mpi/mpi2_pci.h


 \ /
  Last update: 2017-11-14 17:37    [W:0.099 / U:1.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site