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]
Date:   Tue, 5 Jun 2018 19:14:33 +0300
From:   Andy Shevchenko <andy.shevchenko@...il.com>
To:     Yisheng Xie <xieyisheng1@...wei.com>
Cc:     Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Zhang Rui <rui.zhang@...el.com>,
        Eduardo Valentin <edubezval@...il.com>,
        Linux PM <linux-pm@...r.kernel.org>
Subject: Re: [PATCH 19/33] thermal: db8500: use match_string() helper

On Wed, May 23, 2018 at 10:47 AM, Yisheng Xie <xieyisheng1@...wei.com> wrote:
> Hi Andy,
>
> On 2018/5/22 6:00, Andy Shevchenko wrote:
>> On Mon, May 21, 2018 at 2:57 PM, Yisheng Xie <xieyisheng1@...wei.com> wrote:
>>> match_string() returns the index of an array for a matching string,
>>> which can be used intead of open coded variant.
>>
>>> +       i = match_string((const char **)trip_point->cdev_name,
>>
>> Casting looks ugly. You need to constify the variable itself.
> When I tried to const cdev_name like:
> +++ b/include/linux/platform_data/db8500_thermal.h
> @@ -27,7 +27,7 @@
>  struct db8500_trip_point {
>         unsigned long temp;
>         enum thermal_trip_type type;
> -       char cdev_name[COOLING_DEV_MAX][THERMAL_NAME_LENGTH];
> +       char const cdev_name[COOLING_DEV_MAX][THERMAL_NAME_LENGTH]; // const char cdev_name[COOLING_DEV_MAX][THERMAL_NAME_LENGTH] will also the same
>  };
>
> The compiler will also warning:
> drivers/thermal/db8500_thermal.c: In function ‘db8500_thermal_match_cdev’:
> drivers/thermal/db8500_thermal.c:53:2: warning: passing argument 1 of ‘match_string’ from incompatible pointer type [enabled by default]
>   i = match_string(trip_point->cdev_name, COOLING_DEV_MAX, cdev->type);
>   ^
> In file included from include/linux/bitmap.h:9:0,
>                  from include/linux/cpumask.h:12,
>                  from include/linux/rcupdate.h:44,
>                  from include/linux/radix-tree.h:28,
>                  from include/linux/idr.h:15,
>                  from include/linux/kernfs.h:14,
>                  from include/linux/sysfs.h:16,
>                  from kernel/include/linux/kobject.h:20,
>                  from kernel/include/linux/of.h:17,
>                  from include/linux/cpu_cooling.h:27,
>                  from drivers/thermal/db8500_thermal.c:20:
> include/linux/string.h:184:5: note: expected ‘const char * const*’ but argument is of type ‘const char (*)[20]’
>
> Any idea?

Yes.
If you wish to continue, you need to do two patches instead, where in
first you are changing fixed array size of pointers to dynamic one and
replace or loops from being by size to ones being NULL terminated.


-- 
With Best Regards,
Andy Shevchenko

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