Linux Contributions

Here's a partial list of some of the kernel commits I've written, contributed to, or signed off on.

1a9357f nfsd: avoid undefined signed overflow
d751f74 NFS: Reduce stack use in encode_exchange_id()
10bd295 fix page number calculation bug for block layout decode buffer
d36b7cf pnfs: clean up initiate_file_draining layout lookup
92407e7 nfs4: serialize layoutcommit
7542274 pnfsblock: fix writeback deadlock
e6d05a7 pnfsblock: fix NULL pointer dereference
9b7eecd pnfs: recoalesce when ld read pagelist fails
8ce160c pnfs: recoalesce when ld write pagelist fails
1b0ae06 pnfs: make _set_lo_fail generic
760383f pnfsblock: add missing rpc_put_mount and path_put
c122515 SUNRPC/NFS: make rpc pipe upcall generic
fdc17ab pnfsblock: fix size of upcall message
516f2e2 pnfsblock: fix return code confusion
8e82fa8 nfsd: prettify NFSD_MAY_* flag definitions
71cdd40 pnfsblock: write_pagelist handle zero invalid extents
31e6306 pnfsblock: note written INVAL areas for layoutcommit
650e2d3 pnfsblock: bl_write_pagelist
9549ec0 pnfsblock: bl_read_pagelist
b2be781 pnfsblock: cleanup_layoutcommit
90ace12 pnfsblock: encode_layoutcommit
9f37704 pnfsblock: merge rw extents
c1c2a4c pnfsblock: add extent manipulation functions
6d742ba pnfsblock: bl_find_get_extent
e9437cc pnfsblock: xdr decode pnfs_block_layout4
2f9fd18 pnfsblock: call and parse getdevicelist
03341d2 pnfsblock: merge extents
a60d2eb pnfsblock: lseg alloc and free
025a70e pnfsblock: remove device operations
fe0a9b7 pnfsblock: add device operations
9e69296 pnfsblock: basic extent code
e9643fe pnfsblock: use pageio_ops api
155e752 pnfsblock: add blocklayout Kconfig option, Makefile, and stubs
db29c08 pnfs: cleanup_layoutcommit
dae100c pnfs: ask for layout_blksize and save it in nfs_server
738fd0f3 pnfs: add set-clear layoutdriver interface
7f11d8d pnfs: GETDEVICELIST
3557c6c pnfs: use lwb as layoutcommit length
a9bae56 pnfs: let layoutcommit handle a list of lseg
9fa4075 pnfs: save layoutcommit cred at layout header init
acff5880 pnfs: save layoutcommit lwb at layout header
3b6445a NFSv4.1: fix typo in filelayout_check_layout
9660439 svcrpc: take advantage of tcp autotuning
7f42183 nfsd: Revert "svcrpc: take advantage of tcp autotuning"
47a14ef svcrpc: take advantage of tcp autotuning

Here is a fix I'm using now to prevent Xorg from crashing on my x220.

commit 8db8e8a4919e0ab9e9d8aff0805b1a3cec0bf565
Author: Jim Rees 
Date:   Sat Nov 19 14:13:20 2016 -0500

    fix for https://bugs.freedesktop.org/show_bug.cgi?id=96781
    patch adapted from https://bugs.freedesktop.org/show_bug.cgi?id=97529
    reverts ea0000f0d369a59c2086fe9c489e0a2a86e080ba

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index e26f889..a0cf80f 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13869,8 +13869,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
 		WARN_ON(ret);
 	}
 
-	drm_atomic_helper_wait_for_dependencies(state);
-
 	if (intel_state->modeset) {
 		memcpy(dev_priv->min_pixclk, intel_state->min_pixclk,
 		       sizeof(intel_state->min_pixclk));
@@ -13993,8 +13991,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
 	if (intel_state->modeset && intel_can_enable_sagv(state))
 		intel_enable_sagv(dev_priv);
 
-	drm_atomic_helper_commit_hw_done(state);
-
 	if (intel_state->modeset)
 		intel_display_power_put(dev_priv, POWER_DOMAIN_MODESET);
 
@@ -14002,8 +13998,6 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
 	drm_atomic_helper_cleanup_planes(dev, state);
 	mutex_unlock(&dev->struct_mutex);
 
-	drm_atomic_helper_commit_cleanup_done(state);
-
 	drm_atomic_state_free(state);
 
 	/* As one of the primary mmio accessors, KMS has a high likelihood
@@ -14076,10 +14070,6 @@ static int intel_atomic_commit(struct drm_device *dev,
 		return -EINVAL;
 	}
 
-	ret = drm_atomic_helper_setup_commit(state, nonblock);
-	if (ret)
-		return ret;
-
 	INIT_WORK(&state->commit_work, intel_atomic_commit_work);
 
 	ret = intel_atomic_prepare_commit(dev, state, nonblock);

Jim Rees