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>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202310181522.ndHXtUlU-lkp@intel.com>
Date:   Wed, 18 Oct 2023 15:45:16 +0800
From:   kernel test robot <lkp@...el.com>
To:     liuchang_125125@....com, jejb@...ux.ibm.com,
        martin.petersen@...cle.com, linux-scsi@...r.kernel.org,
        linux-kernel@...r.kernel.org
Cc:     oe-kbuild-all@...ts.linux.dev, mark.tao@...hubtech.com,
        shaper.liu@...hubtech.com, thomas.hu@...hubtech.com,
        chevron.li@...hubtech.com, charl.liu@...hubtech.com,
        Charl Liu <liuchang_125125@....com>
Subject: Re: [PATCH 7/9] scsi: bht: main: Add the source files related to
 driver setting management

Hi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 401644852d0b2a278811de38081be23f74b5bb04]

url:    https://github.com/intel-lab-lkp/linux/commits/liuchang_125125-163-com/scsi-Update-Kconfig-and-Makefile-for-supporting-Bayhub-s-SD-MMC-Card-interface-driver/20231017-123349
base:   401644852d0b2a278811de38081be23f74b5bb04
patch link:    https://lore.kernel.org/r/20231013083429.10347-1-liuchang_125125%40163.com
patch subject: [PATCH 7/9] scsi: bht: main: Add the source files related to driver setting management
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20231018/202310181522.ndHXtUlU-lkp@intel.com/config)
compiler: sparc64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231018/202310181522.ndHXtUlU-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202310181522.ndHXtUlU-lkp@intel.com/

