[PATCH 1/2] staging: fieldbus: anybus-s: keep device bus id in bus endianness

From: Sven Van Asbroeck
Date: Tue Apr 30 2019 - 11:25:27 EST


"Normal" bus structures such as USB or PCI keep device bus ids
in bus endinanness, and driver bus ids in host endianness.
Endianness conversion happens each time bus_match() is called.

Modify anybus-s to conform to this pattern. As a pleasant side-
effect, sparse warnings will now disappear.

This was suggested by Al Viro.

Link: https://lkml.org/lkml/2019/4/30/834
Signed-off-by: Sven Van Asbroeck <TheSven73@xxxxxxxxx>
---
drivers/staging/fieldbus/anybuss/anybuss-client.h | 2 +-
drivers/staging/fieldbus/anybuss/host.c | 7 +++----
2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/staging/fieldbus/anybuss/anybuss-client.h b/drivers/staging/fieldbus/anybuss/anybuss-client.h
index 2e48fb8f0209..dce60f86c16f 100644
--- a/drivers/staging/fieldbus/anybuss/anybuss-client.h
+++ b/drivers/staging/fieldbus/anybuss/anybuss-client.h
@@ -17,7 +17,7 @@ struct anybuss_host;
struct anybuss_client {
struct device dev;
struct anybuss_host *host;
- u16 fieldbus_type;
+ __be16 fieldbus_type;
/*
* these can be optionally set by the client to receive event
* notifications from the host.
diff --git a/drivers/staging/fieldbus/anybuss/host.c b/drivers/staging/fieldbus/anybuss/host.c
index a64fe03b61fa..33a241dbec52 100644
--- a/drivers/staging/fieldbus/anybuss/host.c
+++ b/drivers/staging/fieldbus/anybuss/host.c
@@ -1173,7 +1173,7 @@ static int anybus_bus_match(struct device *dev,
struct anybuss_client *adev =
to_anybuss_client(dev);

- return adrv->fieldbus_type == adev->fieldbus_type;
+ return adrv->fieldbus_type == be16_to_cpu(adev->fieldbus_type);
}

static int anybus_bus_probe(struct device *dev)
@@ -1264,7 +1264,7 @@ anybuss_host_common_probe(struct device *dev,
{
int ret, i;
u8 val[4];
- u16 fieldbus_type;
+ __be16 fieldbus_type;
struct anybuss_host *cd;

cd = devm_kzalloc(dev, sizeof(*cd), GFP_KERNEL);
@@ -1347,8 +1347,7 @@ anybuss_host_common_probe(struct device *dev,
add_device_randomness(&val, 4);
regmap_bulk_read(cd->regmap, REG_FIELDBUS_TYPE, &fieldbus_type,
sizeof(fieldbus_type));
- fieldbus_type = be16_to_cpu(fieldbus_type);
- dev_info(dev, "Fieldbus type: %04X", fieldbus_type);
+ dev_info(dev, "Fieldbus type: %04X", be16_to_cpu(fieldbus_type));
regmap_bulk_read(cd->regmap, REG_MODULE_SW_V, val, 2);
dev_info(dev, "Module SW version: %02X%02X",
val[0], val[1]);
--
2.17.1