intel_setup_gmbus registers the i2c adapters, which does transfers on the i2c bus on probe, and this happens before intel_power_domains_init which initializes the power domain lock.
The bisect and backtrace make sense and are not mysterious at all.
Not sure of the fix though, are we better off changing the init order, or making sure the probes don't happen or don't screw us up.
So I started wondering why we are not seeing this. To reproduce, looks like you'll need to have an i2c driver with class I2C_CLASS_DDC for the i2c detect (and the bug) to happen. In tree, the only ones seem to be
drivers/misc/eeprom/eeprom.c
Yes, I have that for DIMM SPD information access.
drivers/staging/olpc_dcon/olpc_dcon.c
I presume you have one or the other.
No matter what, userspace can access the adapter right away when we register it, so this needs to be fixed along the lines of [1].
BR, Jani.
[1] http://patchwork.freedesktop.org/patch/msgid/1452157856-27360-1-git-send-ema...