Re: [PATCH] scsi: ibmvfc: interface updates for future FPIN and MQ support

From: kernel test robot
Date: Mon Aug 31 2020 - 20:08:17 EST


Hi Tyrel,

I love your patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on mkp-scsi/for-next scsi/for-next v5.9-rc3 next-20200828]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url: https://github.com/0day-ci/linux/commits/Tyrel-Datwyler/scsi-ibmvfc-interface-updates-for-future-FPIN-and-MQ-support/20200901-012005
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from drivers/scsi/ibmvscsi/ibmvfc.c:32:
>> drivers/scsi/ibmvscsi/ibmvfc.h:500:13: error: expected ':', ',', ';', '}' or '__attribute__' before 'nvmeof_vas_channels'
500 | __be32 num nvmeof_vas_channels;
| ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/ibmvscsi/ibmvfc.h:506:17: error: expected declaration specifiers or '...' before '(' token
506 | }__attrribute__((packed, aligned (8)));
| ^
>> drivers/scsi/ibmvscsi/ibmvfc.h:526:28: error: field 'common' has incomplete type
526 | struct ibmvfc_madd_common common;
| ^~~~~~
>> drivers/scsi/ibmvscsi/ibmvfc.h:627:2: error: expected ':', ',', ';', '}' or '__attribute__' before 'u8'
627 | u8 pad;
| ^~
In file included from include/linux/byteorder/big_endian.h:5,
from arch/powerpc/include/uapi/asm/byteorder.h:14,
from include/asm-generic/bitops/le.h:6,
from arch/powerpc/include/asm/bitops.h:246,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/module.h:12,
from drivers/scsi/ibmvscsi/ibmvfc.c:10:
drivers/scsi/ibmvscsi/ibmvfc.c: In function 'ibmvfc_handle_async':
>> drivers/scsi/ibmvscsi/ibmvfc.c:2665:75: error: 'struct ibmvfc_async_crq' has no member named 'event'
2665 | const struct ibmvfc_async_desc *desc = ibmvfc_get_ae_desc(be64_to_cpu(crq->event));
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.c:2665:60: note: in expansion of macro 'be64_to_cpu'
2665 | const struct ibmvfc_async_desc *desc = ibmvfc_get_ae_desc(be64_to_cpu(crq->event));
| ^~~~~~~~~~~
>> drivers/scsi/ibmvscsi/ibmvfc.c:2669:57: error: 'struct ibmvfc_async_crq' has no member named 'scsi_id'
2669 | " node_name: %llx%s\n", desc->desc, be64_to_cpu(crq->scsi_id),
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.h:818:4: note: in expansion of macro 'dev_err'
818 | dev_err((vhost)->dev, ##__VA_ARGS__); \
| ^~~~~~~
drivers/scsi/ibmvscsi/ibmvfc.c:2668:2: note: in expansion of macro 'ibmvfc_log'
2668 | ibmvfc_log(vhost, desc->log_level, "%s event received. scsi_id: %llx, wwpn: %llx,"
| ^~~~~~~~~~
>> drivers/scsi/ibmvscsi/ibmvfc.c:2670:21: error: 'struct ibmvfc_async_crq' has no member named 'wwpn'
2670 | be64_to_cpu(crq->wwpn), be64_to_cpu(crq->node_name),
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.h:818:4: note: in expansion of macro 'dev_err'
818 | dev_err((vhost)->dev, ##__VA_ARGS__); \
| ^~~~~~~
drivers/scsi/ibmvscsi/ibmvfc.c:2668:2: note: in expansion of macro 'ibmvfc_log'
2668 | ibmvfc_log(vhost, desc->log_level, "%s event received. scsi_id: %llx, wwpn: %llx,"
| ^~~~~~~~~~
>> drivers/scsi/ibmvscsi/ibmvfc.c:2670:45: error: 'struct ibmvfc_async_crq' has no member named 'node_name'
2670 | be64_to_cpu(crq->wwpn), be64_to_cpu(crq->node_name),
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.h:818:4: note: in expansion of macro 'dev_err'
818 | dev_err((vhost)->dev, ##__VA_ARGS__); \
| ^~~~~~~
drivers/scsi/ibmvscsi/ibmvfc.c:2668:2: note: in expansion of macro 'ibmvfc_log'
2668 | ibmvfc_log(vhost, desc->log_level, "%s event received. scsi_id: %llx, wwpn: %llx,"
| ^~~~~~~~~~
drivers/scsi/ibmvscsi/ibmvfc.c:2673:25: error: 'struct ibmvfc_async_crq' has no member named 'event'
2673 | switch (be64_to_cpu(crq->event)) {
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.c:2673:10: note: in expansion of macro 'be64_to_cpu'
2673 | switch (be64_to_cpu(crq->event)) {
| ^~~~~~~~~~~
drivers/scsi/ibmvscsi/ibmvfc.c:2714:12: error: 'struct ibmvfc_async_crq' has no member named 'scsi_id'
2714 | if (!crq->scsi_id && !crq->wwpn && !crq->node_name)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2714:29: error: 'struct ibmvfc_async_crq' has no member named 'wwpn'
2714 | if (!crq->scsi_id && !crq->wwpn && !crq->node_name)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2714:43: error: 'struct ibmvfc_async_crq' has no member named 'node_name'
2714 | if (!crq->scsi_id && !crq->wwpn && !crq->node_name)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2716:11: error: 'struct ibmvfc_async_crq' has no member named 'scsi_id'
2716 | if (crq->scsi_id && cpu_to_be64(tgt->scsi_id) != crq->scsi_id)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2716:56: error: 'struct ibmvfc_async_crq' has no member named 'scsi_id'
2716 | if (crq->scsi_id && cpu_to_be64(tgt->scsi_id) != crq->scsi_id)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2718:11: error: 'struct ibmvfc_async_crq' has no member named 'wwpn'
2718 | if (crq->wwpn && cpu_to_be64(tgt->ids.port_name) != crq->wwpn)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2718:59: error: 'struct ibmvfc_async_crq' has no member named 'wwpn'
2718 | if (crq->wwpn && cpu_to_be64(tgt->ids.port_name) != crq->wwpn)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2720:11: error: 'struct ibmvfc_async_crq' has no member named 'node_name'
2720 | if (crq->node_name && cpu_to_be64(tgt->ids.node_name) != crq->node_name)
| ^~
drivers/scsi/ibmvscsi/ibmvfc.c:2720:64: error: 'struct ibmvfc_async_crq' has no member named 'node_name'
2720 | if (crq->node_name && cpu_to_be64(tgt->ids.node_name) != crq->node_name)
| ^~
In file included from include/linux/byteorder/big_endian.h:5,
from arch/powerpc/include/uapi/asm/byteorder.h:14,
from include/asm-generic/bitops/le.h:6,
from arch/powerpc/include/asm/bitops.h:246,
from include/linux/bitops.h:29,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/module.h:12,
from drivers/scsi/ibmvscsi/ibmvfc.c:10:
drivers/scsi/ibmvscsi/ibmvfc.c:2722:42: error: 'struct ibmvfc_async_crq' has no member named 'event'
2722 | if (tgt->need_login && be64_to_cpu(crq->event) == IBMVFC_AE_ELS_LOGO)
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.c:2722:27: note: in expansion of macro 'be64_to_cpu'
2722 | if (tgt->need_login && be64_to_cpu(crq->event) == IBMVFC_AE_ELS_LOGO)
| ^~~~~~~~~~~
drivers/scsi/ibmvscsi/ibmvfc.c:2724:43: error: 'struct ibmvfc_async_crq' has no member named 'event'
2724 | if (!tgt->need_login || be64_to_cpu(crq->event) == IBMVFC_AE_ELS_PLOGI) {
| ^~
include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__be64_to_cpu'
38 | #define __be64_to_cpu(x) ((__force __u64)(__be64)(x))
| ^
drivers/scsi/ibmvscsi/ibmvfc.c:2724:28: note: in expansion of macro 'be64_to_cpu'
2724 | if (!tgt->need_login || be64_to_cpu(crq->event) == IBMVFC_AE_ELS_PLOGI) {
| ^~~~~~~~~~~
In file included from include/linux/device.h:15,
from include/linux/dma-mapping.h:7,
from drivers/scsi/ibmvscsi/ibmvfc.c:12:
drivers/scsi/ibmvscsi/ibmvfc.c:2741:66: error: 'struct ibmvfc_async_crq' has no member named 'event'
2741 | dev_err(vhost->dev, "Unknown async event received: %lld\n", crq->event);
| ^~
include/linux/dev_printk.h:104:32: note: in definition of macro 'dev_err'
104 | _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~

# https://github.com/0day-ci/linux/commit/b2aced49faf50075e9a74e7a253d1ad77cce1c0c
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Tyrel-Datwyler/scsi-ibmvfc-interface-updates-for-future-FPIN-and-MQ-support/20200901-012005
git checkout b2aced49faf50075e9a74e7a253d1ad77cce1c0c
vim +500 drivers/scsi/ibmvscsi/ibmvfc.h

490
491 struct ibmvfc_channel_enquiry {
492 struct ibmvfc_mad_common common;
493 __be32 flags;
494 #define IBMVFC_NO_CHANNELS_TO_CRQ_SUPPORT 0x01
495 #define IBMVFC_SUPPORT_VARIABLE_SUBQ_MSG 0x02
496 #define IBMVFC_NO_N_TO_M_CHANNELS_SUPPORT 0x04
497 __be32 num_scsi_subq_channels;
498 __be32 num_nvmeof_subq_channels;
499 __be32 num_scsi_vas_channels;
> 500 __be32 num nvmeof_vas_channels;
501 }__attribute__((packed, aligned (8)));
502
503 struct ibmvfc_channel_setup_mad {
504 struct ibmvfc_mad_common common;
505 struct srp_direct_buf buffer;
> 506 }__attrribute__((packed, aligned (8)));
507
508 #define IBMVFC_MAX_CHANNELS 502
509
510 struct ibmvfc_channel_setup {
511 __be32 flags;
512 #define IBMVFC_CANCEL_CHANNELS 0x01
513 #define IBMVFC_USE_BUFFER 0x02
514 #define IBMVFC_CHANNELS_CANCELED 0x04
515 __be32 reserved;
516 __be32 num_scsi_subq_channels;
517 __be32 num_nvmeof_subq_channels;
518 __be32 num_scsi_vas_channels;
519 __be32 num_nvmeof_vas_channels;
520 struct srp_direct_buf buffer;
521 __be64 reserved2[5];
522 __be64 channel_handles[IBMVFC_MAX_CHANNELS];
523 }__attribute__((packed, aligned (8)));
524
525 struct ibmvfc_connection_info {
> 526 struct ibmvfc_madd_common common;
527 __be64 information_bits;
528 #define IBMVFC_NO_FC_IO_CHANNEL 0x01
529 #define IBMVFC_NO_PHYP_VAS 0x02
530 #define IBMVFC_NO_PHYP_SUBQ 0x04
531 #define IBMVFC_PHYP_DEPRECATED_SUBQ 0x08
532 #define IBMVFC_PHYP_PRESERVED_SUBQ 0x10
533 #define IBMVFC_PHYP_FULL_SUBQ 0x20
534 __be64 reserved[16];
535 }__attribute__((packed, aligned (8)));
536
537 struct ibmvfc_trace_start_entry {
538 u32 xfer_len;
539 }__attribute__((packed));
540
541 struct ibmvfc_trace_end_entry {
542 u16 status;
543 u16 error;
544 u8 fcp_rsp_flags;
545 u8 rsp_code;
546 u8 scsi_status;
547 u8 reserved;
548 }__attribute__((packed));
549
550 struct ibmvfc_trace_entry {
551 struct ibmvfc_event *evt;
552 u32 time;
553 u32 scsi_id;
554 u32 lun;
555 u8 fmt;
556 u8 op_code;
557 u8 tmf_flags;
558 u8 type;
559 #define IBMVFC_TRC_START 0x00
560 #define IBMVFC_TRC_END 0xff
561 union {
562 struct ibmvfc_trace_start_entry start;
563 struct ibmvfc_trace_end_entry end;
564 } u;
565 }__attribute__((packed, aligned (8)));
566
567 enum ibmvfc_crq_formats {
568 IBMVFC_CMD_FORMAT = 0x01,
569 IBMVFC_ASYNC_EVENT = 0x02,
570 IBMVFC_MAD_FORMAT = 0x04,
571 };
572
573 enum ibmvfc_async_event {
574 IBMVFC_AE_ELS_PLOGI = 0x0001,
575 IBMVFC_AE_ELS_LOGO = 0x0002,
576 IBMVFC_AE_ELS_PRLO = 0x0004,
577 IBMVFC_AE_SCN_NPORT = 0x0008,
578 IBMVFC_AE_SCN_GROUP = 0x0010,
579 IBMVFC_AE_SCN_DOMAIN = 0x0020,
580 IBMVFC_AE_SCN_FABRIC = 0x0040,
581 IBMVFC_AE_LINK_UP = 0x0080,
582 IBMVFC_AE_LINK_DOWN = 0x0100,
583 IBMVFC_AE_LINK_DEAD = 0x0200,
584 IBMVFC_AE_HALT = 0x0400,
585 IBMVFC_AE_RESUME = 0x0800,
586 IBMVFC_AE_ADAPTER_FAILED = 0x1000,
587 IBMVFC_AE_FPIN = 0x2000,
588 };
589
590 struct ibmvfc_async_desc {
591 const char *desc;
592 enum ibmvfc_async_event ae;
593 int log_level;
594 };
595
596 struct ibmvfc_crq {
597 volatile u8 valid;
598 volatile u8 format;
599 u8 reserved[6];
600 volatile __be64 ioba;
601 }__attribute__((packed, aligned (8)));
602
603 struct ibmvfc_crq_queue {
604 struct ibmvfc_crq *msgs;
605 int size, cur;
606 dma_addr_t msg_token;
607 };
608
609 enum ibmvfc_ae_link_state {
610 IBMVFC_AE_LS_LINK_UP = 0x01,
611 IBMVFC_AE_LS_LINK_BOUNCED = 0x02,
612 IBMVFC_AE_LS_LINK_DOWN = 0x04,
613 IBMVFC_AE_LS_LINK_DEAD = 0x08,
614 };
615
616 enum ibmvfc_ae_fpin_status {
617 IBMVFC_AE_FPIN_LINK_CONGESTED = 0x1,
618 IBMVFC_AE_FPIN_PORT_CONGESTED = 0x2,
619 IBMVFC_AE_FPIN_PORT_CLEARED = 0x3,
620 IBMVFC_AE_FPIN_PORT_DEGRADED = 0x4,
621 };
622
623 struct ibmvfc_async_crq {
624 volatile u8 valid;
625 u8 link_state;
626 u8 fpin_status
> 627 u8 pad;
628 __be32 pad2;
629 volatile __be64 event;
630 volatile __be64 scsi_id;
631 volatile __be64 wwpn;
632 volatile __be64 node_name;
633 __be64 reserved;
634 }__attribute__((packed, aligned (8)));
635

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip