CentOS7.2 plusのターゲットドライバまわりがおかしい?

サマリ

http://vault.centos.org/7.2.1511/centosplus/Source/SPackages/kernel-plus-3.10.0-327.3.1.el7.centos.plus.src.rpm で、TCM_QLA2XX=mにするとビルドできない。drivers以下のソースで、transport_init_session()の使い方が新旧まざっているせい(だと思う)。

ビルド環境

KVM上のCentOS 7.2でビルド。

% cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
% uname -a
Linux centos-kvm 3.10.0-327.3.1.el7.x86_64 #1 SMP Wed Dec 9 14:09:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ビルド手順

% rpm -ivh kernel-plus-3.10.0-327.3.1.el7.centos.plus.src.rpm 
% cd ~/rpmbuild/
% rpmbuild -bp SPECS/kernel-plus.spec
% cd BUILD/kernel-3.10.0-327.3.1.el7/linux-3.10.0-327.3.1.el7.centos.plus.x86_64
% mv .config config.orig
% cp /boot/config-3.10.0-327.3.1.el7.x86_64 .config
% make menuconfig # TCM_QLA2XXXをmにする
% cp .config ~/rpmbuild/SOURCES/kernel-3.10.0-x86_64.config
% rpmbuild -bb SPECS/kernel-plus.spec

エラーメッセージ抜粋

今回はtransport_init_sessionのところに注目。

 drivers/scsi/qla2xxx/tcm_qla2xxx.c: In function 'tcm_qla2xxx_check_initiator_node_acl':
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1421:2: error: too few arguments to function 'transport_init_session'
   se_sess = transport_init_session();
   ^
 In file included from drivers/scsi/qla2xxx/tcm_qla2xxx.c:47:0:
 include/target/target_core_fabric.h:87:20: note: declared here
  struct se_session *transport_init_session(enum target_prot_op);
                     ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c: At top level:
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1757:2: error: initialization from incompatible pointer type [-Werror]
   .queue_tm_rsp   = tcm_qla2xxx_queue_tm_rsp,
   ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1757:2: error: (near initialization for 'tcm_qla2xxx_ops.queue_tm_rsp') [-Werror]
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1804:2: error: initialization from incompatible pointer type [-Werror]
   .queue_tm_rsp   = tcm_qla2xxx_queue_tm_rsp,
   ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1804:2: error: (near initialization for 'tcm_qla2xxx_npiv_ops.queue_tm_rsp') [-Werror]
 drivers/scsi/qla2xxx/tcm_qla2xxx.c: In function 'tcm_qla2xxx_register_configfs':
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1844:2: error: implicit declaration of function 'TF_CIT_TMPL' [-Werror=implicit-function-declaration]
   TF_CIT_TMPL(fabric)->tfc_wwn_cit.ct_attrs = tcm_qla2xxx_wwn_attrs;
   ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1844:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_wwn_cit.ct_attrs = tcm_qla2xxx_wwn_attrs;
 
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1845:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_base_cit.ct_attrs = tcm_qla2xxx_tpg_attrs;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1846:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_attrib_cit.ct_attrs =
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1848:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_param_cit.ct_attrs = NULL;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1849:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_np_base_cit.ct_attrs = NULL;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1850:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_nacl_base_cit.ct_attrs = NULL;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1851:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_nacl_attrib_cit.ct_attrs = NULL;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1852:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_nacl_auth_cit.ct_attrs = NULL;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1853:21: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(fabric)->tfc_tpg_nacl_param_cit.ct_attrs = NULL;
                      ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1884:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_wwn_cit.ct_attrs = tcm_qla2xxx_wwn_attrs;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1885:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_base_cit.ct_attrs = NULL;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1886:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_attrib_cit.ct_attrs = NULL;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1887:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_param_cit.ct_attrs = NULL;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1888:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_np_base_cit.ct_attrs = NULL;
 
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1889:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_base_cit.ct_attrs = NULL;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1890:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_attrib_cit.ct_attrs = NULL;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1891:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_auth_cit.ct_attrs = NULL;
                           ^
 drivers/scsi/qla2xxx/tcm_qla2xxx.c:1892:26: error: invalid type argument of '->' (have 'int')
   TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_param_cit.ct_attrs = NULL;

