From: Joe Perches <joe@perches.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: netdev@vger.kernel.org, Julia Lawall <julia.lawall@lip6.fr>,
cocci <cocci@systeme.lip6.fr>,
outreachy-kernel@googlegroups.com,
"David S. Miller" <davem@davemloft.net>,
Andreas Kemnade <andreas@kemnade.info>,
Johan Hovold <johan@kernel.org>,
linux-kernel@vger.kernel.org,
Philippe Ombredanne <pombredanne@nexb.com>,
linux-usb@vger.kernel.org
Subject: Re: [PATCH] net: usb: hso.c: remove unneeded DRIVER_LICENSE #define
Date: Thu, 23 Nov 2017 15:30:01 -0800 [thread overview]
Message-ID: <1511479801.5308.6.camel@perches.com> (raw)
In-Reply-To: <20171122171201.GA6528@kroah.com>
On Wed, 2017-11-22 at 18:12 +0100, Greg Kroah-Hartman wrote:
> On Wed, Nov 22, 2017 at 09:05:36AM -0800, Joe Perches wrote:
> > On Fri, 2017-11-17 at 15:19 +0100, Greg Kroah-Hartman wrote:
> > > There is no need to #define the license of the driver, just put it in
> > > the MODULE_LICENSE() line directly as a text string.
> > >
> > > This allows tools that check that the module license matches the source
> > > code license to work properly, as there is no need to unwind the
> > > unneeded dereference.
> >
> > []
> > > diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
> >
> > []
> > > @@ -76,7 +76,6 @@
> > >
> > > #define MOD_AUTHOR "Option Wireless"
> > > #define MOD_DESCRIPTION "USB High Speed Option driver"
> > > -#define MOD_LICENSE "GPL"
> > >
> > > #define HSO_MAX_NET_DEVICES 10
> > > #define HSO__MAX_MTU 2048
> > > @@ -3288,7 +3287,7 @@ module_exit(hso_exit);
> > >
> > > MODULE_AUTHOR(MOD_AUTHOR);
> > > MODULE_DESCRIPTION(MOD_DESCRIPTION);
> > > -MODULE_LICENSE(MOD_LICENSE);
> > > +MODULE_LICENSE("GPL");
> >
> > Probably all of these MODULE_<FOO>(MOD_<BAR>) uses could be
> > simplified as well.
>
> Agreed, I did that for a bunch of USB drivers, need to do it for others
> as well.
Here's a little perl and bash script that seems to do the right thing
---
--- /dev/null 2017-11-23 06:19:12.943046739 -0800
+++ single_use_module.pl 2017-11-23 15:23:11.729812156 -0800
@@ -0,0 +1,15 @@
+$/ = undef;
+my $var = $ARGV[0];
+my $file = $ARGV[1];
+print("var: <$var> file: <$file>\n");
+open my $fh, "<", $file or die;
+my $data = <$fh>;
+close $fh;
+$data =~ s/\n#[ \t]*define\s+$var\s+(.*)\n/\n/;
+my $string = $1;
+print("string: <$string>\n");
+$string =~ s/\s+\n//;
+$data =~ s~$var~$string~;
+open my $fh, ">", $file or die;
+print $fh $data;
+close $fh;
--- /dev/null 2017-11-23 06:19:12.943046739 -0800
+++ single_use_module.bash 2017-11-23 15:23:01.964676948 -0800
@@ -0,0 +1,25 @@
+#!/bin/bash
+git grep -P '\bMODULE_[A-Z]+\s*\(\s*[A-Z_]+\s*\)' $@ |
+ while read line ; do
+ file=$(echo $line | cut -f1 -d":")
+ define=$(echo $line | cut -f2- -d":")
+ var=$(echo $define | sed -r -e 's/^MODULE_[A-Z_]+\s*\(\s*//' -r -e 's/^([A-Z_]+).*$/\1/')
+
+ # see if the define exists in the file
+ count1=$(git grep -c -P "^\s*#\s*define\s+$var\s+" $file | cut -f2- -d":")
+ if [[ $count1 != 1 ]] ; then
+ continue
+ fi
+
+ # see if the var exists twice (once in the #define, once in the use)
+ count2=$(git grep -c -P -w $var $file | cut -f2- -d":")
+ if [[ $count2 != 2 ]] ; then
+ continue
+ fi
+
+ if [[ "${defline: -1}" == "\\" ]] ; then
+ continue
+ fi
+
+ perl single_use_module.pl $var $file
+ done
next prev parent reply other threads:[~2017-11-23 23:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-17 14:19 [PATCH] net: usb: hso.c: remove unneeded DRIVER_LICENSE #define Greg Kroah-Hartman
[not found] ` <20171117141939.GD17880-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2017-11-17 14:52 ` Philippe Ombredanne
2017-11-18 1:37 ` David Miller
2017-11-22 17:05 ` Joe Perches
2017-11-22 17:12 ` Greg Kroah-Hartman
2017-11-23 23:30 ` Joe Perches [this message]
2017-11-24 0:25 ` Joe Perches
2017-11-22 17:21 ` [Outreachy kernel] " Julia Lawall
2017-11-22 21:20 ` Julia Lawall
2017-11-23 6:22 ` Greg Kroah-Hartman
2017-11-23 7:31 ` Julia Lawall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1511479801.5308.6.camel@perches.com \
--to=joe@perches.com \
--cc=andreas@kemnade.info \
--cc=cocci@systeme.lip6.fr \
--cc=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=johan@kernel.org \
--cc=julia.lawall@lip6.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=outreachy-kernel@googlegroups.com \
--cc=pombredanne@nexb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).