Merge branch 'ieee802154-for-davem-2018-03-29' of git://git.kernel.org/pub/scm/linux...
authorDavid S. Miller <davem@davemloft.net>
Fri, 30 Mar 2018 17:00:11 +0000 (13:00 -0400)
committerDavid S. Miller <davem@davemloft.net>
Fri, 30 Mar 2018 17:00:11 +0000 (13:00 -0400)
Stefan Schmidt says:

====================
pull-request: ieee802154-next 2018-03-29

An update from ieee802154 for *net-next*

Colin fixed a unused variable in the new mcr20a driver.
Harry fixed an unitialised data read in the debugfs interface of the
ca8210 driver.

If there are any issues or you think these are to late for -rc1 (both can also
go into -rc2 as they are simple fixes) let me know.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ieee802154/ca8210.c
drivers/net/ieee802154/mcr20a.c

index 377af43..58299fb 100644 (file)
@@ -2493,13 +2493,14 @@ static ssize_t ca8210_test_int_user_write(
        struct ca8210_priv *priv = filp->private_data;
        u8 command[CA8210_SPI_BUF_SIZE];
 
-       if (len > CA8210_SPI_BUF_SIZE) {
+       memset(command, SPI_IDLE, 6);
+       if (len > CA8210_SPI_BUF_SIZE || len < 2) {
                dev_warn(
                        &priv->spi->dev,
-                       "userspace requested erroneously long write (%zu)\n",
+                       "userspace requested erroneous write length (%zu)\n",
                        len
                );
-               return -EMSGSIZE;
+               return -EBADE;
        }
 
        ret = copy_from_user(command, in_buf, len);
@@ -2511,6 +2512,13 @@ static ssize_t ca8210_test_int_user_write(
                );
                return -EIO;
        }
+       if (len != command[1] + 2) {
+               dev_err(
+                       &priv->spi->dev,
+                       "write len does not match packet length field\n"
+               );
+               return -EBADE;
+       }
 
        ret = ca8210_test_check_upstream(command, priv->spi);
        if (ret == 0) {
index d9eb22a..55a22c7 100644 (file)
@@ -723,13 +723,11 @@ mcr20a_set_promiscuous_mode(struct ieee802154_hw *hw, const bool on)
        struct mcr20a_local *lp = hw->priv;
        int ret;
        u8 rx_frame_filter_reg = 0x0;
-       u8 val;
 
        dev_dbg(printdev(lp), "%s(%d)\n", __func__, on);
 
        if (on) {
                /* All frame types accepted*/
-               val |= DAR_PHY_CTRL4_PROMISCUOUS;
                rx_frame_filter_reg &= ~(IAR_RX_FRAME_FLT_FRM_VER);
                rx_frame_filter_reg |= (IAR_RX_FRAME_FLT_ACK_FT |
                                  IAR_RX_FRAME_FLT_NS_FT);