lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202108130209.RBTujrKD-lkp@intel.com>
Date:   Fri, 13 Aug 2021 02:03:15 +0800
From:   kernel test robot <lkp@...el.com>
To:     Wen Yang <wenyang@...ux.alibaba.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Corey Minyard <cminyard@...sta.com>
Subject: [ipmi:for-next 1/2] drivers/char/ipmi/ipmi_si_intf.c:689:5: error:
 expected ')' before 'msg'

tree:   https://github.com/cminyard/linux-ipmi for-next
head:   f68d16759343cdbe44de07b9569b0b992291d13c
commit: 8365203515c64c9f7c11d14cdcccdac58c793598 [1/2] ipmi: rate limit ipmi smi_event failure message
config: arc-randconfig-r011-20210812 (attached as .config)
compiler: arc-elf-gcc (GCC) 10.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
        # https://github.com/cminyard/linux-ipmi/commit/8365203515c64c9f7c11d14cdcccdac58c793598
        git remote add ipmi https://github.com/cminyard/linux-ipmi
        git fetch --no-tags ipmi for-next
        git checkout 8365203515c64c9f7c11d14cdcccdac58c793598
        # save the attached .config to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash

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

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/device.h:15,
                    from include/linux/acpi.h:15,
                    from include/linux/ipmi.h:21,
                    from drivers/char/ipmi/ipmi_si_intf.c:40:
   drivers/char/ipmi/ipmi_si_intf.c: In function 'handle_transaction_done':
