Subject: Re: [PATCH] MAINTAINERS: update phylink/sfp keyword matching

From: Russell King - ARM Linux admin <[email-masked]>
Date: Wed, 5 Aug 2020 23:09:17 +0100

On Wed, Aug 05, 2020 at 11:47:38AM -0700, Joe Perches wrote:
> On Wed, 2020-08-05 at 19:22 +0100, Russell King - ARM Linux admin wrote:
> > On Wed, Aug 05, 2020 at 11:11:28AM -0700, Linus Torvalds wrote:
> > > On Wed, Aug 5, 2020 at 7:34 AM Russell King <[email-masked]> wrote:
> > > > Is this something you're willing to merge directly please?
> > > 
> > > Done.
> > > 
> > > That said:
> > > 
> > > > -K:     phylink
> > > > +K:     phylink\.h|struct\s+phylink|\.phylink|>phylink_|phylink_(autoneg|clear|connect|create|destroy|disconnect|ethtool|helper|mac|mii|of|set|start|stop|test|validate)
> > > 
> > > That's a very awkward pattern. I wonder if there could be better ways
> > > to express this (ie "only apply this pattern to these files" kind of
> > > thing)
> > 
> > Yes, it's extremely awkward - I spent much of the morning with perl
> > testing it out on the drivers/ subtree.
> 
> There are a lot of phylink_<foo> in the kernel.
> Are those really the only uses you want to watch?

It is sufficient; as I said, I've spent a morning running this:

#!/usr/bin/perl
$re = 'phylink\.h|struct\s+phylink|\.phylink|>phylink_|phylink_(autoneg|clear|connect|create|destroy|disconnect|ethtool|helper|mac|mii|of|set|start|stop|test|validate)';
foreach $f (@ARGV) {
        open F, $f;
        $l = 1;
        while (<F>) {
                chomp;
                print "$f:$l: $_\n" if /$re/;
                $l++;
        }
        close F;
}

through:

$ find drivers -type f -print0 | xargs -0 ./check.pl | diff -u pl-ref.out - |less

where pl-ref.out is the original K: matching of just "phylink" and
looking at the differences to ensure I'm excluding just stuff that
doesn't concern me, while getting a high hit rate on the stuff
that I do want.

Now, I'm not saying that there isn't a better way, but this is not
something I want to spend days on.  So I got something that works
for me, and that's what I've sent Linus.

Going through your list...

>       4 phylink_add

Not sure what this is.  Doesn't seem to be anything to do with what
I maintain.

>       7 phylink_an_mode_str

static function.

>       4 phylink_apply_manual_flow

static function.

>       3 phylink_attach_phy

static function.

>      26 phylink_autoneg_inband

This one public and included.

>       4 phylink_bringup_phy

static function.

>       3 phylink_change_inband_advert

static function.

>       6 phylink_clear

This one public and included.

>       4 phylink_complete
>       2 phylink_complete_evt

Nothing to do with phylink.

>     145 phylink_config

Included.

>       3 phylink_connect
>       8 phylink_connect_phy

Both included under one.

>      39 phylink_create

Included.

>      10 phylink_dbg

static function.

... shall I go on?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!