All warnings (new ones prefixed by >>):

   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/main/autotimerfunc.c:57:6: warning: no previous prototype for 'func_timer_callback' [-Wmissing-prototypes]
      57 | void func_timer_callback(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/main/autotimerfunc.c:158:6: warning: no previous prototype for 'func_autotimer_init' [-Wmissing-prototypes]
     158 | void func_autotimer_init(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/main/autotimerfunc.c:209:6: warning: no previous prototype for 'func_timer_thread' [-Wmissing-prototypes]
     209 | void func_timer_thread(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/main/autotimerfunc.c:303:6: warning: no previous prototype for 'func_autotimer_stop' [-Wmissing-prototypes]
     303 | void func_autotimer_stop(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/main/autotimerfunc.c:315:6: warning: no previous prototype for 'func_autotimer_start' [-Wmissing-prototypes]
     315 | void func_autotimer_start(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/bht/main/autotimerfunc.c:326:6: warning: no previous prototype for 'func_autotimer_cancel' [-Wmissing-prototypes]
     326 | void func_autotimer_cancel(bht_dev_ext_t *pdx)
         |      ^~~~~~~~~~~~~~~~~~~~~
--
   cc1: warning: /drivers/scsi: No such file or directory [-Wmissing-include-dirs]
>> drivers/scsi/bht/main/pmfunc.c:29:6: warning: no previous prototype for 'pm_init' [-Wmissing-prototypes]
      29 | void pm_init(bht_dev_ext_t *pdx)
         |      ^~~~~~~


vim +/func_timer_callback +57 drivers/scsi/bht/main/autotimerfunc.c

    43	
    44	/*
    45	 * Function Name: func_timer_callback
    46	 * Abstract: This Function is used to calculate timer tick
    47	 *
    48	 * Input:
    49	 *	bht_dev_ext_t *pdx
    50	 *
    51	 *
    52	 * Notes:
    53	 *
    54	 *        so giving the routine another name requires you to modify the build tools.
    55	 */
    56	
  > 57	void func_timer_callback(bht_dev_ext_t *pdx)
    58	{
    59		u32 cur_time, interval;
    60		bool event = FALSE;
    61	
    62		DbgInfo(MODULE_AUTOTIMER, FEATURE_TIMER_TRACE, 0, "Enter %s\n",
    63			__func__);
    64		if (pdx->auto_timer.enable == FALSE || pdx->auto_timer.cancel)
    65			goto exit;
    66	
    67		if (pdx->auto_timer.stop) {
    68			autotimer_clear(pdx);
    69			goto exit;
    70		}
    71	
    72		/* If card not workable don't use timer */
    73		if (pdx->card.card_present == FALSE)
    74			goto exit;
    75		if (pdx->card.card_type == CARD_NONE
    76		    || pdx->card.card_type == CARD_ERROR)
    77			goto exit;
    78		if (pdx->card.state == CARD_STATE_POWEROFF)
    79			goto exit;
    80		/* If rtd3 entered not do below steps */
    81		DbgInfo(MODULE_AUTOTIMER, FEATURE_TIMER_TRACE, 0,
    82			"auto timer really work\n");
    83	
    84		/* calculate the real interval */
    85		cur_time = os_get_cur_tick();
    86		if (pdx->auto_timer.last_tick == 0) {
    87			pdx->auto_timer.last_tick = cur_time;
    88			interval = AUTO_TIMER_TICK;
    89		} else {
    90			interval = cur_time - pdx->auto_timer.last_tick;
    91			pdx->auto_timer.last_tick = cur_time;
    92		}
    93	
    94		/* update and check timeout for each tick */
    95		if (pdx->auto_timer.auto_cmd12_enable && pdx->card.has_built_inf) {
    96			pdx->auto_timer.auto_cmd12_tick += interval;
    97			if (pdx->auto_timer.auto_cmd12_tick >=
    98			    pdx->auto_timer.auto_cmd12_time)
    99				event = TRUE;
   100		}
   101	
   102		if (pdx->auto_timer.auto_dmt_enable && pdx->card.card_type == CARD_UHS2
   103		    && pdx->card.state == CARD_STATE_WORKING) {
   104			pdx->auto_timer.auto_dmt_tick += interval;
   105			if (pdx->auto_timer.auto_dmt_tick >=
   106			    pdx->auto_timer.auto_dmt_time)
   107				event = TRUE;
   108		}
   109	
   110		if (pdx->auto_timer.auto_led_off_enable && (pdx->host.led_on)) {
   111			pdx->auto_timer.auto_led_off_tick += interval;
   112			if (pdx->auto_timer.auto_led_off_tick >=
   113			    pdx->auto_timer.auto_led_off_time)
   114				event = TRUE;
   115		}
   116	
   117		if (pdx->auto_timer.auto_poweroff_enable) {
   118			pdx->auto_timer.auto_poweroff_tick += interval;
   119			if (pdx->auto_timer.auto_poweroff_tick >=
   120			    pdx->auto_timer.auto_poweroff_time)
   121				event = TRUE;
   122		}
   123	
   124		if (pdx->auto_timer.cancel || pdx->auto_timer.stop)
   125			goto exit;
   126	
   127		if (event) {
   128			DbgInfo(MODULE_AUTOTIMER, FEATURE_TIMER_TRACE, 0,
   129				"auto timer set event\n");
   130	
   131	#if CFG_OS_LINUX
   132			os_set_event(&pdx->os, EVENT_AUTO_TIMER);
   133	#else
   134			os_set_event(pdx, &pdx->os, EVENT_TASK_OCCUR, EVENT_AUTO_TIMER);
   135	#endif
   136	
   137		}
   138		os_start_timer(pdx, &pdx->os, TIMER_AUTO, AUTO_TIMER_TICK);
   139	
   140	exit:
   141		DbgInfo(MODULE_AUTOTIMER, FEATURE_TIMER_TRACE, 0, "Exit %s\n",
   142			__func__);
   143	}
   144	
   145	/*
   146	 * Function Name: func_autotimer_init
   147	 * Abstract: This Function is used to init timer function variables
   148	 *
   149	 * Input:
   150	 *	bht_dev_ext_t *pdx
   151	 *
   152	 *
   153	 * Notes:
   154	 *
   155	 *        so giving the routine another name requires you to modify the build tools.
   156	 */
   157	
 > 158	void func_autotimer_init(bht_dev_ext_t *pdx)
   159	{
   160		cfg_item_t *cfg = pdx->cfg;
   161	
   162		os_memset(&pdx->auto_timer, 0, sizeof(pdx->auto_timer));
   163	
   164		pdx->auto_timer.auto_dmt_time =
   165		    cfg->timer_item.auto_dormant_timer.time_ms;
   166		pdx->auto_timer.auto_dmt_enable =
   167		    (bool)cfg->timer_item.auto_dormant_timer.enable_dmt_func;
   168		pdx->auto_timer.enable_hibernate =
   169		    (bool)cfg->timer_item.auto_dormant_timer.enable_hbr;
   170	
   171		pdx->auto_timer.auto_poweroff_enable = FALSE;
   172		pdx->auto_timer.auto_poweroff_time = 10 * 1000;
   173	
   174		pdx->auto_timer.auto_led_off_enable = pdx->host.feature.hw_led_fix;
   175		/* led off set to 1s */
   176		pdx->auto_timer.auto_led_off_time = 1000;
   177	
   178		pdx->auto_timer.enable = pdx->auto_timer.auto_cmd12_enable |
   179		    pdx->auto_timer.auto_poweroff_enable |
   180		    pdx->auto_timer.auto_dmt_enable |
   181		    pdx->auto_timer.auto_led_off_enable;
   182	
   183		DbgInfo(MODULE_AUTOTIMER, FEATURE_DRIVER_INIT, NOT_TO_RAM,
   184			"Autopower off enable=%d time=%dms\n",
   185			pdx->auto_timer.auto_poweroff_enable,
   186			pdx->auto_timer.auto_poweroff_time);
   187		DbgInfo(MODULE_AUTOTIMER, FEATURE_DRIVER_INIT, NOT_TO_RAM,
   188			"Autodmt=%d time=%dms bhrb=%d\n",
   189			pdx->auto_timer.auto_dmt_enable, pdx->auto_timer.auto_dmt_time,
   190			pdx->auto_timer.enable_hibernate);
   191		DbgInfo(MODULE_AUTOTIMER, FEATURE_DRIVER_INIT, NOT_TO_RAM,
   192			"AutoStopInf enable=%d time=%dms\n",
   193			pdx->auto_timer.auto_cmd12_enable,
   194			pdx->auto_timer.auto_cmd12_time);
   195	}
   196	
   197	/*
   198	 * Function Name: func_timer_thread
   199	 * Abstract: This Function is used to calculate timer tick
   200	 *
   201	 * Input:
   202	 *	bht_dev_ext_t *pdx
   203	 *
   204	 *
   205	 * Notes:
   206	 *
   207	 *        This function is called by thread to do real job
   208	 */
 > 209	void func_timer_thread(bht_dev_ext_t *pdx)
   210	{
   211		int busy = 0;
   212	
   213		DbgInfo(MODULE_AUTOTIMER, FEATURE_TIMER_TRACE, 0, "Enter %s\n",
   214			__func__);
   215	
   216		if (pdx->auto_timer.enable == FALSE || pdx->auto_timer.cancel
   217		    || pdx->auto_timer.stop)
   218			goto clear;
   219	
   220		/* If card not workable don't use timer */
   221		if (pdx->card.card_present == FALSE)
   222			goto clear;
   223		if (pdx->card.card_type == CARD_NONE
   224		    || pdx->card.card_type == CARD_ERROR)
   225			goto clear;
   226		if (pdx->card.state == CARD_STATE_POWEROFF)
   227			goto clear;
   228	
   229		/* If rtd3 entered not call below function */
   230	
   231		if (pdx->auto_timer.auto_poweroff_enable) {
   232			if (pdx->auto_timer.auto_poweroff_tick >=
   233			    pdx->auto_timer.auto_poweroff_time) {
   234				DbgInfo(MODULE_AUTOTIMER, FEATURE_CARD_OPS, 0,
   235					"auto poweroff\n");
   236				if (busy == 0) {
   237					os_set_dev_busy(pdx);
   238					busy = 1;
   239				}
   240				card_power_off(&pdx->card, FALSE);
   241				autotimer_clear(pdx);
   242				goto next;
   243			}
   244		}
   245	
   246		if (pdx->auto_timer.auto_cmd12_enable && pdx->card.has_built_inf) {
   247			if (pdx->auto_timer.auto_cmd12_tick >=
   248			    pdx->auto_timer.auto_cmd12_time) {
   249				if (busy == 0) {
   250					os_set_dev_busy(pdx);
   251					busy = 1;
   252				}
   253				pdx->auto_timer.auto_cmd12_tick = 0;
   254				DbgInfo(MODULE_AUTOTIMER, FEATURE_CARD_OPS, 0,
   255					"auto stop infinite\n");
   256				card_stop_infinite(&pdx->card, TRUE, NULL);
   257			}
   258		}
   259	
   260		if (pdx->auto_timer.auto_dmt_enable && pdx->card.card_type == CARD_UHS2
   261		    && pdx->card.state == CARD_STATE_WORKING) {
   262			if (pdx->auto_timer.auto_dmt_tick >=
   263			    pdx->auto_timer.auto_dmt_time) {
   264				if (busy == 0) {
   265					os_set_dev_busy(pdx);
   266					busy = 1;
   267				}
   268				pdx->auto_timer.auto_dmt_tick = 0;
   269				DbgInfo(MODULE_AUTOTIMER, FEATURE_CARD_OPS, 0,
   270					"auto enter sleep\n");
   271				card_enter_sleep(&pdx->card, TRUE,
   272						 pdx->auto_timer.enable_hibernate);
   273			}
   274		}
   275	
   276		if (pdx->auto_timer.auto_led_off_enable && (pdx->host.led_on)) {
   277			if (pdx->auto_timer.auto_led_off_tick >=
   278			    pdx->auto_timer.auto_led_off_time) {
   279				if (busy == 0) {
   280					os_set_dev_busy(pdx);
   281					busy = 1;
   282				}
   283				DbgInfo(MODULE_AUTOTIMER, FEATURE_CARD_OPS, 0,
   284					"auto led off\n");
   285				pdx->auto_timer.auto_led_off_tick = 0;
   286				host_led_ctl(&pdx->host, FALSE);
   287			}
   288		}
   289	
   290	next:
   291		if (busy)
   292			os_set_dev_idle(pdx);
   293		goto exit;
   294	
   295	clear:
   296		autotimer_clear(pdx);
   297	
   298	exit:
   299		DbgInfo(MODULE_AUTOTIMER, FEATURE_TIMER_TRACE, 0, "Exit %s\n",
   300			__func__);
   301	}
   302	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