Proxmox 5 modinfo mpt3sas LSI 9207-8i

jengdesign

New Member
Aug 28, 2017
4
0
1
40
I'm setting up a Ceph array using Proxmox.

I have LSI 9207-8i installed.

modinfo mpt3sas states version 14.101.00.00

SAS 9207-8i Host Bus Adapter

The driver versions listed say 20.00.04.00-1.

Is there a way to update Proxmox to latest drivers? I'm relatively new to the Proxmox/Ceph scene, go easy on me.
 

whitey

Moderator
Jun 30, 2014
2,770
865
113
37
That's a fairly current and solid release of the LSI 2008/2118 firmware, there is a later version .07 but if proxmox is happy with it I would say leave it be. Else there are a ton of guides around here covering in depth how to upgrade/flash LSI HBA's. If you run into trouble PM me as I have quite a bit of experience w/ this process and threads hanging around here. Been in a HBA lull since my LSI 9341-8i but I am sure I can dust off the notes/binaries.
 
  • Like
Reactions: gigatexal

whitey

Moderator
Jun 30, 2014
2,770
865
113
37
Shouldn't the driver for 92xx be mp2sas?

Sent from my Nexus 6 using Tapatalk
That's right, I glossed right over that, hoping it was a typo, think the LSI 9207 was 2118 though right? Essentialy the same thing :-D wink wink

/yeah listen to @nthu9280, he knows his HBA's just as good or better than I these days/
 

jengdesign

New Member
Aug 28, 2017
4
0
1
40
Sorry for the confusion. I'm looking for the driver, not the firmware.

The firmware on my card is 20.00.02.00.

The driver in Proxmox is version 14.101.00.00 see below.

LSI has 20.00.04.00-1 listed on their site. I'm trying to figure out how to update it in Proxmox.

Code:
root@pve8:/usr/src# modinfo mpt2sas
filename:       /lib/modules/4.10.17-2-pve/kernel/drivers/scsi/mpt3sas/mpt3sas.ko
alias:          mpt2sas
version:        14.101.00.00
license:        GPL
description:    LSI MPT Fusion SAS 3.0 Device Driver
author:         Avago Technologies <MPT-FusionLinux.pdl@avagotech.com>
srcversion:     C0FF8A0FB48EE026A4192E5
alias:          pci:v00001000d000000ACsv*sd*bc*sc*i*
alias:          pci:v00001000d000000ABsv*sd*bc*sc*i*
alias:          pci:v00001000d000000AAsv*sd*bc*sc*i*
alias:          pci:v00001000d000000AFsv*sd*bc*sc*i*
alias:          pci:v00001000d000000AEsv*sd*bc*sc*i*
alias:          pci:v00001000d000000ADsv*sd*bc*sc*i*
alias:          pci:v00001000d000000C3sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C2sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C1sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C0sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C8sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C7sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C6sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C5sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C4sv*sd*bc*sc*i*
alias:          pci:v00001000d000000C9sv*sd*bc*sc*i*
alias:          pci:v00001000d00000095sv*sd*bc*sc*i*
alias:          pci:v00001000d00000094sv*sd*bc*sc*i*
alias:          pci:v00001000d00000091sv*sd*bc*sc*i*
alias:          pci:v00001000d00000090sv*sd*bc*sc*i*
alias:          pci:v00001000d00000097sv*sd*bc*sc*i*
alias:          pci:v00001000d00000096sv*sd*bc*sc*i*
alias:          pci:v00001000d0000007Esv*sd*bc*sc*i*
alias:          pci:v00001000d0000006Esv*sd*bc*sc*i*
alias:          pci:v00001000d00000087sv*sd*bc*sc*i*
alias:          pci:v00001000d00000086sv*sd*bc*sc*i*
alias:          pci:v00001000d00000085sv*sd*bc*sc*i*
alias:          pci:v00001000d00000084sv*sd*bc*sc*i*
alias:          pci:v00001000d00000083sv*sd*bc*sc*i*
alias:          pci:v00001000d00000082sv*sd*bc*sc*i*
alias:          pci:v00001000d00000081sv*sd*bc*sc*i*
alias:          pci:v00001000d00000080sv*sd*bc*sc*i*
alias:          pci:v00001000d00000065sv*sd*bc*sc*i*
alias:          pci:v00001000d00000064sv*sd*bc*sc*i*
alias:          pci:v00001000d00000077sv*sd*bc*sc*i*
alias:          pci:v00001000d00000076sv*sd*bc*sc*i*
alias:          pci:v00001000d00000074sv*sd*bc*sc*i*
alias:          pci:v00001000d00000072sv*sd*bc*sc*i*
alias:          pci:v00001000d00000070sv*sd*bc*sc*i*
depends:        scsi_transport_sas,raid_class
intree:         Y
vermagic:       4.10.17-2-pve SMP mod_unload modversions
parm:           logging_level: bits for enabling additional logging info (default=0)
parm:           max_sectors:max sectors, range 64 to 32767  default=32767 (ushort)
parm:           missing_delay: device missing delay , io missing delay (array of int)
parm:           max_lun: max lun, default=16895  (ullong)
parm:           hbas_to_enumerate: 0 - enumerates both SAS 2.0 & SAS 3.0 generation HBAs
           1 - enumerates only SAS 2.0 generation HBAs
           2 - enumerates only SAS 3.0 generation HBAs (default=0) (ushort)