drivers/scsi/qla2xxx/tcm_qla2xxx.c:1853:21: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(fabric)->tfc_tpg_nacl_param_cit.ct_attrs = NULL;
                     ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1884:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_wwn_cit.ct_attrs = tcm_qla2xxx_wwn_attrs;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1885:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_base_cit.ct_attrs = NULL;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1886:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_attrib_cit.ct_attrs = NULL;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1887:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_param_cit.ct_attrs = NULL;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1888:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_np_base_cit.ct_attrs = NULL;

drivers/scsi/qla2xxx/tcm_qla2xxx.c:1889:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_base_cit.ct_attrs = NULL;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1890:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_attrib_cit.ct_attrs = NULL;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1891:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_auth_cit.ct_attrs = NULL;
                          ^
drivers/scsi/qla2xxx/tcm_qla2xxx.c:1892:26: error: invalid type argument of '->' (have 'int')
  TF_CIT_TMPL(npiv_fabric)->tfc_tpg_nacl_param_cit.ct_attrs = NULL;

そもそもtransport_init_sessionの何が問題か?

Kernel 3.14までは、transport_init_sessionは引数なしでコールできる。

// http://lxr.free-electrons.com/source/drivers/target/target_core_transport.c?v=3.14より

struct se_session *transport_init_session(void)
{
        struct se_session *se_sess;

