Re: [PATCH] reformat_with_checkpatch: Add automation to checkpatch

From: Greg KH
Date: Sat Jul 12 2014 - 04:15:19 EST


On Fri, Jul 11, 2014 at 06:21:27PM -0700, Joe Perches wrote:
> A simple script to run checkpatch --fix for various types of
> of cleanups.
>
> This script is useful primarily for staging.
>
> This reformats code to a more CodingStyle conforming style,
> compiles it, verifies that the object code hasn't changed,
> and git commits it too.
>
> You must have the necessary development tools, git, and a
> recent git tree. Ideally use Greg KH's staging-next, which
> can be retrieved via these commands:
>
> git clone git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
> git checkout staging-next
>
> To use this script try a sequence of commands like:
>
> cd <linux_repository>
> git checkout -b <your_branch>
> make allyesconfig
> mkdir patches
> ./scripts/reformat_with_checkpatch.sh drivers/staging/<dir>/*.[ch]
> git format-patch --cover-letter -o patches/<your_branch> staging-next
> git send-email patches/<your_branch>

When running this on drivers/base/bus.c, it says that the .o files are
different, when the diffstat for what makes them different is only
whitespace.

I did the following:

$ scripts/reformat_with_checkpatch.sh drivers/base/bus.c

Ignore the first set of things it tries to commit by answering N to the
"Would you like to commit these changes".

Then the second thing it tries to change in the file says that there is
a .o file difference.

Yet the diff is below, I don't see how this happens. Is this due to
there being some old temp file around because I did not accept the first
set of changes?

thanks,

greg k-h

-------------
diff:

drivers/base/bus.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 83e910a57563..3546d02b46f0 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -32,7 +32,6 @@ static struct kset *system_kset;

#define to_drv_attr(_attr) container_of(_attr, struct driver_attribute, attr)

-
static int __must_check bus_rescan_devices_helper(struct device *dev,
void *data);

@@ -128,6 +127,7 @@ static const struct sysfs_ops bus_sysfs_ops = {
int bus_create_file(struct bus_type *bus, struct bus_attribute *attr)
{
int error;
+
if (bus_get(bus)) {
error = sysfs_create_file(&bus->p->subsys.kobj, &attr->attr);
bus_put(bus);
@@ -817,6 +817,7 @@ EXPORT_SYMBOL_GPL(device_reprobe);
struct bus_type *find_bus(char *name)
{
struct kobject *k = kset_find_obj(bus_kset, name);
+
return k ? to_bus(k) : NULL;
}
#endif /* 0 */

--------------


What the script complained about:

Comparing objects...
--- drivers/base/bus.o.new 2014-07-12 01:16:32.984755945 -0700
+++ drivers/base/bus.o.old 2014-07-12 01:16:31.924755967 -0700
@@ -2449,13 +2449,13 @@

0000000000000000 <descriptor.17493>:
...
-: bf 03 00 00 00 mov $0x3,%edi
+: be 03 00 00 00 mov $0x3,%esi
: 00 00 add %al,(%rax)
...

0000000000000028 <descriptor.17483>:
...
-: a2 03 00 00 00 00 00 movabs %al,0x3
+: a1 03 00 00 00 00 00 movabs 0x3,%eax
: 00 00

0000000000000050 <descriptor.17406>:
@@ -2468,7 +2468,7 @@

0000000000000078 <descriptor.17073>:
...
-: 56 push %rsi
+: 57 push %rdi
: 00 00 add %al,(%rax)
: 00 00 add %al,(%rax)
: 00 00 add %al,(%rax)
Object differences exist! - Verify changes before commit!


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/