parm:           diag_buffer_enable: post diag buffers (TRACE=1/SNAPSHOT=2/EXTENDED=4/default=0) (int)
parm:           disable_discovery: disable discovery  (int)
parm:           prot_mask: host protection capabilities mask, def=7  (int)
parm:           max_queue_depth: max controller queue depth  (int)
parm:           max_sgl_entries: max sg entries  (int)
parm:           msix_disable: disable msix routed interrupts (default=0) (int)
parm:           smp_affinity_enable:SMP affinity feature enable/disbale Default: enable(1) (int)
parm:           max_msix_vectors: max msix vectors (int)
parm:           mpt3sas_fwfault_debug: enable detection of firmware fault and halt firmware - (default=0)
 

jengdesign

New Member
Aug 28, 2017
4
0
1
40
I'm trying to "build" the driver from the source they provide within this link.

https://docs.broadcom.com/docs/12349343

Getting errors and recipe failures. I'm following the instructions they provide in the PDF. Still no luck.

Any assistance in this would be welcome, since I figure it's probably easier than I'm making it.

Code:
root@pve12:/usr/src/mpt2sas/mpt3sas# bash compile.sh
rm: cannot remove 'tags': No such file or directory
compile.sh: line 50: ctags: command not found
make: Entering directory '/usr/src/linux-headers-4.10.17-3-pve'
  LD      /usr/src/mpt2sas/mpt3sas/built-in.o
  CC [M]  /usr/src/mpt2sas/mpt3sas/mpt3sas_base.o
  CC [M]  /usr/src/mpt2sas/mpt3sas/mpt3sas_config.o
  CC [M]  /usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.o
  CC [M]  /usr/src/mpt2sas/mpt3sas/mpt3sas_scsih.o
In file included from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:70:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_config.c:56:
/usr/src/mpt2sas/mpt3sas/mpt3sas_compatibility.h:50:12: error: conflicting types for ‘scsi_internal_device_block’
 extern int scsi_internal_device_block(struct scsi_device *sdev);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/scsi/scsi_cmnd.h:10:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:60,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_config.c:56:
./include/scsi/scsi_device.h:478:5: note: previous declaration of ‘scsi_internal_device_block’ was here
 int scsi_internal_device_block(struct scsi_device *sdev, bool wait);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:70:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:66:
/usr/src/mpt2sas/mpt3sas/mpt3sas_compatibility.h:50:12: error: conflicting types for ‘scsi_internal_device_block’
 extern int scsi_internal_device_block(struct scsi_device *sdev);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/scsi/scsi_cmnd.h:10:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:60,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:66:
./include/scsi/scsi_device.h:478:5: note: previous declaration of ‘scsi_internal_device_block’ was here
 int scsi_internal_device_block(struct scsi_device *sdev, bool wait);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:70:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_scsih.c:61:
/usr/src/mpt2sas/mpt3sas/mpt3sas_compatibility.h:50:12: error: conflicting types for ‘scsi_internal_device_block’
 extern int scsi_internal_device_block(struct scsi_device *sdev);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/scsi/scsi_cmnd.h:10:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:60,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_scsih.c:61:
./include/scsi/scsi_device.h:478:5: note: previous declaration of ‘scsi_internal_device_block’ was here
 int scsi_internal_device_block(struct scsi_device *sdev, bool wait);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:70:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:51:
/usr/src/mpt2sas/mpt3sas/mpt3sas_compatibility.h:50:12: error: conflicting types for ‘scsi_internal_device_block’
 extern int scsi_internal_device_block(struct scsi_device *sdev);
            ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./include/scsi/scsi_cmnd.h:10:0,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:60,
                 from /usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:51:
