Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp2823754pxb; Mon, 1 Nov 2021 02:34:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJycxXDrJGSLhbTUMWcjEWha7w62LqqktPE1IunuxbnYjPbwf5OO/IC4lHZPXEMNdaUHRYhB X-Received: by 2002:a17:906:1601:: with SMTP id m1mr35647579ejd.117.1635759247097; Mon, 01 Nov 2021 02:34:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635759247; cv=none; d=google.com; s=arc-20160816; b=zLITgHc718hS7PkHW9RlAo4TWGY8nCE2cr7bIEo3/xypT6g17vCRt9P8RKkckW/kUQ 0uZ353tSCSuIO3fouVTyqIXNDmGPXLBKMb8XLUq2cJa4BvToeGjeq5HWyRj26f+7F9AZ h5E1H2kPvidmQv3j7si30crKpNe8n2t8PWsEusqo47B+rFqpsEvqNHZFmAssJgJVPgC7 3CUIX0uNfu0STTyJ4T1knqhPBFHAt4bkeXS0OgphtZ7OGrA236ZaNVemxNNIpvctGS5F HEVouOgcUjls/Wxdax0xk3t08FSrFK1VlGc+vYhrW/Jwo36gC0CsadB8sK6P2Q+A7X+o +dGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=RPzSIDMLtYkDLdxHoPYJEwEn2tDhpN1H0NKWW5RcJ6E=; b=ytdRxwHbnZvRbCaDR5Jqni8O/AC67sPwuRBxTlRF4jGhx/2INlwLtD+UNwYw8a4rST 6Gz8RHK1E8/idOmLIf+XZHZB81kfjd87anZo7gpbELmMI0EwxGyC8kV6bUDf4XX6e7c8 wCnaekSfyce0zS+nnEKFs7smOZ3JbXQJ8RrXKEdH9SeN2ajN9Oh6HvbTHMY3NhfV/z/L +xZZsX+1/LUGn6z7aEdkBlNPyNKAJBarkM9c6Ax3kByMlFxVjDLE9x98GT5FlhOY+N/T uPooADfJffKXY2Dsk1Xmzb3kcqIClYCyG8E/RSfyWk5gFiyAXO/nn8fCfmbK0RDb5rn0 QdwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=uUxU9dyF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h20si12464706edw.297.2021.11.01.02.33.42; Mon, 01 Nov 2021 02:34:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=uUxU9dyF; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232982AbhKAJee (ORCPT + 99 others); Mon, 1 Nov 2021 05:34:34 -0400 Received: from mail.kernel.org ([198.145.29.99]:37296 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232952AbhKAJa2 (ORCPT ); Mon, 1 Nov 2021 05:30:28 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D3EFD61179; Mon, 1 Nov 2021 09:24:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635758644; bh=J6Ul1GG2oFWylQa5cKyso2gWWBiwTYvIvAB8/b66bRE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uUxU9dyF2KblsiPJAZiB828SWKamlfQUv9/53kqHs3w6z9ZeCYkAtsLrB8lQqub3V zKXvf9xjNyRTjskhS3o61FHQ8xPdR7+qyDPufbjgADBku4x2JiFbEu1wyrVdVe0L1K pBTYqkKcgoYRZ8SGpSB7JVG5TYy0p5CJSbv7ovu0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Janusz Dziedzic , Johannes Berg , Sasha Levin Subject: [PATCH 5.4 48/51] cfg80211: correct bridge/4addr mode check Date: Mon, 1 Nov 2021 10:17:52 +0100 Message-Id: <20211101082511.714058673@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211101082500.203657870@linuxfoundation.org> References: <20211101082500.203657870@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Janusz Dziedzic [ Upstream commit 689a0a9f505f7bffdefe6f17fddb41c8ab6344f6 ] Without the patch we fail: $ sudo brctl addbr br0 $ sudo brctl addif br0 wlp1s0 $ sudo iw wlp1s0 set 4addr on command failed: Device or resource busy (-16) Last command failed but iface was already in 4addr mode. Fixes: ad4bb6f8883a ("cfg80211: disallow bridging managed/adhoc interfaces") Signed-off-by: Janusz Dziedzic Link: https://lore.kernel.org/r/20211024201546.614379-1-janusz.dziedzic@gmail.com [add fixes tag, fix indentation, edit commit log] Signed-off-by: Johannes Berg Signed-off-by: Sasha Levin --- net/wireless/util.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/net/wireless/util.c b/net/wireless/util.c index 82b3baed2c7d..aaefaf3422a1 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -975,14 +975,14 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev, !(rdev->wiphy.interface_modes & (1 << ntype))) return -EOPNOTSUPP; - /* if it's part of a bridge, reject changing type to station/ibss */ - if (netif_is_bridge_port(dev) && - (ntype == NL80211_IFTYPE_ADHOC || - ntype == NL80211_IFTYPE_STATION || - ntype == NL80211_IFTYPE_P2P_CLIENT)) - return -EBUSY; - if (ntype != otype) { + /* if it's part of a bridge, reject changing type to station/ibss */ + if (netif_is_bridge_port(dev) && + (ntype == NL80211_IFTYPE_ADHOC || + ntype == NL80211_IFTYPE_STATION || + ntype == NL80211_IFTYPE_P2P_CLIENT)) + return -EBUSY; + dev->ieee80211_ptr->use_4addr = false; dev->ieee80211_ptr->mesh_id_up_len = 0; wdev_lock(dev->ieee80211_ptr); -- 2.33.0