lkml.org 
[lkml]   [2020]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 288/757] net: dsa: rtl8366: Check validity of passed VLANs
    Date
    From: Linus Walleij <linus.walleij@linaro.org>

    [ Upstream commit 6641a2c42b0a307b7638d10e5d4b90debc61389d ]

    The rtl8366_set_vlan() and rtl8366_set_pvid() get invalid
    VLANs tossed at it, especially VLAN0, something the hardware
    and driver cannot handle. Check validity and bail out like
    we do in the other callbacks.

    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/dsa/rtl8366.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/drivers/net/dsa/rtl8366.c b/drivers/net/dsa/rtl8366.c
    index a8c5a934c3d30..f75a660fcb620 100644
    --- a/drivers/net/dsa/rtl8366.c
    +++ b/drivers/net/dsa/rtl8366.c
    @@ -43,6 +43,9 @@ int rtl8366_set_vlan(struct realtek_smi *smi, int vid, u32 member,
    int ret;
    int i;

    + if (!smi->ops->is_vlan_valid(smi, vid))
    + return -EINVAL;
    +
    dev_dbg(smi->dev,
    "setting VLAN%d 4k members: 0x%02x, untagged: 0x%02x\n",
    vid, member, untag);
    @@ -118,6 +121,9 @@ int rtl8366_set_pvid(struct realtek_smi *smi, unsigned int port,
    int ret;
    int i;

    + if (!smi->ops->is_vlan_valid(smi, vid))
    + return -EINVAL;
    +
    /* Try to find an existing MC entry for this VID */
    for (i = 0; i < smi->num_vlan_mc; i++) {
    ret = smi->ops->get_vlan_mc(smi, i, &vlanmc);
    --
    2.25.1


    \
     
     \ /
      Last update: 2020-10-27 17:11    [W:2.080 / U:1.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site