./include/scsi/scsi_device.h:478:5: note: previous declaration of ‘scsi_internal_device_block’ was here
 int scsi_internal_device_block(struct scsi_device *sdev, bool wait);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c: In function ‘_base_display_event_data’:
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:820:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if (event_data->DiscoveryStatus)
   ^~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:823:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
    printk("\n");
    ^~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:300:1: warning: data definition has no type or storage class
 CONFIGFS_ATTR_STRUCT(mpt3sas_driver);
 ^~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:300:1: error: type defaults to ‘int’ in declaration of ‘CONFIGFS_ATTR_STRUCT’ [-Werror=implicit-int]
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:300:1: warning: parameter names (without types) in function declaration
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:333:1: warning: data definition has no type or storage class
 CONFIGFS_ATTR_STRUCT(mpt3sas_hba);
 ^~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:333:1: error: type defaults to ‘int’ in declaration of ‘CONFIGFS_ATTR_STRUCT’ [-Werror=implicit-int]
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:333:1: warning: parameter names (without types) in function declaration
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:370:1: warning: data definition has no type or storage class
 CONFIGFS_ATTR_STRUCT(mpt3sas_device);
 ^~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:370:1: error: type defaults to ‘int’ in declaration of ‘CONFIGFS_ATTR_STRUCT’ [-Werror=implicit-int]
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:370:1: warning: parameter names (without types) in function declaration
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:8: error: variable ‘mpt3sas_device_attr_WWID’ has initializer but incomplete type
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:451:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(WWID, S_IRUGO | S_IWUSR, mpt3sas_device_WWID_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:374:1: error: implicit declaration of function ‘__CONFIGFS_ATTR’ [-Werror=implicit-function-declaration]
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:451:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(WWID, S_IRUGO | S_IWUSR, mpt3sas_device_WWID_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:451:21: error: ‘WWID’ undeclared here (not in a function)
 MPT3SAS_DEVICE_ATTR(WWID, S_IRUGO | S_IWUSR, mpt3sas_device_WWID_read,
                     ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:374:17: note: in definition of macro ‘MPT3SAS_DEVICE_ATTR’
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
                 ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:8: error: variable ‘mpt3sas_device_attr_slot’ has initializer but incomplete type
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:497:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(slot, S_IRUGO | S_IWUSR, mpt3sas_device_slot_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:497:21: error: ‘slot’ undeclared here (not in a function)
 MPT3SAS_DEVICE_ATTR(slot, S_IRUGO | S_IWUSR, mpt3sas_device_slot_read,
                     ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:374:17: note: in definition of macro ‘MPT3SAS_DEVICE_ATTR’
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
                 ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:8: error: variable ‘mpt3sas_device_attr_serial_number’ has initializer but incomplete type
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:548:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(serial_number, S_IRUGO | S_IWUSR, mpt3sas_device_serial_number_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:548:21: error: ‘serial_number’ undeclared here (not in a function)
 MPT3SAS_DEVICE_ATTR(serial_number, S_IRUGO | S_IWUSR, mpt3sas_device_serial_number_read,
                     ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:374:17: note: in definition of macro ‘MPT3SAS_DEVICE_ATTR’
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
                 ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:8: error: variable ‘mpt3sas_device_attr_vfid_mask’ has initializer but incomplete type
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1060:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(vfid_mask, S_IRUGO | S_IWUSR,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1060:21: error: ‘vfid_mask’ undeclared here (not in a function)
 MPT3SAS_DEVICE_ATTR(vfid_mask, S_IRUGO | S_IWUSR,
                     ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:374:17: note: in definition of macro ‘MPT3SAS_DEVICE_ATTR’
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
                 ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:377:8: error: variable ‘mpt3sas_device_attr_description’ has initializer but incomplete type
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1085:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR_RO’
 MPT3SAS_DEVICE_ATTR_RO(description, mpt3sas_device_description_read);
 ^~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:378:1: error: implicit declaration of function ‘__CONFIGFS_ATTR_RO’ [-Werror=implicit-function-declaration]
 __CONFIGFS_ATTR_RO(_name, _show);
 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1085:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR_RO’
 MPT3SAS_DEVICE_ATTR_RO(description, mpt3sas_device_description_read);
 ^~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1085:24: error: ‘description’ undeclared here (not in a function)
 MPT3SAS_DEVICE_ATTR_RO(description, mpt3sas_device_description_read);
                        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:378:20: note: in definition of macro ‘MPT3SAS_DEVICE_ATTR_RO’
 __CONFIGFS_ATTR_RO(_name, _show);
                    ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1088:2: error: invalid use of undefined type ‘struct mpt3sas_device_attribute’
  &mpt3sas_device_attr_WWID.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1089:2: error: invalid use of undefined type ‘struct mpt3sas_device_attribute’
  &mpt3sas_device_attr_slot.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1090:2: error: invalid use of undefined type ‘struct mpt3sas_device_attribute’
  &mpt3sas_device_attr_serial_number.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1091:2: error: invalid use of undefined type ‘struct mpt3sas_device_attribute’
  &mpt3sas_device_attr_vfid_mask.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1092:2: error: invalid use of undefined type ‘struct mpt3sas_device_attribute’
  &mpt3sas_device_attr_description.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1170:1: warning: data definition has no type or storage class
 CONFIGFS_ATTR_OPS(mpt3sas_device);
 ^~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1170:1: error: type defaults to ‘int’ in declaration of ‘CONFIGFS_ATTR_OPS’ [-Werror=implicit-int]
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1170:1: warning: parameter names (without types) in function declaration
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1172:2: error: unknown field ‘show_attribute’ specified in initializer
  .show_attribute = mpt3sas_device_attr_show,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1172:20: error: ‘mpt3sas_device_attr_show’ undeclared here (not in a function)
  .show_attribute = mpt3sas_device_attr_show,
                    ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1172:20: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1172:20: note: (near initialization for ‘mpt3sas_device_item_ops.release’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1173:2: error: unknown field ‘store_attribute’ specified in initializer
  .store_attribute = mpt3sas_device_attr_store,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1173:21: error: ‘mpt3sas_device_attr_store’ undeclared here (not in a function)
  .store_attribute = mpt3sas_device_attr_store,
                     ^~~~~~~~~~~~~~~~~~~~~~~~~
 

jengdesign

New Member
Aug 28, 2017
4
0
1
40
Rest of code from last post.... ^^

Code:
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1173:21: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1173:21: note: (near initialization for ‘mpt3sas_device_item_ops.allow_link’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:336:8: error: variable ‘mpt3sas_hba_attr_ioc_number’ has initializer but incomplete type
 struct mpt3sas_hba_attribute mpt3sas_hba_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1300:1: note: in expansion of macro ‘MPT3SAS_HBA_ATTR’
 MPT3SAS_HBA_ATTR(ioc_number, S_IRUGO | S_IWUSR, mpt3sas_hba_ioc_number_read,
 ^~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1300:18: error: ‘ioc_number’ undeclared here (not in a function)
 MPT3SAS_HBA_ATTR(ioc_number, S_IRUGO | S_IWUSR, mpt3sas_hba_ioc_number_read,
                  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:337:17: note: in definition of macro ‘MPT3SAS_HBA_ATTR’
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
                 ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:336:8: error: variable ‘mpt3sas_hba_attr_mapping_mode’ has initializer but incomplete type
 struct mpt3sas_hba_attribute mpt3sas_hba_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1360:1: note: in expansion of macro ‘MPT3SAS_HBA_ATTR’
 MPT3SAS_HBA_ATTR(mapping_mode, S_IRUGO | S_IWUSR, mpt3sas_hba_mapping_mode_read,
 ^~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1360:18: error: ‘mapping_mode’ undeclared here (not in a function)
 MPT3SAS_HBA_ATTR(mapping_mode, S_IRUGO | S_IWUSR, mpt3sas_hba_mapping_mode_read,
                  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:337:17: note: in definition of macro ‘MPT3SAS_HBA_ATTR’
 __CONFIGFS_ATTR(_name, _mode, _show, _store)
                 ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:340:8: error: variable ‘mpt3sas_hba_attr_description’ has initializer but incomplete type
 struct mpt3sas_hba_attribute mpt3sas_hba_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1380:1: note: in expansion of macro ‘MPT3SAS_HBA_ATTR_RO’
 MPT3SAS_HBA_ATTR_RO(description, mpt3sas_hba_description_read);
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1383:2: error: invalid use of undefined type ‘struct mpt3sas_hba_attribute’
  &mpt3sas_hba_attr_ioc_number.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1383:2: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1383:2: note: (near initialization for ‘mpt3sas_hba_attrs[0]’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1384:2: error: invalid use of undefined type ‘struct mpt3sas_hba_attribute’
  &mpt3sas_hba_attr_mapping_mode.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1384:2: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1384:2: note: (near initialization for ‘mpt3sas_hba_attrs[1]’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1385:2: error: invalid use of undefined type ‘struct mpt3sas_hba_attribute’
  &mpt3sas_hba_attr_description.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1385:2: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1385:2: note: (near initialization for ‘mpt3sas_hba_attrs[2]’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1422:1: warning: data definition has no type or storage class
 CONFIGFS_ATTR_OPS(mpt3sas_hba);
 ^~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1422:1: error: type defaults to ‘int’ in declaration of ‘CONFIGFS_ATTR_OPS’ [-Werror=implicit-int]
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1422:1: warning: parameter names (without types) in function declaration
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1424:2: error: unknown field ‘show_attribute’ specified in initializer
  .show_attribute = mpt3sas_hba_attr_show,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1424:20: error: ‘mpt3sas_hba_attr_show’ undeclared here (not in a function)
  .show_attribute = mpt3sas_hba_attr_show,
                    ^~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1424:20: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1424:20: note: (near initialization for ‘mpt3sas_hba_item_ops.release’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1425:2: error: unknown field ‘store_attribute’ specified in initializer
  .store_attribute = mpt3sas_hba_attr_store,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1425:21: error: ‘mpt3sas_hba_attr_store’ undeclared here (not in a function)
  .store_attribute = mpt3sas_hba_attr_store,
                     ^~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1425:21: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1425:21: note: (near initialization for ‘mpt3sas_hba_item_ops.allow_link’)
scripts/Makefile.build:294: recipe for target '/usr/src/mpt2sas/mpt3sas/mpt3sas_config.o' failed
make[1]: *** [/usr/src/mpt2sas/mpt3sas/mpt3sas_config.o] Error 1
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:307:8: error: variable ‘mpt3sas_driver_attr_description’ has initializer but incomplete type
 struct mpt3sas_driver_attribute mpt3sas_driver_attr_##_name = \
        ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1484:1: note: in expansion of macro ‘MPT3SAS_DRIVER_ATTR_RO’
 MPT3SAS_DRIVER_ATTR_RO(description, mpt3sas_driver_description_read);
 ^~~~~~~~~~~~~~~~~~~~~~
make[1]: *** Waiting for unfinished jobs....
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1487:2: error: invalid use of undefined type ‘struct mpt3sas_driver_attribute’
  &mpt3sas_driver_attr_description.attr,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1487:2: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1487:2: note: (near initialization for ‘mpt3sas_driver_attrs[0]’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1503:1: warning: data definition has no type or storage class
 CONFIGFS_ATTR_OPS(mpt3sas_driver);
 ^~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1503:1: error: type defaults to ‘int’ in declaration of ‘CONFIGFS_ATTR_OPS’ [-Werror=implicit-int]
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1503:1: warning: parameter names (without types) in function declaration
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1505:2: error: unknown field ‘show_attribute’ specified in initializer
  .show_attribute = mpt3sas_driver_attr_show,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1505:20: error: ‘mpt3sas_driver_attr_show’ undeclared here (not in a function)
  .show_attribute = mpt3sas_driver_attr_show,
                    ^~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1505:20: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1505:20: note: (near initialization for ‘mpt3sas_driver_item_ops.release’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1506:2: error: unknown field ‘store_attribute’ specified in initializer
  .store_attribute = mpt3sas_driver_attr_store,
  ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1506:21: error: ‘mpt3sas_driver_attr_store’ undeclared here (not in a function)
  .store_attribute = mpt3sas_driver_attr_store,
                     ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1506:21: error: initializer element is not constant
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1506:21: note: (near initialization for ‘mpt3sas_driver_item_ops.allow_link’)
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:33: error: storage size of ‘mpt3sas_device_attr_WWID’ isn’t known
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
                                 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:451:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(WWID, S_IRUGO | S_IWUSR, mpt3sas_device_WWID_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:33: error: storage size of ‘mpt3sas_device_attr_slot’ isn’t known
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
                                 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:497:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(slot, S_IRUGO | S_IWUSR, mpt3sas_device_slot_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:33: error: storage size of ‘mpt3sas_device_attr_serial_number’ isn’t known
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
                                 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:548:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(serial_number, S_IRUGO | S_IWUSR, mpt3sas_device_serial_number_read,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:373:33: error: storage size of ‘mpt3sas_device_attr_vfid_mask’ isn’t known
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
                                 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1060:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR’
 MPT3SAS_DEVICE_ATTR(vfid_mask, S_IRUGO | S_IWUSR,
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:377:33: error: storage size of ‘mpt3sas_device_attr_description’ isn’t known
 struct mpt3sas_device_attribute mpt3sas_device_attr_##_name = \
                                 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1085:1: note: in expansion of macro ‘MPT3SAS_DEVICE_ATTR_RO’
 MPT3SAS_DEVICE_ATTR_RO(description, mpt3sas_device_description_read);
 ^~~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:336:30: error: storage size of ‘mpt3sas_hba_attr_ioc_number’ isn’t known
 struct mpt3sas_hba_attribute mpt3sas_hba_attr_##_name = \
                              ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1300:1: note: in expansion of macro ‘MPT3SAS_HBA_ATTR’
 MPT3SAS_HBA_ATTR(ioc_number, S_IRUGO | S_IWUSR, mpt3sas_hba_ioc_number_read,
 ^~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:336:30: error: storage size of ‘mpt3sas_hba_attr_mapping_mode’ isn’t known
 struct mpt3sas_hba_attribute mpt3sas_hba_attr_##_name = \
                              ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1360:1: note: in expansion of macro ‘MPT3SAS_HBA_ATTR’
 MPT3SAS_HBA_ATTR(mapping_mode, S_IRUGO | S_IWUSR, mpt3sas_hba_mapping_mode_read,
 ^~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:340:30: error: storage size of ‘mpt3sas_hba_attr_description’ isn’t known
 struct mpt3sas_hba_attribute mpt3sas_hba_attr_##_name = \
                              ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1380:1: note: in expansion of macro ‘MPT3SAS_HBA_ATTR_RO’
 MPT3SAS_HBA_ATTR_RO(description, mpt3sas_hba_description_read);
 ^~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:307:33: error: storage size of ‘mpt3sas_driver_attr_description’ isn’t known
 struct mpt3sas_driver_attribute mpt3sas_driver_attr_##_name = \
                                 ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.c:1484:1: note: in expansion of macro ‘MPT3SAS_DRIVER_ATTR_RO’
 MPT3SAS_DRIVER_ATTR_RO(description, mpt3sas_driver_description_read);
 ^~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
scripts/Makefile.build:294: recipe for target '/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.o' failed
make[1]: *** [/usr/src/mpt2sas/mpt3sas/mpt3sas_configfs.o] Error 1
In file included from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:66:0:
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c: In function ‘_base_allocate_memory_pools’:
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:99:31: error: ‘SCSI_MAX_SG_SEGMENTS’ undeclared (first use in this function)
 #define MPT_MAX_PHYS_SEGMENTS SCSI_MAX_SG_SEGMENTS
                               ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:4546:26: note: in expansion of macro ‘MPT_MAX_PHYS_SEGMENTS’
  else if (sg_tablesize > MPT_MAX_PHYS_SEGMENTS) {
                          ^~~~~~~~~~~~~~~~~~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.h:99:31: note: each undeclared identifier is reported only once for each function it appears in
 #define MPT_MAX_PHYS_SEGMENTS SCSI_MAX_SG_SEGMENTS
                               ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:4546:26: note: in expansion of macro ‘MPT_MAX_PHYS_SEGMENTS’
  else if (sg_tablesize > MPT_MAX_PHYS_SEGMENTS) {
                          ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:47:0:
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:4549:6: error: ‘SCSI_MAX_SG_CHAIN_SEGMENTS’ undeclared (first use in this function)
      SCSI_MAX_SG_CHAIN_SEGMENTS);
      ^
./include/linux/kernel.h:752:13: note: in definition of macro ‘__min’
  t2 min2 = (y);     \
             ^
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:4548:18: note: in expansion of macro ‘min_t’
   sg_tablesize = min_t(unsigned short, sg_tablesize,
                  ^~~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:4719:3: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]
   else
   ^~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:4721:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘else’
    goto out;
    ^~~~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c: In function ‘_base_reset_handler’:
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:6635:3: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   if ((scsih_qcmd->status) & MPT3_CMD_PENDING)
   ^~
/usr/src/mpt2sas/mpt3sas/mpt3sas_base.c:6637:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’
    mpt3sas_base_free_smid(ioc, scsih_qcmd->smid);
    ^~~~~~~~~~~~~~~~~~~~~~
scripts/Makefile.build:294: recipe for target '/usr/src/mpt2sas/mpt3sas/mpt3sas_base.o' failed
make[1]: *** [/usr/src/mpt2sas/mpt3sas/mpt3sas_base.o] Error 1
scripts/Makefile.build:294: recipe for target '/usr/src/mpt2sas/mpt3sas/mpt3sas_scsih.o' failed
make[1]: *** [/usr/src/mpt2sas/mpt3sas/mpt3sas_scsih.o] Error 1
Makefile:1524: recipe for target '_module_/usr/src/mpt2sas/mpt3sas' failed
make: *** [_module_/usr/src/mpt2sas/mpt3sas] Error 2
make: Leaving directory '/usr/src/linux-headers-4.10.17-3-pve'