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] [thread-next>] [day] [month] [year] [list]
Message-ID: <3ecef801-7484-95ed-3e76-e7770146e626@redhat.com>
Date:   Fri, 10 Sep 2021 09:03:42 +0200
From:   Hans de Goede <hdegoede@...hat.com>
To:     kernel test robot <lkp@...el.com>,
        Fabio Aiuto <fabioaiuto83@...il.com>,
        Chanwoo Choi <cw00.choi@...sung.com>
Cc:     llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
        MyungJoo Ham <myungjoo.ham@...sung.com>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] extcon: extcon-axp288: use low level P-Unit semaphore
 lock for axp288 register accesses

Hi,

On 9/10/21 2:26 AM, kernel test robot wrote:
> Hi Fabio,
> 
> Thank you for the patch! Yet something to improve:
> 
> [auto build test ERROR on chanwoo-extcon/extcon-next]
> [also build test ERROR on v5.14 next-20210909]
> [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/Fabio-Aiuto/extcon-extcon-axp288-use-low-level-P-Unit-semaphore-lock-for-axp288-register-accesses/20210909-232054
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon.git extcon-next
> config: x86_64-randconfig-a011-20210908 (attached as .config)
> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
> 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/0day-ci/linux/commit/ecccd5dd3a8acfd5085a5cf9f9c97ed3d4b42a1f
>         git remote add linux-review https://github.com/0day-ci/linux
>         git fetch --no-tags linux-review Fabio-Aiuto/extcon-extcon-axp288-use-low-level-P-Unit-semaphore-lock-for-axp288-register-accesses/20210909-232054
>         git checkout ecccd5dd3a8acfd5085a5cf9f9c97ed3d4b42a1f
>         # 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: kernel test robot <lkp@...el.com>
> 
> All errors (new ones prefixed by >>):
> 
>>> drivers/extcon/extcon-axp288.c:219:2: error: implicit declaration of function 'iosf_mbi_block_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
>            iosf_mbi_block_punit_i2c_access();
>            ^
>>> drivers/extcon/extcon-axp288.c:259:2: error: implicit declaration of function 'iosf_mbi_unblock_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
>            iosf_mbi_unblock_punit_i2c_access();
>            ^
>    drivers/extcon/extcon-axp288.c:259:2: note: did you mean 'iosf_mbi_block_punit_i2c_access'?
>    drivers/extcon/extcon-axp288.c:219:2: note: 'iosf_mbi_block_punit_i2c_access' declared here
>            iosf_mbi_block_punit_i2c_access();
>            ^
>    drivers/extcon/extcon-axp288.c:317:2: error: implicit declaration of function 'iosf_mbi_block_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
>            iosf_mbi_block_punit_i2c_access();
>            ^
>    drivers/extcon/extcon-axp288.c:324:2: error: implicit declaration of function 'iosf_mbi_unblock_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
>            iosf_mbi_unblock_punit_i2c_access();
>            ^
>    drivers/extcon/extcon-axp288.c:397:2: error: implicit declaration of function 'iosf_mbi_block_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
>            iosf_mbi_block_punit_i2c_access();
>            ^
>    drivers/extcon/extcon-axp288.c:403:2: error: implicit declaration of function 'iosf_mbi_unblock_punit_i2c_access' [-Werror,-Wimplicit-function-declaration]
>            iosf_mbi_unblock_punit_i2c_access();
>            ^
>    6 errors generated.

Ah yes, I should have caught this, we had the same issue with a similar patch to
the axp288-fuel-gauge driver.

The fix is this:

diff --git a/drivers/extcon/Kconfig b/drivers/extcon/Kconfig
index c69d40ae5619..aab87c9b35c8 100644
--- a/drivers/extcon/Kconfig
+++ b/drivers/extcon/Kconfig
@@ -23,7 +23,7 @@ config EXTCON_ADC_JACK
 
 config EXTCON_AXP288
 	tristate "X-Power AXP288 EXTCON support"
-	depends on MFD_AXP20X && USB_SUPPORT && X86 && ACPI
+	depends on MFD_AXP20X && USB_SUPPORT && X86 && ACPI && IOSF_MBI
 	select USB_ROLE_SWITCH
 	help
 	  Say Y here to enable support for USB peripheral detection

The new depends on is fine since all boards which use the AXP288 should
always have IOSF_MBI enabled anyways.

Fabio, can you send a v2 with this Kconfig change added please ?

(and please also add my earlier Reviewed-by and Tested-by to the v2)


> 
> 
> vim +/iosf_mbi_block_punit_i2c_access +219 drivers/extcon/extcon-axp288.c
> 
>    211	
>    212	static int axp288_handle_chrg_det_event(struct axp288_extcon_info *info)
>    213	{
>    214		int ret, stat, cfg;
>    215		u8 chrg_type;
>    216		unsigned int cable = info->previous_cable;
>    217		bool vbus_attach = false;
>    218	
>  > 219		iosf_mbi_block_punit_i2c_access();
>    220	
>    221		vbus_attach = axp288_get_vbus_attach(info);
>    222		if (!vbus_attach)
>    223			goto no_vbus;
>    224	
>    225		/* Check charger detection completion status */
>    226		ret = regmap_read(info->regmap, AXP288_BC_GLOBAL_REG, &cfg);
>    227		if (ret < 0)
>    228			goto dev_det_ret;
>    229		if (cfg & BC_GLOBAL_DET_STAT) {
>    230			dev_dbg(info->dev, "can't complete the charger detection\n");
>    231			goto dev_det_ret;
>    232		}
>    233	
>    234		ret = regmap_read(info->regmap, AXP288_BC_DET_STAT_REG, &stat);
>    235		if (ret < 0)
>    236			goto dev_det_ret;
>    237	
>    238		chrg_type = (stat & DET_STAT_MASK) >> DET_STAT_SHIFT;
>    239	
>    240		switch (chrg_type) {
>    241		case DET_STAT_SDP:
>    242			dev_dbg(info->dev, "sdp cable is connected\n");
>    243			cable = EXTCON_CHG_USB_SDP;
>    244			break;
>    245		case DET_STAT_CDP:
>    246			dev_dbg(info->dev, "cdp cable is connected\n");
>    247			cable = EXTCON_CHG_USB_CDP;
>    248			break;
>    249		case DET_STAT_DCP:
>    250			dev_dbg(info->dev, "dcp cable is connected\n");
>    251			cable = EXTCON_CHG_USB_DCP;
>    252			break;
>    253		default:
>    254			dev_warn(info->dev, "unknown (reserved) bc detect result\n");
>    255			cable = EXTCON_CHG_USB_SDP;
>    256		}
>    257	
>    258	no_vbus:
>  > 259		iosf_mbi_unblock_punit_i2c_access();
>    260	
>    261		extcon_set_state_sync(info->edev, info->previous_cable, false);
>    262		if (info->previous_cable == EXTCON_CHG_USB_SDP)
>    263			extcon_set_state_sync(info->edev, EXTCON_USB, false);
>    264	
>    265		if (vbus_attach) {
>    266			extcon_set_state_sync(info->edev, cable, vbus_attach);
>    267			if (cable == EXTCON_CHG_USB_SDP)
>    268				extcon_set_state_sync(info->edev, EXTCON_USB,
>    269							vbus_attach);
>    270	
>    271			info->previous_cable = cable;
>    272		}
>    273	
>    274		if (info->role_sw && info->vbus_attach != vbus_attach) {
>    275			info->vbus_attach = vbus_attach;
>    276			/* Setting the role can take a while */
>    277			queue_work(system_long_wq, &info->role_work);
>    278		}
>    279	
>    280		return 0;
>    281	
>    282	dev_det_ret:
>    283		iosf_mbi_unblock_punit_i2c_access();
>    284	
>    285		if (ret < 0)
>    286			dev_err(info->dev, "failed to detect BC Mod\n");
>    287	
>    288		return ret;
>    289	}
>    290	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