>> drivers/char/ipmi/ipmi_si_intf.c:689:5: error: expected ')' before 'msg'
     689 |     msg[2]);
         |     ^~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   include/linux/dev_printk.h:176:3: note: in expansion of macro 'dev_warn'
     176 |   dev_level(dev, fmt, ##__VA_ARGS__);   \
         |   ^~~~~~~~~
   include/linux/dev_printk.h:188:2: note: in expansion of macro 'dev_level_ratelimited'
     188 |  dev_level_ratelimited(dev_warn, dev, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~~~~~
   drivers/char/ipmi/ipmi_si_intf.c:686:4: note: in expansion of macro 'dev_warn_ratelimited'
     686 |    dev_warn_ratelimited(smi_info->io.dev,
         |    ^~~~~~~~~~~~~~~~~~~~
>> drivers/char/ipmi/ipmi_si_intf.c:687:5: warning: format '%x' expects a matching 'unsigned int' argument [-Wformat=]
     687 |     "Couldn't get irq info: %x,\n"
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/dev_printk.h:19:22: note: in definition of macro 'dev_fmt'
      19 | #define dev_fmt(fmt) fmt
         |                      ^~~
   include/linux/dev_printk.h:176:3: note: in expansion of macro 'dev_warn'
     176 |   dev_level(dev, fmt, ##__VA_ARGS__);   \
         |   ^~~~~~~~~
   include/linux/dev_printk.h:188:2: note: in expansion of macro 'dev_level_ratelimited'
     188 |  dev_level_ratelimited(dev_warn, dev, fmt, ##__VA_ARGS__)
         |  ^~~~~~~~~~~~~~~~~~~~~
   drivers/char/ipmi/ipmi_si_intf.c:686:4: note: in expansion of macro 'dev_warn_ratelimited'
     686 |    dev_warn_ratelimited(smi_info->io.dev,
         |    ^~~~~~~~~~~~~~~~~~~~
   drivers/char/ipmi/ipmi_si_intf.c:687:30: note: format string is defined here
     687 |     "Couldn't get irq info: %x,\n"
         |                             ~^
         |                              |
         |                              unsigned int


vim +689 drivers/char/ipmi/ipmi_si_intf.c

   536	
   537	static void handle_transaction_done(struct smi_info *smi_info)
   538	{
   539		struct ipmi_smi_msg *msg;
   540	
   541		debug_timestamp("Done");
   542		switch (smi_info->si_state) {
   543		case SI_NORMAL:
   544			if (!smi_info->curr_msg)
   545				break;
   546	
   547			smi_info->curr_msg->rsp_size
   548				= smi_info->handlers->get_result(
   549					smi_info->si_sm,
   550					smi_info->curr_msg->rsp,
   551					IPMI_MAX_MSG_LENGTH);
   552	
   553			/*
   554			 * Do this here becase deliver_recv_msg() releases the
   555			 * lock, and a new message can be put in during the
   556			 * time the lock is released.
   557			 */
   558			msg = smi_info->curr_msg;
   559			smi_info->curr_msg = NULL;
   560			deliver_recv_msg(smi_info, msg);
   561			break;
   562	
   563		case SI_GETTING_FLAGS:
   564		{
   565			unsigned char msg[4];
   566			unsigned int  len;
   567	
   568			/* We got the flags from the SMI, now handle them. */
   569			len = smi_info->handlers->get_result(smi_info->si_sm, msg, 4);
   570			if (msg[2] != 0) {
   571				/* Error fetching flags, just give up for now. */
   572				smi_info->si_state = SI_NORMAL;
   573			} else if (len < 4) {
   574				/*
   575				 * Hmm, no flags.  That's technically illegal, but
   576				 * don't use uninitialized data.
   577				 */
   578				smi_info->si_state = SI_NORMAL;
   579			} else {
   580				smi_info->msg_flags = msg[3];
   581				handle_flags(smi_info);
   582			}
   583			break;
   584		}
   585	
   586		case SI_CLEARING_FLAGS:
   587		{
   588			unsigned char msg[3];
   589	
   590			/* We cleared the flags. */
   591			smi_info->handlers->get_result(smi_info->si_sm, msg, 3);
   592			if (msg[2] != 0) {
   593				/* Error clearing flags */
   594				dev_warn_ratelimited(smi_info->io.dev,
   595					 "Error clearing flags: %2.2x\n", msg[2]);
   596			}
   597			smi_info->si_state = SI_NORMAL;
   598			break;
   599		}
   600	
   601		case SI_GETTING_EVENTS:
   602		{
   603			smi_info->curr_msg->rsp_size
   604				= smi_info->handlers->get_result(
   605					smi_info->si_sm,
   606					smi_info->curr_msg->rsp,
   607					IPMI_MAX_MSG_LENGTH);
   608	
   609			/*
   610			 * Do this here becase deliver_recv_msg() releases the
   611			 * lock, and a new message can be put in during the
   612			 * time the lock is released.
   613			 */
   614			msg = smi_info->curr_msg;
   615			smi_info->curr_msg = NULL;
   616			if (msg->rsp[2] != 0) {
   617				/* Error getting event, probably done. */
   618				msg->done(msg);
   619	
   620				/* Take off the event flag. */
   621				smi_info->msg_flags &= ~EVENT_MSG_BUFFER_FULL;
   622				handle_flags(smi_info);
   623			} else {
   624				smi_inc_stat(smi_info, events);
   625	
   626				/*
   627				 * Do this before we deliver the message
   628				 * because delivering the message releases the
   629				 * lock and something else can mess with the
   630				 * state.
   631				 */
   632				handle_flags(smi_info);
   633	
   634				deliver_recv_msg(smi_info, msg);
   635			}
   636			break;
   637		}
   638	
   639		case SI_GETTING_MESSAGES:
   640		{
   641			smi_info->curr_msg->rsp_size
   642				= smi_info->handlers->get_result(
   643					smi_info->si_sm,
   644					smi_info->curr_msg->rsp,
   645					IPMI_MAX_MSG_LENGTH);
   646	
   647			/*
   648			 * Do this here becase deliver_recv_msg() releases the
   649			 * lock, and a new message can be put in during the
   650			 * time the lock is released.
   651			 */
   652			msg = smi_info->curr_msg;
   653			smi_info->curr_msg = NULL;
   654			if (msg->rsp[2] != 0) {
   655				/* Error getting event, probably done. */
   656				msg->done(msg);
   657	
   658				/* Take off the msg flag. */
   659				smi_info->msg_flags &= ~RECEIVE_MSG_AVAIL;
   660				handle_flags(smi_info);
   661			} else {
   662				smi_inc_stat(smi_info, incoming_messages);
   663	
   664				/*
   665				 * Do this before we deliver the message
   666				 * because delivering the message releases the
   667				 * lock and something else can mess with the
   668				 * state.
   669				 */
   670				handle_flags(smi_info);
   671	
   672				deliver_recv_msg(smi_info, msg);
   673			}
   674			break;
   675		}
   676	
   677		case SI_CHECKING_ENABLES:
   678		{
   679			unsigned char msg[4];
   680			u8 enables;
   681			bool irq_on;
   682	
   683			/* We got the flags from the SMI, now handle them. */
   684			smi_info->handlers->get_result(smi_info->si_sm, msg, 4);
   685			if (msg[2] != 0) {
   686				dev_warn_ratelimited(smi_info->io.dev,
 > 687					"Couldn't get irq info: %x,\n"
   688					"Maybe ok, but ipmi might run very slowly.\n"
 > 689					msg[2]);
   690				smi_info->si_state = SI_NORMAL;
   691				break;
   692			}
   693			enables = current_global_enables(smi_info, 0, &irq_on);
   694			if (smi_info->io.si_type == SI_BT)
   695				/* BT has its own interrupt enable bit. */
   696				check_bt_irq(smi_info, irq_on);
   697			if (enables != (msg[3] & GLOBAL_ENABLES_MASK)) {
   698				/* Enables are not correct, fix them. */
   699				msg[0] = (IPMI_NETFN_APP_REQUEST << 2);
   700				msg[1] = IPMI_SET_BMC_GLOBAL_ENABLES_CMD;
   701				msg[2] = enables | (msg[3] & ~GLOBAL_ENABLES_MASK);
   702				smi_info->handlers->start_transaction(
   703					smi_info->si_sm, msg, 3);
   704				smi_info->si_state = SI_SETTING_ENABLES;
   705			} else if (smi_info->supports_event_msg_buff) {
   706				smi_info->curr_msg = ipmi_alloc_smi_msg();
   707				if (!smi_info->curr_msg) {
   708					smi_info->si_state = SI_NORMAL;
   709					break;
   710				}
   711				start_getting_events(smi_info);
   712			} else {
   713				smi_info->si_state = SI_NORMAL;
   714			}
   715			break;
   716		}
   717	
   718		case SI_SETTING_ENABLES:
   719		{
   720			unsigned char msg[4];
   721	
   722			smi_info->handlers->get_result(smi_info->si_sm, msg, 4);
   723			if (msg[2] != 0)
   724				dev_warn_ratelimited(smi_info->io.dev,
   725					 "Could not set the global enables: 0x%x.\n",
   726					 msg[2]);
   727	
   728			if (smi_info->supports_event_msg_buff) {
   729				smi_info->curr_msg = ipmi_alloc_smi_msg();
   730				if (!smi_info->curr_msg) {
   731					smi_info->si_state = SI_NORMAL;
   732					break;
   733				}
   734				start_getting_events(smi_info);
   735			} else {
   736				smi_info->si_state = SI_NORMAL;
   737			}
   738			break;
   739		}
   740		}
   741	}
   742	

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

Download attachment ".config.gz" of type "application/gzip" (27304 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