of: fix autoloading due to broken modalias with no 'compatible'
authorSasha Levin <sasha.levin@oracle.com>
Fri, 17 Jun 2016 21:30:50 +0000 (17:30 -0400)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 20 Jun 2016 03:47:45 +0000 (23:47 -0400)
[ Upstream commit b3c0a4dab7e35a9b6d69c0415641d2280fdefb2b ]

Because of an improper dereference, a stray 'C' character was output to
the modalias when no 'compatible' was specified. This is the case for
some old PowerMac drivers which only set the 'name' property. Fix it to
let them match again.

Reported-by: Mathieu Malaterre <malat@debian.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Tested-by: Mathieu Malaterre <malat@debian.org>
Cc: Philipp Zabel <p.zabel@pengutronix.de>
Cc: Andreas Schwab <schwab@linux-m68k.org>
Fixes: 6543becf26fff6 ("mod/file2alias: make modalias generation safe for cross compiling")
Cc: stable@vger.kernel.org # v3.9+
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
scripts/mod/file2alias.c

index e614ef689eee1f16dc19daf1c00be4460a184f63..268acec72c4f1a7d0eda15c314716e84a4872b82 100644 (file)
@@ -653,7 +653,7 @@ static int do_of_entry (const char *filename, void *symval, char *alias)
        len = sprintf(alias, "of:N%sT%s", (*name)[0] ? *name : "*",
                      (*type)[0] ? *type : "*");
 
-       if (compatible[0])
+       if ((*compatible)[0])
                sprintf(&alias[len], "%sC%s", (*type)[0] ? "*" : "",
                        *compatible);