        se_sess = kmem_cache_zalloc(se_sess_cache, GFP_KERNEL);
        if (!se_sess) {
                pr_err("Unable to allocate struct se_session from"
                                " se_sess_cache\n");

Kernel 3.15で、引数を取るようになった。

// http://lxr.free-electrons.com/source/drivers/target/target_core_transport.c?v=3.15 より

struct se_session *transport_init_session(enum target_prot_op sup_prot_ops)
{
        struct se_session *se_sess;

        se_sess = kmem_cache_zalloc(se_sess_cache, GFP_KERNEL);
        if (!se_sess) {
                pr_err("Unable to allocate struct se_session from"
                                " se_sess_cache\n");

で、transport_init_sessionでgrepかけてみると、使い方が新旧入り交じっていることがわかる。 ちなみに、transport_init_sessionの本体は新しいほうで定義されているので、 新しいほうに合わせるのが筋なんだろうか・・・でもKernel 3.10ベースだよね・・・?

include/target/target_core_fabric.h
87:struct se_session *transport_init_session(enum target_prot_op);
90:struct se_session *transport_init_session_tags(unsigned int, unsigned int,

drivers/infiniband/ulp/srpt/ib_srpt.c
2596:   ch->sess = transport_init_session(TARGET_PROT_NORMAL);

drivers/scsi/qla2xxx/tcm_qla2xxx.c
1421:   se_sess = transport_init_session();

drivers/target/loopback/tcm_loop.c
979:    tl_nexus->se_sess = transport_init_session(TARGET_PROT_ALL);

drivers/target/sbp/sbp_target.c
213:    sess->se_sess = transport_init_session(TARGET_PROT_NORMAL);

drivers/target/target_core_transport.c
242:struct se_session *transport_init_session(enum target_prot_op sup_prot_ops)
262:EXPORT_SYMBOL(transport_init_session);
295:struct se_session *transport_init_session_tags(unsigned int tag_num,
302:    se_sess = transport_init_session(sup_prot_ops);
314:EXPORT_SYMBOL(transport_init_session_tags);

drivers/target/tcm_fc/tfc_sess.c
214:    sess->se_sess = transport_init_session_tags(TCM_FC_DEFAULT_TAGS,

drivers/target/iscsi/iscsi_target_login.c
346:    sess->se_sess = transport_init_session(TARGET_PROT_NORMAL);

drivers/usb/gadget/tcm_usb_gadget.c
1730:   tv_nexus->tvn_se_sess = transport_init_session();

drivers/vhost/scsi.c
1659:   tv_nexus->tvn_se_sess = transport_init_session();

configファイルのdiff

長いしコマンド引数の順番間違えた・・・

--- .config 2015-12-23 21:43:13.336000000 +0900
+++ config.orig 2015-12-23 21:42:08.274000000 +0900
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/x86 3.10.0 Kernel Configuration
+# Linux/x86_64 3.10.0 Kernel Configuration
 #
 CONFIG_64BIT=y
 CONFIG_X86_64=y
@@ -362,7 +362,7 @@
 CONFIG_X86_X2APIC=y
 CONFIG_X86_MPPARSE=y
 CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_NUMACHIP is not set
+CONFIG_X86_NUMACHIP=y
 # CONFIG_X86_VSMP is not set 
 CONFIG_X86_UV=y
 CONFIG_X86_INTEL_LPSS=y
@@ -1299,6 +1299,7 @@
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
 CONFIG_BT_ATH3K=m
+# CONFIG_BT_WILINK is not set
 # CONFIG_AF_RXRPC is not set 
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
@@ -1332,7 +1333,11 @@
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
-# CONFIG_NET_9P is not set
+# CONFIG_RFKILL_GPIO is not set
+CONFIG_NET_9P=m
+CONFIG_NET_9P_VIRTIO=m
+# CONFIG_NET_9P_RDMA is not set
+# CONFIG_NET_9P_DEBUG is not set
 # CONFIG_CAIF is not set 
 CONFIG_CEPH_LIB=m
 # CONFIG_CEPH_LIB_PRETTYDEBUG is not set 
@@ -1540,6 +1545,7 @@
 #
 # Texas Instruments shared transport line discipline
 #
+CONFIG_TI_ST=m
 CONFIG_SENSORS_LIS3_I2C=m
 
 #
@@ -1609,7 +1615,12 @@
 CONFIG_SCSI_3W_SAS=m
 # CONFIG_SCSI_ACARD is not set 
 CONFIG_SCSI_AACRAID=m
-# CONFIG_SCSI_AIC7XXX is not set
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
+CONFIG_AIC7XXX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
 # CONFIG_SCSI_AIC7XXX_OLD is not set 
 CONFIG_SCSI_AIC79XX=m
 CONFIG_AIC79XX_CMDS_PER_DEVICE=4
@@ -1638,7 +1649,7 @@
 CONFIG_SCSI_UFSHCD_PCI=m
 # CONFIG_SCSI_UFSHCD_PLATFORM is not set 
 CONFIG_SCSI_HPTIOP=m
-# CONFIG_SCSI_BUSLOGIC is not set
+CONFIG_SCSI_BUSLOGIC=m
 CONFIG_VMWARE_PVSCSI=m
 CONFIG_HYPERV_STORAGE=m
 CONFIG_LIBFC=m
@@ -1660,7 +1671,7 @@
 # CONFIG_SCSI_IPR is not set 
 # CONFIG_SCSI_QLOGIC_1280 is not set 
 CONFIG_SCSI_QLA_FC=m
-CONFIG_TCM_QLA2XXX=m
+# CONFIG_TCM_QLA2XXX is not set
 CONFIG_SCSI_QLA_ISCSI=m
 CONFIG_SCSI_LPFC=m
 # CONFIG_SCSI_LPFC_DEBUG_FS is not set
@@ -1896,7 +1907,9 @@
 # CONFIG_NET_DSA_MV88E6123_61_65 is not set
 CONFIG_ETHERNET=y
 CONFIG_MDIO=m
-# CONFIG_NET_VENDOR_3COM is not set
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_VORTEX=m
+CONFIG_TYPHOON=m
 # CONFIG_NET_VENDOR_ADAPTEC is not set
 # CONFIG_NET_VENDOR_ALTEON is not set
 # CONFIG_NET_VENDOR_AMD is not set
@@ -1952,14 +1965,14 @@
 # CONFIG_NET_VENDOR_EXAR is not set
 # CONFIG_NET_VENDOR_HP is not set
 CONFIG_NET_VENDOR_INTEL=y
-# CONFIG_E100 is not set
+CONFIG_E100=m
 CONFIG_E1000=m
 CONFIG_E1000E=m
 CONFIG_IGB=m
 CONFIG_IGB_HWMON=y
 CONFIG_IGB_DCA=y
 CONFIG_IGBVF=m
-# CONFIG_IXGB is not set
+CONFIG_IXGB=m
 CONFIG_IXGBE=m
 CONFIG_IXGBE_HWMON=y
 CONFIG_IXGBE_DCA=y
@@ -1996,13 +2009,14 @@
 CONFIG_MYRI10GE_DCA=y
 # CONFIG_FEALNX is not set
 # CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_NVIDIA is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
 CONFIG_NET_VENDOR_OKI=y
 CONFIG_PCH_GBE=m
 CONFIG_ETHOC=m
 CONFIG_NET_PACKET_ENGINE=y
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
 CONFIG_NET_VENDOR_QLOGIC=y
 CONFIG_QLA3XXX=m
 CONFIG_QLCNIC=m
@@ -2038,7 +2052,9 @@
 # CONFIG_NET_VENDOR_TEHUTI is not set
 CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-# CONFIG_NET_VENDOR_VIA is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_RHINE is not set
+CONFIG_VIA_VELOCITY=m
 # CONFIG_NET_VENDOR_WIZNET is not set
 # CONFIG_FDDI is not set
 # CONFIG_HIPPI is not set
@@ -2067,6 +2083,7 @@
 CONFIG_MICREL_PHY=m
 CONFIG_FIXED_PHY=y
 CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_GPIO is not set
 # CONFIG_PLIP is not set
 CONFIG_PPP=m
 CONFIG_PPP_BSDCOMP=m
@@ -2439,8 +2456,11 @@
 # CONFIG_KEYBOARD_QT1070 is not set
 # CONFIG_KEYBOARD_QT2160 is not set
 # CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
 # CONFIG_KEYBOARD_TCA6416 is not set
 # CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
 # CONFIG_KEYBOARD_LM8323 is not set
 # CONFIG_KEYBOARD_LM8333 is not set
 # CONFIG_KEYBOARD_MAX7359 is not set
@@ -2468,6 +2488,7 @@
 CONFIG_MOUSE_BCM5974=m
 CONFIG_MOUSE_CYAPA=m
 CONFIG_MOUSE_VSXXXAA=m
+# CONFIG_MOUSE_GPIO is not set
 CONFIG_MOUSE_SYNAPTICS_I2C=m
 CONFIG_MOUSE_SYNAPTICS_USB=m
 # CONFIG_INPUT_JOYSTICK is not set
@@ -2481,7 +2502,9 @@
 CONFIG_INPUT_TOUCHSCREEN=y
 # CONFIG_TOUCHSCREEN_AD7879 is not set
 # CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
 # CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
 # CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
 # CONFIG_TOUCHSCREEN_DYNAPRO is not set
 # CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
@@ -2518,6 +2541,8 @@
 # CONFIG_INPUT_MMA8450 is not set
 # CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_APANEL=m
+# CONFIG_INPUT_GP2A is not set
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
 CONFIG_INPUT_ATLAS_BTNS=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
@@ -2527,6 +2552,7 @@
 CONFIG_INPUT_CM109=m
 CONFIG_INPUT_UINPUT=m
 # CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
 # CONFIG_INPUT_ADXL34X is not set
 # CONFIG_INPUT_IMS_PCU is not set
 # CONFIG_INPUT_CMA3000 is not set
@@ -2660,6 +2686,7 @@
 CONFIG_TCG_NSC=m
 CONFIG_TCG_ATMEL=m
 CONFIG_TCG_INFINEON=m
+# CONFIG_TCG_TIS_I2C_ST33 is not set
 # CONFIG_TCG_XEN is not set
 CONFIG_TCG_CRB=m
 CONFIG_TELCLOCK=m
@@ -2669,7 +2696,14 @@
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
-# CONFIG_I2C_MUX is not set
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
 CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
@@ -2708,10 +2742,12 @@
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+# CONFIG_I2C_CBUS_GPIO is not set
 CONFIG_I2C_DESIGNWARE_CORE=m
 # CONFIG_I2C_DESIGNWARE_PCI is not set
 # CONFIG_I2C_EG20T is not set
+# CONFIG_I2C_GPIO is not set
 # CONFIG_I2C_INTEL_MID is not set
 # CONFIG_I2C_OCORES is not set
 CONFIG_I2C_PCA_PLATFORM=m
@@ -2770,7 +2806,57 @@
 CONFIG_PTP_1588_CLOCK_PCH=m
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
 CONFIG_GPIO_DEVRES=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_ACPI=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_TS5500 is not set
+# CONFIG_GPIO_SCH is not set
+CONFIG_GPIO_ICH=m
+# CONFIG_GPIO_VX855 is not set
+# CONFIG_GPIO_LYNXPOINT is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_AMD8111 is not set
+# CONFIG_GPIO_LANGWELL is not set
+# CONFIG_GPIO_PCH is not set
+# CONFIG_GPIO_ML_IOH is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MCP23S08 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+
+#
+# USB GPIO expanders:
+#
+# CONFIG_GPIO_VIPERBOARD is not set
 # CONFIG_W1 is not set
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -2785,6 +2871,7 @@
 # CONFIG_BATTERY_MAX17042 is not set
 # CONFIG_CHARGER_MAX8903 is not set
 # CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
 # CONFIG_CHARGER_BQ2415X is not set
 CONFIG_CHARGER_SMB347=m
 # CONFIG_BATTERY_GOLDFISH is not set
@@ -2831,6 +2918,7 @@

 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+# CONFIG_SENSORS_GPIO_FAN is not set
 # CONFIG_SENSORS_HIH6130 is not set
 CONFIG_SENSORS_CORETEMP=m
 CONFIG_SENSORS_IBMAEM=m
@@ -2882,6 +2970,7 @@
 CONFIG_SENSORS_UCD9000=m
 CONFIG_SENSORS_UCD9200=m
 CONFIG_SENSORS_ZL6100=m
+# CONFIG_SENSORS_SHT15 is not set
 CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
 # CONFIG_SENSORS_SMM665 is not set
@@ -3007,6 +3096,7 @@
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+# CONFIG_SSB_DRIVER_GPIO is not set
 CONFIG_BCMA_POSSIBLE=y

 #
@@ -3018,6 +3108,7 @@
 # CONFIG_BCMA_HOST_SOC is not set
 CONFIG_BCMA_DRIVER_PCI=y
 CONFIG_BCMA_DRIVER_GMAC_CMN=y
+# CONFIG_BCMA_DRIVER_GPIO is not set
 # CONFIG_BCMA_DEBUG is not set

 #
@@ -3034,18 +3125,23 @@
 CONFIG_MFD_VIPERBOARD=m
 # CONFIG_MFD_RETU is not set
 # CONFIG_MFD_PCF50633 is not set
+# CONFIG_UCB1400_CORE is not set
 # CONFIG_MFD_RDC321X is not set
 CONFIG_MFD_RTSX_PCI=m
 # CONFIG_MFD_SI476X_CORE is not set
 CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
 # CONFIG_ABX500_CORE is not set
 # CONFIG_MFD_SYSCON is not set
 # CONFIG_MFD_TI_AM335X_TSCADC is not set
 # CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
 # CONFIG_TPS6507X is not set
 # CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TPS65912 is not set
 # CONFIG_MFD_WL1273_CORE is not set
 # CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TIMBERDALE is not set
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_VX855=m
 # CONFIG_MFD_ARIZONA_I2C is not set
@@ -3699,7 +3795,7 @@
 # CONFIG_FB_UDL is not set
 # CONFIG_FB_GOLDFISH is not set
 # CONFIG_FB_VIRTUAL is not set
-# CONFIG_XEN_FBDEV_FRONTEND is not set
+CONFIG_XEN_FBDEV_FRONTEND=m
 # CONFIG_FB_METRONOME is not set
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
@@ -4251,7 +4347,9 @@
 #
 CONFIG_LEDS_LM3530=m
 # CONFIG_LEDS_LM3642 is not set
-# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
 CONFIG_LEDS_LP55XX_COMMON=m
 CONFIG_LEDS_LP5521=m
@@ -4262,7 +4360,9 @@
 # CONFIG_LEDS_PCA9633 is not set
 # CONFIG_LEDS_BD2802 is not set
 CONFIG_LEDS_INTEL_SS4200=m
+# CONFIG_LEDS_LT3593 is not set
 CONFIG_LEDS_DELL_NETBOOKS=m
+# CONFIG_LEDS_RENESAS_TPU is not set
 # CONFIG_LEDS_TCA6507 is not set
 # CONFIG_LEDS_LM355x is not set
 # CONFIG_LEDS_OT200 is not set
@@ -4277,6 +4377,7 @@
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 # CONFIG_LEDS_TRIGGER_CPU is not set
+# CONFIG_LEDS_TRIGGER_GPIO is not set
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m

 #
@@ -4504,7 +4605,8 @@
 # CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
 # CONFIG_IDE_PHISON is not set
-# CONFIG_LINE6_USB is not set
+CONFIG_LINE6_USB=m
+CONFIG_LINE6_USB_IMPULSE_RESPONSE=y
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
@@ -4525,6 +4627,7 @@
 # Speakup console speech
 #
 # CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
 # CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
 # CONFIG_STAGING_MEDIA is not set

@@ -4684,8 +4787,17 @@
 CONFIG_JBD2=m
 # CONFIG_JBD2_DEBUG is not set
 CONFIG_FS_MBCACHE=m
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+# CONFIG_JFS_POSIX_ACL is not set
+# CONFIG_JFS_SECURITY is not set
+# CONFIG_JFS_DEBUG is not set
+# CONFIG_JFS_STATISTICS is not set
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
@@ -4774,7 +4886,8 @@
 CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
+CONFIG_ECRYPT_FS=m
+# CONFIG_ECRYPT_FS_MESSAGING is not set
 # CONFIG_HFS_FS is not set
 # CONFIG_HFSPLUS_FS is not set
 # CONFIG_BEFS_FS is not set
@@ -4866,6 +4979,9 @@
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
+CONFIG_9P_FS=m
+# CONFIG_9P_FSCACHE is not set
+# CONFIG_9P_FS_POSIX_ACL is not set
 CONFIG_NLS=y
 CONFIG_NLS_DEFAULT="utf8"
 CONFIG_NLS_CODEPAGE_437=y
@@ -5117,7 +5233,7 @@
 CONFIG_SECURITYFS=y
 CONFIG_SECURITY_NETWORK=y
 CONFIG_SECURITY_NETWORK_XFRM=y
-# CONFIG_SECURITY_PATH is not set
+CONFIG_SECURITY_PATH=y
 CONFIG_SECURITY_SECURELEVEL=y
 CONFIG_INTEL_TXT=y
 CONFIG_LSM_MMAP_MIN_ADDR=65535
@@ -5130,7 +5246,12 @@
 CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
 # CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
 # CONFIG_SECURITY_SMACK is not set
-# CONFIG_SECURITY_TOMOYO is not set
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
+CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
+# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
+CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
+CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/usr/lib/systemd/systemd"
 # CONFIG_SECURITY_APPARMOR is not set
 # CONFIG_SECURITY_YAMA is not set
 CONFIG_INTEGRITY=y
@@ -5145,6 +5266,7 @@
 CONFIG_EVM=y
 CONFIG_EVM_HMAC_VERSION=2
 CONFIG_DEFAULT_SECURITY_SELINUX=y
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
 # CONFIG_DEFAULT_SECURITY_DAC is not set
 CONFIG_DEFAULT_SECURITY="selinux"
 CONFIG_XOR_BLOCKS=m
@@ -5386,7 +5508,6 @@
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
 CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
 CONFIG_INTERVAL_TREE=y
 CONFIG_ASSOCIATIVE_ARRAY=y
 CONFIG_HAS_IOMEM=y