Hi, On 1/8/21 9:52 AM, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge > head: 2691096b51bae3563007c4b0188c3eec9878224b > commit: b417d9c7404df67b9be0104585fefb2ca8d36677 [20/29] ACPI: platform-profile: Pass profile pointer to driver callbacks > config: x86_64-randconfig-r011-20210108 (attached as .config) > compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 5c951623bc8965fa1e89660f2f5f4a2944e4981a) > 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 > # https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?id=b417d9c7404df67b9be0104585fefb2ca8d36677 > git remote add pm https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git > git fetch --no-tags pm bleeding-edge > git checkout b417d9c7404df67b9be0104585fefb2ca8d36677 > # 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@xxxxxxxxx> > > All errors (new ones prefixed by >>): > >>> drivers/acpi/platform_profile.c:67:33: error: passing 'const struct platform_profile_handler *' to parameter of type 'struct platform_profile_handler *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] > err = cur_profile->profile_get(cur_profile, &profile); > ^~~~~~~~~~~ > drivers/acpi/platform_profile.c:107:33: error: passing 'const struct platform_profile_handler *' to parameter of type 'struct platform_profile_handler *' discards qualifiers [-Werror,-Wincompatible-pointer-types-discards-qualifiers] > err = cur_profile->profile_set(cur_profile, i); > ^~~~~~~~~~~ > 2 errors generated. Ugh, so that means that the current version of the "ACPI: platform-profile: Pass profile pointer to driver callbacks" patch is no good. Since this is causing compile errors I assume that it will be dropped from the bleeding-edge branch. Is that right Rafael? I believe that the best fix is to just drop the const everywhere, neither of the 2 planned uses has its platform_profile_handler defined as const: 1. In the thinkpad_acpi case it is not const, because of using set_bit calls to set the choices bits. 2. In the ideapad-laptop case it is not const because it will be embedded in the dynamically allocated drv_data struct. Jiaxun, can you do a new version where you drop the const (and explain why this is done in the commit message) ? Regards, Hans > > > vim +67 drivers/acpi/platform_profile.c > > 50 > 51 static ssize_t platform_profile_show(struct device *dev, > 52 struct device_attribute *attr, > 53 char *buf) > 54 { > 55 enum platform_profile_option profile = PLATFORM_PROFILE_BALANCED; > 56 int err; > 57 > 58 err = mutex_lock_interruptible(&profile_lock); > 59 if (err) > 60 return err; > 61 > 62 if (!cur_profile) { > 63 mutex_unlock(&profile_lock); > 64 return -ENODEV; > 65 } > 66 > > 67 err = cur_profile->profile_get(cur_profile, &profile); > 68 mutex_unlock(&profile_lock); > 69 if (err) > 70 return err; > 71 > 72 /* Check that profile is valid index */ > 73 if (WARN_ON((profile < 0) || (profile >= ARRAY_SIZE(profile_names)))) > 74 return -EIO; > 75 > 76 return sysfs_emit(buf, "%s\n", profile_names[profile]); > 77 } > 78 > > --- > 0-DAY CI Kernel Test Service, Intel Corporation > https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx >