lkml.org 
[lkml]   [2016]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.8 065/138] iio:chemical:atlas-ph-sensor: Fix use of 32 bit int to hold 16 bit big endian value
    Date
    4.8-stable review patch.  If anyone has any objections, please let me know.

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

    From: Sandhya Bankar <bankarsandhya512@gmail.com>

    commit d1fe85ec7702917f2f1515b4c421d5d4792201a0 upstream.

    This will result in a random value being reported on big endian architectures.
    (thanks to Lars-Peter Clausen for pointing out the effects of this bug)

    Only effects a value printed to the log, but as this reports the settings of
    the probe in question it may be of direct interest to users.

    Also, fixes the following sparse endianness warnings:

    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16
    drivers/iio/chemical/atlas-ph-sensor.c:215:9: warning: cast to restricted __be16

    Signed-off-by: Sandhya Bankar <bankarsandhya512@gmail.com>
    Fixes: e8dd92bfbff25 ("iio: chemical: atlas-ph-sensor: add EC feature")
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/iio/chemical/atlas-ph-sensor.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    --- a/drivers/iio/chemical/atlas-ph-sensor.c
    +++ b/drivers/iio/chemical/atlas-ph-sensor.c
    @@ -207,13 +207,14 @@ static int atlas_check_ec_calibration(st
    struct device *dev = &data->client->dev;
    int ret;
    unsigned int val;
    + __be16 rval;

    - ret = regmap_bulk_read(data->regmap, ATLAS_REG_EC_PROBE, &val, 2);
    + ret = regmap_bulk_read(data->regmap, ATLAS_REG_EC_PROBE, &rval, 2);
    if (ret)
    return ret;

    - dev_info(dev, "probe set to K = %d.%.2d", be16_to_cpu(val) / 100,
    - be16_to_cpu(val) % 100);
    + val = be16_to_cpu(rval);
    + dev_info(dev, "probe set to K = %d.%.2d", val / 100, val % 100);

    ret = regmap_read(data->regmap, ATLAS_REG_EC_CALIB_STATUS, &val);
    if (ret)

    \
     
     \ /
      Last update: 2016-11-09 12:27    [W:2.611 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site