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: <1607b040-6bc4-9a58-ae81-4ea0adf5885d@ieee.org>
Date:   Wed, 14 Apr 2021 08:17:38 -0500
From:   Alex Elder <elder@...e.org>
To:     Joe Perches <joe@...ches.com>,
        Greg KH <gregkh@...uxfoundation.org>,
        Zhansaya Bagdauletkyzy <zhansayabagdaulet@...il.com>
Cc:     johan@...nel.org, elder@...nel.org, greybus-dev@...ts.linaro.org,
        linux-staging@...ts.linux.dev, linux-kernel@...r.kernel.org,
        outreachy-kernel@...glegroups.com
Subject: Re: [PATCH] staging: greybus: Match parentheses alignment

On 4/6/21 12:21 PM, Joe Perches wrote:
> On Tue, 2021-04-06 at 15:27 +0200, Greg KH wrote:
>> On Tue, Apr 06, 2021 at 06:42:59PM +0600, Zhansaya Bagdauletkyzy wrote:
>>> Match next line with open parentheses by adding tabs/spaces
>>> to conform with Linux kernel coding style.
>>> Reported by checkpatch.
> []
>>> diff --git a/drivers/staging/greybus/camera.c b/drivers/staging/greybus/camera.c
> []
>>> @@ -378,8 +378,8 @@ struct ap_csi_config_request {
>>>   #define GB_CAMERA_CSI_CLK_FREQ_MARGIN		150000000U
>>>   
>>>
>>>   static int gb_camera_setup_data_connection(struct gb_camera *gcam,
>>> -		struct gb_camera_configure_streams_response *resp,
>>> -		struct gb_camera_csi_params *csi_params)
>>> +					   struct gb_camera_configure_streams_response *resp,
>>> +					   struct gb_camera_csi_params *csi_params)
>>
>> And now you violate another coding style requirement, which means
>> someone will send another patch to fix that up and around and around it
>> goes...
> 
> None of the coding style document is an actual requirement Greg.
> It's all rules of thumb.  Useful rules, but not hard and fast right?

I agree with this, but this ambiguity causes some problems.

Greybus is a go-to place for just-starting developers to
work with some reasonably good "real" code.  But someone
just starting has no way of judging whether the warnings
issued by checkpatch are real or not.  Even experienced
developers will lack the insight to judge this if they
are modifying on a less-familiar part of the kernel.

The result--for Greybus certainly--is fairly regular
stream patches that suggest making trivial changes based
on checkpatch recommendations.  And unfortunately each
one is destined to be rejected by the maintainers.  This
is no good for anybody.

Can you think of a way to try to further characterize
how "serious" a warning message is?  I recognize that
even if (for example) you had something like 1-10 severity
scale, the scale might not be uniform across the whole
kernel tree.  Perhaps (like the -W options for GCC) there
could be a way to specify in a Makefile which checkpatch
messages are reported/not reported?  I don't claim that's
a good suggestion, but if I could optionally indicate
somewhere that "two consecutive blank lines is OK for
Greybus" (one example that comes to mind) I might do so.

> To me, the biggest issue with this code isn't whether or not the
> code is aligned at open parentheses or stays within 80 columns,
> but is the use of 30+ character length identifiers.

I agree with you on this one...  I've worked with code
like that and it's very difficult to make it readable.
I've made a mental note to go look at this and see if
I can make it better.  I can't say when I'll get to it
but I think it's a good suggestion.

					-Alex

> Using identifiers of that length makes using 80 column, or even
> 100 column length lines infeasible.
> 
> Perhaps seeing if include/linux/greybus/greybus_protocols.h
> could be updated to use shorter length identifiers might be useful.
> 
> The median length identifier there is ~25 chars long and the
> maximum length identifier is ~50 chars.
> 
> 
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