Re: [PATCH v1 07/34] acpi/nfit: Move handler installing logic to driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 5/12/2023 7:11 PM, kernel test robot wrote:
> Hi Michal,

Some of the drivers that I modifed weren't switched for compilation in my default .config file.
That's why I haven't noticed some of the compilation failures. Will take .config from here
https://download.01.org/0day-ci/archive/20230513/202305130350.ZEskVtFO-lkp@xxxxxxxxx/config
fix the errors and re-send v2.

Regards,
Michał

>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on rafael-pm/linux-next]
> [also build test ERROR on chrome-platform/for-next groeck-staging/hwmon-next linus/master v6.4-rc1 next-20230512]
> [cannot apply to jic23-iio/togreg nvdimm/libnvdimm-for-next nvdimm/dax-misc crng-random/master]
> [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#_base_tree_information]
>
> url:    https://github.com/intel-lab-lkp/linux/commits/Michal-Wilczynski/acpi-Adjust-functions-installing-bus-event-handlers/20230512-220607
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
> patch link:    https://lore.kernel.org/r/20230512140222.124868-8-michal.wilczynski%40intel.com
> patch subject: [PATCH v1 07/34] acpi/nfit: Move handler installing logic to driver
> config: arm64-randconfig-r032-20230511 (https://download.01.org/0day-ci/archive/20230513/202305130006.7vOawF8K-lkp@xxxxxxxxx/config)
> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project b0fb98227c90adf2536c9ad644a74d5e92961111)
> 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 arm64 cross compiling tool for clang build
>         # apt-get install binutils-aarch64-linux-gnu
>         # https://github.com/intel-lab-lkp/linux/commit/2f0865bfe3ea129ced1df996b1f80fb5d44133e8
>         git remote add linux-review https://github.com/intel-lab-lkp/linux
>         git fetch --no-tags linux-review Michal-Wilczynski/acpi-Adjust-functions-installing-bus-event-handlers/20230512-220607
>         git checkout 2f0865bfe3ea129ced1df996b1f80fb5d44133e8
>         # save the config file
>         mkdir build_dir && cp config build_dir/.config
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/acpi/nfit/
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Link: https://lore.kernel.org/oe-kbuild-all/202305130006.7vOawF8K-lkp@xxxxxxxxx/
>
> All errors (new ones prefixed by >>):
>
>    drivers/acpi/nfit/core.c:1717:13: warning: no previous prototype for function 'nfit_intel_shutdown_status' [-Wmissing-prototypes]
>    __weak void nfit_intel_shutdown_status(struct nfit_mem *nfit_mem)
>                ^
>    drivers/acpi/nfit/core.c:1717:8: note: declare 'static' if the function is not intended to be used outside of this translation unit
>    __weak void nfit_intel_shutdown_status(struct nfit_mem *nfit_mem)
>           ^
>           static 
>>> drivers/acpi/nfit/core.c:3376:43: error: use of undeclared identifier 'device'
>            return acpi_device_install_event_handler(device, ACPI_DEVICE_NOTIFY, acpi_nfit_notify);
>                                                     ^
>>> drivers/acpi/nfit/core.c:3376:71: error: use of undeclared identifier 'acpi_nfit_notify'
>            return acpi_device_install_event_handler(device, ACPI_DEVICE_NOTIFY, acpi_nfit_notify);
>                                                                                 ^
>    drivers/acpi/nfit/core.c:3381:35: error: use of undeclared identifier 'device'
>            acpi_device_remove_event_handler(device, ACPI_DEVICE_NOTIFY, acpi_nfit_notify);
>                                             ^
>    drivers/acpi/nfit/core.c:3381:63: error: use of undeclared identifier 'acpi_nfit_notify'
>            acpi_device_remove_event_handler(device, ACPI_DEVICE_NOTIFY, acpi_nfit_notify);
>                                                                         ^
>>> drivers/acpi/nfit/core.c:3457:15: error: use of undeclared identifier 'adev'
>            device_lock(&adev->dev);
>                         ^
>    drivers/acpi/nfit/core.c:3458:22: error: use of undeclared identifier 'adev'
>            __acpi_nfit_notify(&adev->dev, adev->handle, event);
>                                ^
>    drivers/acpi/nfit/core.c:3458:33: error: use of undeclared identifier 'adev'
>            __acpi_nfit_notify(&adev->dev, adev->handle, event);
>                                           ^
>    drivers/acpi/nfit/core.c:3459:17: error: use of undeclared identifier 'adev'
>            device_unlock(&adev->dev);
>                           ^
>    1 warning and 8 errors generated.
>
>
> vim +/device +3376 drivers/acpi/nfit/core.c
>
>   3314	
>   3315	static int acpi_nfit_add(struct acpi_device *adev)
>   3316	{
>   3317		struct acpi_buffer buf = { ACPI_ALLOCATE_BUFFER, NULL };
>   3318		struct acpi_nfit_desc *acpi_desc;
>   3319		struct device *dev = &adev->dev;
>   3320		struct acpi_table_header *tbl;
>   3321		acpi_status status = AE_OK;
>   3322		acpi_size sz;
>   3323		int rc = 0;
>   3324	
>   3325		status = acpi_get_table(ACPI_SIG_NFIT, 0, &tbl);
>   3326		if (ACPI_FAILURE(status)) {
>   3327			/* The NVDIMM root device allows OS to trigger enumeration of
>   3328			 * NVDIMMs through NFIT at boot time and re-enumeration at
>   3329			 * root level via the _FIT method during runtime.
>   3330			 * This is ok to return 0 here, we could have an nvdimm
>   3331			 * hotplugged later and evaluate _FIT method which returns
>   3332			 * data in the format of a series of NFIT Structures.
>   3333			 */
>   3334			dev_dbg(dev, "failed to find NFIT at startup\n");
>   3335			return 0;
>   3336		}
>   3337	
>   3338		rc = devm_add_action_or_reset(dev, acpi_nfit_put_table, tbl);
>   3339		if (rc)
>   3340			return rc;
>   3341		sz = tbl->length;
>   3342	
>   3343		acpi_desc = devm_kzalloc(dev, sizeof(*acpi_desc), GFP_KERNEL);
>   3344		if (!acpi_desc)
>   3345			return -ENOMEM;
>   3346		acpi_nfit_desc_init(acpi_desc, &adev->dev);
>   3347	
>   3348		/* Save the acpi header for exporting the revision via sysfs */
>   3349		acpi_desc->acpi_header = *tbl;
>   3350	
>   3351		/* Evaluate _FIT and override with that if present */
>   3352		status = acpi_evaluate_object(adev->handle, "_FIT", NULL, &buf);
>   3353		if (ACPI_SUCCESS(status) && buf.length > 0) {
>   3354			union acpi_object *obj = buf.pointer;
>   3355	
>   3356			if (obj->type == ACPI_TYPE_BUFFER)
>   3357				rc = acpi_nfit_init(acpi_desc, obj->buffer.pointer,
>   3358						obj->buffer.length);
>   3359			else
>   3360				dev_dbg(dev, "invalid type %d, ignoring _FIT\n",
>   3361					(int) obj->type);
>   3362			kfree(buf.pointer);
>   3363		} else
>   3364			/* skip over the lead-in header table */
>   3365			rc = acpi_nfit_init(acpi_desc, (void *) tbl
>   3366					+ sizeof(struct acpi_table_nfit),
>   3367					sz - sizeof(struct acpi_table_nfit));
>   3368	
>   3369		if (rc)
>   3370			return rc;
>   3371	
>   3372		rc = devm_add_action_or_reset(dev, acpi_nfit_shutdown, acpi_desc);
>   3373		if (rc)
>   3374			return rc;
>   3375	
>> 3376		return acpi_device_install_event_handler(device, ACPI_DEVICE_NOTIFY, acpi_nfit_notify);
>   3377	}
>   3378	
>   3379	static void acpi_nfit_remove(struct acpi_device *adev)
>   3380	{
>   3381		acpi_device_remove_event_handler(device, ACPI_DEVICE_NOTIFY, acpi_nfit_notify);
>   3382		/* see acpi_nfit_unregister */
>   3383	}
>   3384	
>   3385	static void acpi_nfit_update_notify(struct device *dev, acpi_handle handle)
>   3386	{
>   3387		struct acpi_nfit_desc *acpi_desc = dev_get_drvdata(dev);
>   3388		struct acpi_buffer buf = { ACPI_ALLOCATE_BUFFER, NULL };
>   3389		union acpi_object *obj;
>   3390		acpi_status status;
>   3391		int ret;
>   3392	
>   3393		if (!dev->driver) {
>   3394			/* dev->driver may be null if we're being removed */
>   3395			dev_dbg(dev, "no driver found for dev\n");
>   3396			return;
>   3397		}
>   3398	
>   3399		if (!acpi_desc) {
>   3400			acpi_desc = devm_kzalloc(dev, sizeof(*acpi_desc), GFP_KERNEL);
>   3401			if (!acpi_desc)
>   3402				return;
>   3403			acpi_nfit_desc_init(acpi_desc, dev);
>   3404		} else {
>   3405			/*
>   3406			 * Finish previous registration before considering new
>   3407			 * regions.
>   3408			 */
>   3409			flush_workqueue(nfit_wq);
>   3410		}
>   3411	
>   3412		/* Evaluate _FIT */
>   3413		status = acpi_evaluate_object(handle, "_FIT", NULL, &buf);
>   3414		if (ACPI_FAILURE(status)) {
>   3415			dev_err(dev, "failed to evaluate _FIT\n");
>   3416			return;
>   3417		}
>   3418	
>   3419		obj = buf.pointer;
>   3420		if (obj->type == ACPI_TYPE_BUFFER) {
>   3421			ret = acpi_nfit_init(acpi_desc, obj->buffer.pointer,
>   3422					obj->buffer.length);
>   3423			if (ret)
>   3424				dev_err(dev, "failed to merge updated NFIT\n");
>   3425		} else
>   3426			dev_err(dev, "Invalid _FIT\n");
>   3427		kfree(buf.pointer);
>   3428	}
>   3429	
>   3430	static void acpi_nfit_uc_error_notify(struct device *dev, acpi_handle handle)
>   3431	{
>   3432		struct acpi_nfit_desc *acpi_desc = dev_get_drvdata(dev);
>   3433	
>   3434		if (acpi_desc->scrub_mode == HW_ERROR_SCRUB_ON)
>   3435			acpi_nfit_ars_rescan(acpi_desc, ARS_REQ_LONG);
>   3436		else
>   3437			acpi_nfit_ars_rescan(acpi_desc, ARS_REQ_SHORT);
>   3438	}
>   3439	
>   3440	void __acpi_nfit_notify(struct device *dev, acpi_handle handle, u32 event)
>   3441	{
>   3442		dev_dbg(dev, "event: 0x%x\n", event);
>   3443	
>   3444		switch (event) {
>   3445		case NFIT_NOTIFY_UPDATE:
>   3446			return acpi_nfit_update_notify(dev, handle);
>   3447		case NFIT_NOTIFY_UC_MEMORY_ERROR:
>   3448			return acpi_nfit_uc_error_notify(dev, handle);
>   3449		default:
>   3450			return;
>   3451		}
>   3452	}
>   3453	EXPORT_SYMBOL_GPL(__acpi_nfit_notify);
>   3454	
>   3455	static void acpi_nfit_notify(acpi_handle handle, u32 event, void *data)
>   3456	{
>> 3457		device_lock(&adev->dev);
>   3458		__acpi_nfit_notify(&adev->dev, adev->handle, event);
>   3459		device_unlock(&adev->dev);
>   3460	}
>   3461	
>




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux