[Intel-wired-lan] [jkirsher-next-queue:dev-queue 62/73] drivers/net/ethernet/intel/iecm/iecm_lib.c:49:13: warning: no previous prototype for function 'iecm_mb_intr_clean'
kbuild test robot
lkp at intel.com
Fri May 29 23:56:00 UTC 2020
Hi Alice,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue.git dev-queue
head: 4b1ba063a5a5cf9c533aa0b2ca8a423df159773e
commit: 57168068502344f572f6d8e3c916922780241a76 [62/73] iecm: Add iecm to the kernel build system
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 2d068e534f1671459e1b135852c1b3c10502e929)
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
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 57168068502344f572f6d8e3c916922780241a76
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp at intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:49:13: warning: no previous prototype for function 'iecm_mb_intr_clean' [-Wmissing-prototypes]
irqreturn_t iecm_mb_intr_clean(int __always_unused irq, void *data)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:49:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
irqreturn_t iecm_mb_intr_clean(int __always_unused irq, void *data)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:63:6: warning: no previous prototype for function 'iecm_mb_irq_enable' [-Wmissing-prototypes]
void iecm_mb_irq_enable(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:63:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_mb_irq_enable(struct iecm_adapter *adapter)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:77:5: warning: no previous prototype for function 'iecm_mb_intr_req_irq' [-Wmissing-prototypes]
int iecm_mb_intr_req_irq(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:77:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int iecm_mb_intr_req_irq(struct iecm_adapter *adapter)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:104:6: warning: no previous prototype for function 'iecm_get_mb_vec_id' [-Wmissing-prototypes]
void iecm_get_mb_vec_id(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:104:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_get_mb_vec_id(struct iecm_adapter *adapter)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:122:5: warning: no previous prototype for function 'iecm_mb_intr_init' [-Wmissing-prototypes]
int iecm_mb_intr_init(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:122:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int iecm_mb_intr_init(struct iecm_adapter *adapter)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:140:6: warning: no previous prototype for function 'iecm_intr_distribute' [-Wmissing-prototypes]
void iecm_intr_distribute(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:140:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_intr_distribute(struct iecm_adapter *adapter)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:417:5: warning: no previous prototype for function 'iecm_vport_rel' [-Wmissing-prototypes]
int iecm_vport_rel(struct iecm_vport *vport)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:417:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int iecm_vport_rel(struct iecm_vport *vport)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_lib.c:748:6: warning: no previous prototype for function 'iecm_deinit_task' [-Wmissing-prototypes]
void iecm_deinit_task(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_lib.c:748:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_deinit_task(struct iecm_adapter *adapter)
^
static
8 warnings generated.
--
>> drivers/net/ethernet/intel/iecm/iecm_virtchnl.c:12:6: warning: no previous prototype for function 'iecm_recv_event_msg' [-Wmissing-prototypes]
void iecm_recv_event_msg(struct iecm_vport *vport)
^
drivers/net/ethernet/intel/iecm/iecm_virtchnl.c:12:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_recv_event_msg(struct iecm_vport *vport)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_virtchnl.c:61:1: warning: no previous prototype for function 'iecm_mb_clean' [-Wmissing-prototypes]
iecm_mb_clean(struct iecm_adapter *adapter)
^
drivers/net/ethernet/intel/iecm/iecm_virtchnl.c:60:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
enum iecm_status
^
static
2 warnings generated.
--
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:84:6: warning: no previous prototype for function 'iecm_tx_buf_rel_all' [-Wmissing-prototypes]
void iecm_tx_buf_rel_all(struct iecm_queue *txq)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:84:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_tx_buf_rel_all(struct iecm_queue *txq)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:115:6: warning: no previous prototype for function 'iecm_tx_desc_rel' [-Wmissing-prototypes]
void iecm_tx_desc_rel(struct iecm_queue *txq, bool bufq)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:115:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_tx_desc_rel(struct iecm_queue *txq, bool bufq)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:136:6: warning: no previous prototype for function 'iecm_tx_desc_rel_all' [-Wmissing-prototypes]
void iecm_tx_desc_rel_all(struct iecm_vport *vport)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:136:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_tx_desc_rel_all(struct iecm_vport *vport)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:312:6: warning: no previous prototype for function 'iecm_rx_buf_rel_all' [-Wmissing-prototypes]
void iecm_rx_buf_rel_all(struct iecm_queue *rxq)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:312:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_rx_buf_rel_all(struct iecm_queue *rxq)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:341:6: warning: no previous prototype for function 'iecm_rx_desc_rel' [-Wmissing-prototypes]
void iecm_rx_desc_rel(struct iecm_queue *rxq, bool bufq,
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:341:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_rx_desc_rel(struct iecm_queue *rxq, bool bufq,
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:371:6: warning: no previous prototype for function 'iecm_rx_desc_rel_all' [-Wmissing-prototypes]
void iecm_rx_desc_rel_all(struct iecm_vport *vport)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:371:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_rx_desc_rel_all(struct iecm_vport *vport)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:486:6: warning: no previous prototype for function 'iecm_rx_hdr_buf_hw_alloc' [-Wmissing-prototypes]
bool iecm_rx_hdr_buf_hw_alloc(struct iecm_queue *rxq,
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:486:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
bool iecm_rx_hdr_buf_hw_alloc(struct iecm_queue *rxq,
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:3565:5: warning: no previous prototype for function 'iecm_vport_splitq_napi_poll' [-Wmissing-prototypes]
int iecm_vport_splitq_napi_poll(struct napi_struct *napi, int budget)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:3565:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int iecm_vport_splitq_napi_poll(struct napi_struct *napi, int budget)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:3603:6: warning: no previous prototype for function 'iecm_vport_intr_map_vector_to_qs' [-Wmissing-prototypes]
void iecm_vport_intr_map_vector_to_qs(struct iecm_vport *vport)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:3603:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void iecm_vport_intr_map_vector_to_qs(struct iecm_vport *vport)
^
static
>> drivers/net/ethernet/intel/iecm/iecm_txrx.c:3715:5: warning: no previous prototype for function 'iecm_vport_intr_alloc' [-Wmissing-prototypes]
int iecm_vport_intr_alloc(struct iecm_vport *vport)
^
drivers/net/ethernet/intel/iecm/iecm_txrx.c:3715:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int iecm_vport_intr_alloc(struct iecm_vport *vport)
^
static
10 warnings generated.
vim +/iecm_mb_intr_clean +49 drivers/net/ethernet/intel/iecm/iecm_lib.c
87d2d1a0512b70 Alice Michael 2020-05-18 43
87d2d1a0512b70 Alice Michael 2020-05-18 44 /**
87d2d1a0512b70 Alice Michael 2020-05-18 45 * iecm_mb_intr_clean - Interrupt handler for the mailbox
87d2d1a0512b70 Alice Michael 2020-05-18 46 * @irq: interrupt number
87d2d1a0512b70 Alice Michael 2020-05-18 47 * @data: pointer to the adapter structure
87d2d1a0512b70 Alice Michael 2020-05-18 48 */
87d2d1a0512b70 Alice Michael 2020-05-18 @49 irqreturn_t iecm_mb_intr_clean(int __always_unused irq, void *data)
87d2d1a0512b70 Alice Michael 2020-05-18 50 {
5c9a1cf7085795 Alice Michael 2020-05-18 51 struct iecm_adapter *adapter = (struct iecm_adapter *)data;
5c9a1cf7085795 Alice Michael 2020-05-18 52
5c9a1cf7085795 Alice Michael 2020-05-18 53 set_bit(__IECM_MB_INTR_TRIGGER, adapter->flags);
5c9a1cf7085795 Alice Michael 2020-05-18 54 queue_delayed_work(adapter->serv_wq, &adapter->serv_task,
5c9a1cf7085795 Alice Michael 2020-05-18 55 msecs_to_jiffies(0));
5c9a1cf7085795 Alice Michael 2020-05-18 56 return IRQ_HANDLED;
87d2d1a0512b70 Alice Michael 2020-05-18 57 }
87d2d1a0512b70 Alice Michael 2020-05-18 58
87d2d1a0512b70 Alice Michael 2020-05-18 59 /**
87d2d1a0512b70 Alice Michael 2020-05-18 60 * iecm_mb_irq_enable - Enable MSIX interrupt for the mailbox
87d2d1a0512b70 Alice Michael 2020-05-18 61 * @adapter: adapter to get the hardware address for register write
87d2d1a0512b70 Alice Michael 2020-05-18 62 */
87d2d1a0512b70 Alice Michael 2020-05-18 @63 void iecm_mb_irq_enable(struct iecm_adapter *adapter)
87d2d1a0512b70 Alice Michael 2020-05-18 64 {
5c9a1cf7085795 Alice Michael 2020-05-18 65 struct iecm_hw *hw = &adapter->hw;
5c9a1cf7085795 Alice Michael 2020-05-18 66 struct iecm_intr_reg *intr = &adapter->mb_vector.intr_reg;
5c9a1cf7085795 Alice Michael 2020-05-18 67 u32 val;
5c9a1cf7085795 Alice Michael 2020-05-18 68
5c9a1cf7085795 Alice Michael 2020-05-18 69 val = intr->dyn_ctl_intena_m | intr->dyn_ctl_itridx_m;
5c9a1cf7085795 Alice Michael 2020-05-18 70 writel_relaxed(val, (u8 *)(hw->hw_addr + intr->dyn_ctl));
87d2d1a0512b70 Alice Michael 2020-05-18 71 }
87d2d1a0512b70 Alice Michael 2020-05-18 72
87d2d1a0512b70 Alice Michael 2020-05-18 73 /**
87d2d1a0512b70 Alice Michael 2020-05-18 74 * iecm_mb_intr_req_irq - Request irq for the mailbox interrupt
87d2d1a0512b70 Alice Michael 2020-05-18 75 * @adapter: adapter structure to pass to the mailbox irq handler
87d2d1a0512b70 Alice Michael 2020-05-18 76 */
87d2d1a0512b70 Alice Michael 2020-05-18 @77 int iecm_mb_intr_req_irq(struct iecm_adapter *adapter)
87d2d1a0512b70 Alice Michael 2020-05-18 78 {
5c9a1cf7085795 Alice Michael 2020-05-18 79 struct iecm_q_vector *mb_vector = &adapter->mb_vector;
5c9a1cf7085795 Alice Michael 2020-05-18 80 int irq_num, mb_vidx = 0, err;
5c9a1cf7085795 Alice Michael 2020-05-18 81
5c9a1cf7085795 Alice Michael 2020-05-18 82 irq_num = adapter->msix_entries[mb_vidx].vector;
5c9a1cf7085795 Alice Michael 2020-05-18 83 snprintf(mb_vector->name, sizeof(mb_vector->name) - 1,
5c9a1cf7085795 Alice Michael 2020-05-18 84 "%s-%s-%d", dev_driver_string(&adapter->pdev->dev),
5c9a1cf7085795 Alice Michael 2020-05-18 85 "Mailbox", mb_vidx);
5c9a1cf7085795 Alice Michael 2020-05-18 86 err = request_irq(irq_num, adapter->irq_mb_handler, 0,
5c9a1cf7085795 Alice Michael 2020-05-18 87 mb_vector->name, adapter);
5c9a1cf7085795 Alice Michael 2020-05-18 88 if (err) {
5c9a1cf7085795 Alice Michael 2020-05-18 89 dev_err(&adapter->pdev->dev,
5c9a1cf7085795 Alice Michael 2020-05-18 90 "Request_irq for mailbox failed, error: %d\n", err);
5c9a1cf7085795 Alice Michael 2020-05-18 91 return err;
5c9a1cf7085795 Alice Michael 2020-05-18 92 }
5c9a1cf7085795 Alice Michael 2020-05-18 93 set_bit(__IECM_MB_INTR_MODE, adapter->flags);
5c9a1cf7085795 Alice Michael 2020-05-18 94 return 0;
87d2d1a0512b70 Alice Michael 2020-05-18 95 }
87d2d1a0512b70 Alice Michael 2020-05-18 96
87d2d1a0512b70 Alice Michael 2020-05-18 97 /**
87d2d1a0512b70 Alice Michael 2020-05-18 98 * iecm_get_mb_vec_id - Get vector index for mailbox
87d2d1a0512b70 Alice Michael 2020-05-18 99 * @adapter: adapter structure to access the vector chunks
87d2d1a0512b70 Alice Michael 2020-05-18 100 *
87d2d1a0512b70 Alice Michael 2020-05-18 101 * The first vector id in the requested vector chunks from the CP is for
87d2d1a0512b70 Alice Michael 2020-05-18 102 * the mailbox
87d2d1a0512b70 Alice Michael 2020-05-18 103 */
87d2d1a0512b70 Alice Michael 2020-05-18 @104 void iecm_get_mb_vec_id(struct iecm_adapter *adapter)
87d2d1a0512b70 Alice Michael 2020-05-18 105 {
5c9a1cf7085795 Alice Michael 2020-05-18 106 struct virtchnl_vector_chunks *vchunks;
5c9a1cf7085795 Alice Michael 2020-05-18 107 struct virtchnl_vector_chunk *chunk;
5c9a1cf7085795 Alice Michael 2020-05-18 108
5c9a1cf7085795 Alice Michael 2020-05-18 109 if (adapter->req_vec_chunks) {
5c9a1cf7085795 Alice Michael 2020-05-18 110 vchunks = &adapter->req_vec_chunks->vchunks;
5c9a1cf7085795 Alice Michael 2020-05-18 111 chunk = &vchunks->num_vchunk[0];
5c9a1cf7085795 Alice Michael 2020-05-18 112 adapter->mb_vector.v_idx = chunk->start_vector_id;
5c9a1cf7085795 Alice Michael 2020-05-18 113 } else {
5c9a1cf7085795 Alice Michael 2020-05-18 114 adapter->mb_vector.v_idx = 0;
5c9a1cf7085795 Alice Michael 2020-05-18 115 }
87d2d1a0512b70 Alice Michael 2020-05-18 116 }
87d2d1a0512b70 Alice Michael 2020-05-18 117
87d2d1a0512b70 Alice Michael 2020-05-18 118 /**
87d2d1a0512b70 Alice Michael 2020-05-18 119 * iecm_mb_intr_init - Initialize the mailbox interrupt
87d2d1a0512b70 Alice Michael 2020-05-18 120 * @adapter: adapter structure to store the mailbox vector
87d2d1a0512b70 Alice Michael 2020-05-18 121 */
87d2d1a0512b70 Alice Michael 2020-05-18 @122 int iecm_mb_intr_init(struct iecm_adapter *adapter)
87d2d1a0512b70 Alice Michael 2020-05-18 123 {
5c9a1cf7085795 Alice Michael 2020-05-18 124 int err = 0;
5c9a1cf7085795 Alice Michael 2020-05-18 125
5c9a1cf7085795 Alice Michael 2020-05-18 126 iecm_get_mb_vec_id(adapter);
5c9a1cf7085795 Alice Michael 2020-05-18 127 adapter->dev_ops.reg_ops.mb_intr_reg_init(adapter);
5c9a1cf7085795 Alice Michael 2020-05-18 128 adapter->irq_mb_handler = iecm_mb_intr_clean;
5c9a1cf7085795 Alice Michael 2020-05-18 129 err = iecm_mb_intr_req_irq(adapter);
5c9a1cf7085795 Alice Michael 2020-05-18 130 return err;
87d2d1a0512b70 Alice Michael 2020-05-18 131 }
87d2d1a0512b70 Alice Michael 2020-05-18 132
87d2d1a0512b70 Alice Michael 2020-05-18 133 /**
87d2d1a0512b70 Alice Michael 2020-05-18 134 * iecm_intr_distribute - Distribute MSIX vectors
87d2d1a0512b70 Alice Michael 2020-05-18 135 * @adapter: adapter structure to get the vports
87d2d1a0512b70 Alice Michael 2020-05-18 136 *
87d2d1a0512b70 Alice Michael 2020-05-18 137 * Distribute the MSIX vectors acquired from the OS to the vports based on the
87d2d1a0512b70 Alice Michael 2020-05-18 138 * num of vectors requested by each vport
87d2d1a0512b70 Alice Michael 2020-05-18 139 */
87d2d1a0512b70 Alice Michael 2020-05-18 @140 void iecm_intr_distribute(struct iecm_adapter *adapter)
87d2d1a0512b70 Alice Michael 2020-05-18 141 {
5c9a1cf7085795 Alice Michael 2020-05-18 142 struct iecm_vport *vport;
5c9a1cf7085795 Alice Michael 2020-05-18 143
5c9a1cf7085795 Alice Michael 2020-05-18 144 vport = adapter->vports[0];
5c9a1cf7085795 Alice Michael 2020-05-18 145 if (adapter->num_msix_entries != adapter->num_req_msix)
5c9a1cf7085795 Alice Michael 2020-05-18 146 vport->num_q_vectors = adapter->num_msix_entries -
5c9a1cf7085795 Alice Michael 2020-05-18 147 IECM_MAX_NONQ_VEC - IECM_MIN_RDMA_VEC;
87d2d1a0512b70 Alice Michael 2020-05-18 148 }
87d2d1a0512b70 Alice Michael 2020-05-18 149
:::::: The code at line 49 was first introduced by commit
:::::: 87d2d1a0512b70033f623da2e17b7cd91d4f6c25 iecm: Common module introduction and function stubs
:::::: TO: Alice Michael <alice.michael at intel.com>
:::::: CC: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 73643 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/intel-wired-lan/attachments/20200530/8800fa60/attachment-0001.bin>
More information about the Intel-wired-lan
mailing list