[PATCH] tile-srom: allow the driver to be built as a module

From: Chris Metcalf
Date: Mon Nov 07 2016 - 16:03:47 EST


The code was already configured that way, but the Kconfig
file didn't support requesting it.

A buglet caused a null pointer deref when unloading the
module, but this commit also corrects that issue.

Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxxxx>
---
This is in response to Paul's patch (see the in-reply-to) suggesting
we remove the module infrastructure from the code instead.

I can push this via the tile tree since it's a tile-only device,
or Greg, if you'd prefer to take it via your tree, that's fine too.

drivers/char/Kconfig | 2 +-
drivers/char/tile-srom.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index dcc09739a54e..70124ca5c33d 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -578,7 +578,7 @@ config DEVPORT
source "drivers/s390/char/Kconfig"

config TILE_SROM
- bool "Character-device access via hypervisor to the Tilera SPI ROM"
+ tristate "Character-device access via hypervisor to the Tilera SPI ROM"
depends on TILE
default y
---help---
diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c
index 398800edb2cc..3d4cca64b2d4 100644
--- a/drivers/char/tile-srom.c
+++ b/drivers/char/tile-srom.c
@@ -312,7 +312,8 @@ ATTRIBUTE_GROUPS(srom_dev);

static char *srom_devnode(struct device *dev, umode_t *mode)
{
- *mode = S_IRUGO | S_IWUSR;
+ if (mode)
+ *mode = 0644;
return kasprintf(GFP_KERNEL, "srom/%s", dev_name(dev));
}

--
2.7.2