From patchwork Sat Apr 12 18:38:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 881010 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9A80F1C3C08; Sat, 12 Apr 2025 18:38:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483129; cv=none; b=DU2cc7wCaEXv2JveQVGPdCOX05lS4fr7G7oXBHA/V9ysB3hN26sOdEUTsLQ7aAnmrMQ+SIJYKlJ3c31hW5dxPJkMhXDzkzZeWde3BsZTQwE8A4nrALx1p1YkkOe/ZKWN1AV+i7w4SGnvBlLWp+0m66JG9BpR4L3mLjdod7sbD2E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483129; c=relaxed/simple; bh=ltZlME++UTgOP9mBlJKDodrJzoL8s2dPoYYY32aqyN4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Wy8rDMSH6B4r5kqjgzE3/yS7PBicDmrtN7UMjUMAtBEDlhzgSkRU2eaROG7awvJvYWxT6VRTgtVee783RskbRfxVP7RKNB6VyyKME04vbYQFE7BUbIk50oyZysFJvqVLUsrHWCxE9g/rbsSavQSGsMbKNXmKIcgtVXt0zy4KUmw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=W8834B6M; arc=none smtp.client-ip=209.85.221.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="W8834B6M" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-391342fc1f6so2404906f8f.1; Sat, 12 Apr 2025 11:38:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744483125; x=1745087925; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UYDU3E3XPR50DS24Qi8VxPTo2QXky2XYmXYNdjritH4=; b=W8834B6MEXFSnPBmgM6SmX9/jFSwF4QnAFTTZicZHkC+8Qatq2rRDfEj1i3qgppdsz B3qD63k22KncZvi4DM09C6fQAgViVdtUdIdyXWvXEPN2ikziSK5UIZel7xCdB4hVCwCB P+GNg0BpcOBdgpk5btq4cif5/XC6cQ5hL9oyBn8iQiMPVMtzW8fxCca/dRdcODIpBrQW 9J0PDsY2YkP+5uvWeNm1bKRQ1joTy2WSlM0NwL1PIhTF2Te5NyJ433I6pC4h/BJmF7aL G9Q+reIbkKwuc7V22dxOtRL8nyxrEyeEjvyMVBEP1mXmIzmLlZqhUxsdOTCefTizRUJj 0h5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744483125; x=1745087925; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UYDU3E3XPR50DS24Qi8VxPTo2QXky2XYmXYNdjritH4=; b=jBLRjF7XcjYq5NXibM69Tv4mBTwChFATRdGRA8ARAdXTDmf6U14UKm5I/u03JAyj7G tcvKN47dC2QV6Maod3/QnXOjc6DvVLjPRWG2ygcdftvf+Bi28f/haaSzQ0wB5fnr3KaU VPxpF3ig0+JATPiN1BdCp1ayMcmv/5iHoi4li8v1qNAOrlE82ULjDadU098eF+mtnbpl CgMKu3VZmWppbwMps2kUnGJ4AyDMcAGasFN9tOdVupzSGr1YPNFTk8vapKDdkoxzG4TI gvzidIOrSWHFdY+SAuribfsA0U0w2a67SUVhW3ne+qoxS9MI45G+fjrPqREXd1a8W5JQ a/AA== X-Forwarded-Encrypted: i=1; AJvYcCVjyR2LrvE8qIVAyLm/4O89fePU6fRnmPXlJKaSDn3ObUbT8lFQA2DBnsvHTkqZlU4HGsrpfJLckbKYL+c=@vger.kernel.org, AJvYcCVytRkziQgoloNazCLjbnRU2EaYKRsFqE+LpBN+ZS/rCNXbfUqVBabFiWTgGosp9EiiWMoxa44f@vger.kernel.org, AJvYcCWVYQsFFYI2A0vMvNubD+StIOdRFRNK41jtJVmjDFtz7TkpMvosdpsS0EDU5gKa2J/QxCHVWkA+wROq@vger.kernel.org, AJvYcCWdik+p+EQ+09m7fQzdtrEnOmcnZcjXk3JDLy4Z2VdeZFRA47DdZJcpMfdPX/lPrbPbuNkdYmJw@vger.kernel.org X-Gm-Message-State: AOJu0YwyY29W5cJ/sDrZzwriSZNfcobzC8Hca+rJsmWNgjfSsbgC14qG ozsZ5WcvwY1mTW+hoREK+RYSg1CRx3/ENYLFiGxbNq6x7lRrLrQ+ X-Gm-Gg: ASbGnctjXqgvWe1hNj50R+ouiLwMC+DwMymoA29hZBs4SEp4wwN0sJcqF54LVmhyNha nO/fOibbXH/+JUCG22aOEJZJgoTwTeTplkNA3gV1EF0nSybXm7v1B6D+YieCxeS8lI7BpN6TgCq hlb9ZTk7aHUKPGl2JNoEXkb+qszzvAnXQyVI5SJ2xX5vAYPFWQWgUaiq3jAUl9OMEn1KNUneMYg kRXFxkMsXltGnfCT7vu5L1sJLIFwQx6uBYc7Heg154L+jFq0Gw4iUp8KUV5uMZ9XbRHIMOptY+p pQp3+WiL44Y7KoXtYNtGyjU1Xamia+/Im9YANbvflGoLBGZ+oAaH4g4= X-Google-Smtp-Source: AGHT+IErCijy9ubZA0z2tHrjk+w1HwhThnpt/7AeExzcOuq7w3faR/wCCWwARUSq0fwgUXJprdt3dg== X-Received: by 2002:a05:6000:4305:b0:391:ccf:2d17 with SMTP id ffacd0b85a97d-39e9f3cced7mr5640675f8f.0.1744483124681; Sat, 12 Apr 2025 11:38:44 -0700 (PDT) Received: from localhost.localdomain ([2a02:c7c:6696:8300:f069:f1cb:5bbc:db26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c817dsm120599515e9.23.2025.04.12.11.38.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Apr 2025 11:38:43 -0700 (PDT) From: Qasim Ijaz To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, syzbot+3361c2d6f78a3e0892f9@syzkaller.appspotmail.com, stable@vger.kernel.org Cc: Qasim Ijaz Subject: [PATCH 1/5] net: ch9200: fix uninitialised access bug during mii_nway_restart Date: Sat, 12 Apr 2025 19:38:25 +0100 Message-Id: <20250412183829.41342-2-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250412183829.41342-1-qasdev00@gmail.com> References: <20250412183829.41342-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 In mii_nway_restart() during the line: bmcr = mii->mdio_read(mii->dev, mii->phy_id, MII_BMCR); The code attempts to call mii->mdio_read which is ch9200_mdio_read(). ch9200_mdio_read() utilises a local buffer, which is initialised with control_read(): unsigned char buff[2]; However buff is conditionally initialised inside control_read(): if (err == size) { memcpy(data, buf, size); } If the condition of "err == size" is not met, then buff remains uninitialised. Once this happens the uninitialised buff is accessed and returned during ch9200_mdio_read(): return (buff[0] | buff[1] << 8); The problem stems from the fact that ch9200_mdio_read() ignores the return value of control_read(), leading to uinit-access of buff. To fix this we should check the return value of control_read() and return early on error. We return 0 on control_read() failure here because returning a negative may trigger the "bmcr & BMCR_ANENABLE" check within mii_nway_restart. Reported-by: syzbot Closes: https://syzkaller.appspot.com/bug?extid=3361c2d6f78a3e0892f9 Tested-by: syzbot Fixes: 4a476bd6d1d9 ("usbnet: New driver for QinHeng CH9200 devices") Cc: stable@vger.kernel.org Signed-off-by: Qasim Ijaz --- drivers/net/usb/ch9200.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/net/usb/ch9200.c b/drivers/net/usb/ch9200.c index f69d9b902da0..4f29ecf2240a 100644 --- a/drivers/net/usb/ch9200.c +++ b/drivers/net/usb/ch9200.c @@ -178,6 +178,7 @@ static int ch9200_mdio_read(struct net_device *netdev, int phy_id, int loc) { struct usbnet *dev = netdev_priv(netdev); unsigned char buff[2]; + int ret; netdev_dbg(netdev, "%s phy_id:%02x loc:%02x\n", __func__, phy_id, loc); @@ -185,8 +186,10 @@ static int ch9200_mdio_read(struct net_device *netdev, int phy_id, int loc) if (phy_id != 0) return -ENODEV; - control_read(dev, REQUEST_READ, 0, loc * 2, buff, 0x02, - CONTROL_TIMEOUT_MS); + ret = control_read(dev, REQUEST_READ, 0, loc * 2, buff, 0x02, + CONTROL_TIMEOUT_MS); + if (ret < 0) + return 0; return (buff[0] | buff[1] << 8); } From patchwork Sat Apr 12 18:38:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 880900 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BDA302147F8; Sat, 12 Apr 2025 18:38:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483130; cv=none; b=XICbJ0y/6NegSG2XPNa/BEORClAYqOwA9JwDdfYP2RJ0QO6psBA4EEOxgd4TBztr3qzN2QWv27fGEMs4Mi/Y5A588rWmc8vUD/11294AVdwefJXRP8wrSwwsxvlyZrKvSpT7EZZeGC6AFfMbxB8e1lGOix2DEN4uJBDbXmmc/cE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483130; c=relaxed/simple; bh=zUgtBxcHNfQHwID95Nlq2oNdFKYo8VFOlfj+ZMKdcwo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ME2/tiYWeBfncI+Bz3QLmiS3gPwcK1DiKVmhi5Tl2Xoazi2R5Tw1Ocht/tLKWW8uKT70ULqpQG0DwDhJLxcU0qAAMEW8pbbAFGcfF0F2MIZ5nft7hqU/+/P6CzH1ZAfKiuLjCF1bZBMDq0qmhZh1BTtaNNu/eUj9dv+WmCG7cCM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JxXPofZd; arc=none smtp.client-ip=209.85.128.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JxXPofZd" Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-43ea40a6e98so26850465e9.1; Sat, 12 Apr 2025 11:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744483127; x=1745087927; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DUgYhksfu+Eoy58ll0DmCMo/txL7WUG0gWBs2LYDM8U=; b=JxXPofZd1V9Yo7ZiAvQosT2LX2Kc6y26stttUgGmao9uKDZ7zplGYqUikFdyhtAn2S MVODZno8cG5nTamclnO4i/QMZZ1n0Ga2lVBXawi6bzAC+WkRRQrCDQw4D50G2WNUKKly MhVIgWA+xeO/TqyOxuwRkJhfK6VZzZIwBcL1OrlIB0gxC/VLhQH4qDbZJXReCwjzZVfQ 4cwCFcYQ2261QcxY+K5a954difngPfiPTBtHiMaCKlx/MUkboKiWJMQ32QEqttZEwWMy OsryJZhQfQQPf/NiyU5zfP1wA+StVe9UppLHHJQlTjcAR74SnM8U5BzGbGWurC7YhQki G04Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744483127; x=1745087927; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DUgYhksfu+Eoy58ll0DmCMo/txL7WUG0gWBs2LYDM8U=; b=ITUb6jJrSXGkE1Yu9s+flv/6JtV6aXzxFoTOOVvuuYtYHtRVbmk1rVuedV0LnJlqpx LLa74u50yGgjQD5jEg5UFsxROwNiRp5I6Pglv3ywacB7MeXVQg7cfLPkNM83kyuIpRa4 mH6LbkKDJmiGnEHLNK3CuZhEm59Rz2Z0AAcSj60KTdCUKnlApITKQnmgtHTpDC18iAQo vW0pktSWf0mm/8siLH5VB/O9kUk2a5WRjIqZYWeKtg94j+ppEc6R0/mJmCJlb5cQ31ii Nj/DwKsKw6Zpacor+84C8xwxGrEx5/Xkscx8+wfu7gVgCFMdetHFf9N4LD6weC40qQUs o1bw== X-Forwarded-Encrypted: i=1; AJvYcCUJ0Ja+XV4xlLML+ex9hfyxh1HWLIcDSDSgE7UoBA2bAyYi7w2Jqwq/6w2Btx9lJUAUuBohcFkqxA7X@vger.kernel.org, AJvYcCUdy/GW4pf1GXzDgC9SN7wuO9g0D5TcyKSaxecumpj3dUKBYySJO/jldAvxEzUHHwEOrTW66PrV@vger.kernel.org, AJvYcCUr9Y03ChxnS89fEOJp3tor883eiRJb3ewbGf2Nqhg5qRX8u9nkePplvpgiF7zTZHX7kxd1FukS@vger.kernel.org, AJvYcCX4cExZJ0MdfKwhKrT2oidPhHCvYtNLBqhEuTLCiK/r32rknWtvuXtTeN2O0ue6fTGxMHDiBSgTYe84yuY=@vger.kernel.org X-Gm-Message-State: AOJu0YzX4r6DYYpKMeD9JH5ufK52ifB4unky2VB8Bu3mSjxNpqh3Ca/y hjL9amGy+Sbo/FrDwvoi75FYZMUpOOJItny4aRvcTJaukBYKeYJe X-Gm-Gg: ASbGncsHERvocPH5e64SlmD+mTPJXarieaufjiqeW50KWdbLodBCw8TCR0uXmM6+JB9 sJCnA7c7WUuqCuDPsq943Gbi48KrfMVLWrKN3+RzH/CBYlQAwTx6caTF7C2XshCO+tW3s4uAIiI 8f3aA4xnloh29kueV28RgBKpyDTWLiXGdtBd5q//XMpDxbpxNMiP+4V5xOZ1jQ/FuXfE5qL98gD 692Cix3ZXbrMQRSqV3dfQCvluW/9tOdym2Y9nghkj3RFLmnweu4r8d+7HoLFkHCgv2KRqBqHHFj FuPFLG/0aVYwfkEkIb6Zsd64/rn+xArFAW+oI9G3ZLcztOdtv7i/wp4= X-Google-Smtp-Source: AGHT+IEuU//N4q6Mgvz6wC6S1hlZkt1w7Omac2lzLX0BCkFbvgKOxgZnRbknb6CWCqXhsC8obs+M6A== X-Received: by 2002:a05:600c:3c91:b0:43d:49eb:9675 with SMTP id 5b1f17b1804b1-43f3a9a68a1mr55598015e9.22.1744483126901; Sat, 12 Apr 2025 11:38:46 -0700 (PDT) Received: from localhost.localdomain ([2a02:c7c:6696:8300:f069:f1cb:5bbc:db26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c817dsm120599515e9.23.2025.04.12.11.38.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Apr 2025 11:38:46 -0700 (PDT) From: Qasim Ijaz To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, syzbot+3361c2d6f78a3e0892f9@syzkaller.appspotmail.com, stable@vger.kernel.org Cc: Qasim Ijaz Subject: [PATCH 2/5] net: ch9200: remove extraneous return that prevents error propagation Date: Sat, 12 Apr 2025 19:38:26 +0100 Message-Id: <20250412183829.41342-3-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250412183829.41342-1-qasdev00@gmail.com> References: <20250412183829.41342-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The control_write() function sets err to -EINVAL however there is an incorrectly placed 'return 0' statement after it which stops the propogation of the error. Fix this issue by removing the 'return 0'. Fixes: 4a476bd6d1d9 ("usbnet: New driver for QinHeng CH9200 devices") Reviewed-by: Simon Horman Signed-off-by: Qasim Ijaz --- drivers/net/usb/ch9200.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/net/usb/ch9200.c b/drivers/net/usb/ch9200.c index 4f29ecf2240a..61eb6c207eb1 100644 --- a/drivers/net/usb/ch9200.c +++ b/drivers/net/usb/ch9200.c @@ -168,8 +168,6 @@ static int control_write(struct usbnet *dev, unsigned char request, err = -EINVAL; kfree(buf); - return 0; - err_out: return err; } From patchwork Sat Apr 12 18:38:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 881009 Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF3E5222565; Sat, 12 Apr 2025 18:38:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483132; cv=none; b=B5x38aY90L3s1OUTAi/RXIOxTtj0U6BcBUTCDem/wOyR8i5ZTpuno/XwHuz77vDYklVoUqRQUtgBKyY5p5F7UDkM3ZT5RTPpvZ4yysU18XO6l1t/uXCgvdbO9UZ7fFXMYO6XRUaQ6qddNnM1DzY+RoqlkEd3SIyzGitPBWSv44M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483132; c=relaxed/simple; bh=pbWG1NuW44d0XHkj7KB2doeEqkX9NqKKFm40CfzHlJc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Er5hz/poeQ3AmdP+J5M2kAwg6qbwY90ftao6DdXqkOzrAhMiLSBvrOMkAKlO+ycMEE0gsl/ofFQqi6QZXcLg8vkfQn7qowoldMvBfuO0XOwEDHskYCHceQynuCXFp25KGbdMm5eMnUUCR3WYxg0Vq5Y9xJsTBOdLZ5wixhnCNlM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=YB6r2lBL; arc=none smtp.client-ip=209.85.128.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="YB6r2lBL" Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43ed8d32a95so26038745e9.3; Sat, 12 Apr 2025 11:38:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744483129; x=1745087929; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QM5uFKAHI/bfbAV4bgQOJ/dtNzxx2KflwSSXyFhKQ54=; b=YB6r2lBLu57irImszoHJ8FINaVvHFgl6mubyam8p516v3YuEl510eW51VZgJ0iMbIJ Gu/lMJqwZIF+9k+bxMa85OQIppehf1oin5AoTDzqDwF6pW9R320X9QoKFSKTLfWmC9TJ Q3EAugimXCuPcqrP96JK3O5soTFpvf93K9yHhZ6KYXROteZnlTRexlphJBfSVA77wOuH sYWEHFYaHyT6t5QfdR5I60pwTrE7XlmS149PpdUpzbwUN4GAWdzpS/iSld5K4jab+iqT KfNY60i0/udkUgNz7aJugsfLAbSvSW822H/wPV+JGnotIwjEh9vpmr0bJlkxzpnMXTs0 10rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744483129; x=1745087929; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QM5uFKAHI/bfbAV4bgQOJ/dtNzxx2KflwSSXyFhKQ54=; b=Eixr08aS0Fnau29myT2aPM/OUVexSngsk/3pL0zJ7upJHghowoATNk5cEmeQiUt2Ic KTSqHcdGGjsX0ckREXi7DJHgXBL4aahsK+sMqO2xxftdMw1hgyiqV5PQVFopvowbT5LI fssydtgUhA431og8y6F7MWKF4CNspt8KETbHxKyLfGax9wEJa+zqVx48DYr3/GfhcBB/ uIjKb9IO1y8wjdZu1kxwhrKFGfcWNzIGCSgc6K+WUXFpLUkkbZPQqCDTnNpB8+53qlRj z/zQZL0Raz4WH53/4sutowmJOrbpi8bm39QKfeSCgXZKc2NH2CYzARCdZ4KdLhOnMnk6 6Vhg== X-Forwarded-Encrypted: i=1; AJvYcCV4lmNTY470RppjFZk62rXK661qHoZp1stN6mljdqEjB00SNz8Rx8kW+7eMznv8YPCfeibSMgEf@vger.kernel.org, AJvYcCVMhSLq6HtoRZeGNe31mg4macrgNaf/v9Kc38NICH9U8ABIjd9/G7slZnzqbEwJxOVI/Qe4Iwmo@vger.kernel.org, AJvYcCWv3tfR/1JjFWPMLJ/MBRL/TDuYNSKj5Pf1pWc16EqW1MMvWSww7T+P0VSC/ZWei+NHSXkhgKAlAztmGIc=@vger.kernel.org, AJvYcCXFXtaPLbgdM5+1EBtlU7TkZ8Yu6+lPJpJ9vZmwF3nD4TroRXJqWvDAq7gXnYWDcySej55uPUcuj4GH@vger.kernel.org X-Gm-Message-State: AOJu0YyRpH+Y9YQxfr3w0/0VM91jaSF+iFfoqvx++U8zUimfqw6MxRN5 aXy94lTEA9kooBJ/qmYztOrsts0Of11AjuMCkLocFtvEgyuacg1/ X-Gm-Gg: ASbGnctg7Pr3sVOQDbMKl3qfb/8TVdMO8yeBM9u+2lvvO+/5PKISte7rlLdn92R2AKG TfmM/ktLJ7svuI27UNjZmdl/HNSpIbOV/65pMJxdNvYeoWHRFP52kfy++rCOkrSxgKNH6ic7Y1e kW483aQgIpT2cm3MhIY9WusMkSSlc1FUNpEW4ecvEHGugnWwVr9A08gJ/zVRKrnQq0pbywILO8i 39L0q2MlH7zgPMmcVuT2dyhUqglxO/uF215iCxPgno1jzRAR4+oKFC8p/0xzZvqumZVHm3dui7m aqXGDveY1x92R2P7M6UJ4vpzi4kVJ3qOrIdJ+5HxVwAhvACZ7AK8KC8= X-Google-Smtp-Source: AGHT+IGOjRMbGNcVSyofzN/ItKV09dIC/2nWWi/KZ+1aoX3auTz02NmOy7o6NMmHWYvVaCx0vDG3zQ== X-Received: by 2002:a05:600c:154d:b0:43d:ed:ad07 with SMTP id 5b1f17b1804b1-43f3a9aee78mr48790995e9.29.1744483128872; Sat, 12 Apr 2025 11:38:48 -0700 (PDT) Received: from localhost.localdomain ([2a02:c7c:6696:8300:f069:f1cb:5bbc:db26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c817dsm120599515e9.23.2025.04.12.11.38.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Apr 2025 11:38:48 -0700 (PDT) From: Qasim Ijaz To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, syzbot+3361c2d6f78a3e0892f9@syzkaller.appspotmail.com, stable@vger.kernel.org Cc: Qasim Ijaz Subject: [PATCH 3/5] net: ch9200: fail fast on control_read() failures during get_mac_address() Date: Sat, 12 Apr 2025 19:38:27 +0100 Message-Id: <20250412183829.41342-4-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250412183829.41342-1-qasdev00@gmail.com> References: <20250412183829.41342-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The get_mac_address() function has an issue where it does not directly check the return value of each control_read(), instead it sums up the return values and checks them all at the end which means if any call to control_read() fails the function just continues on. Handle this by validating the return value of each call and fail fast and early instead of continuing. Fixes: 4a476bd6d1d9 ("usbnet: New driver for QinHeng CH9200 devices") Reviewed-by: Simon Horman Signed-off-by: Qasim Ijaz --- drivers/net/usb/ch9200.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/drivers/net/usb/ch9200.c b/drivers/net/usb/ch9200.c index 61eb6c207eb1..4f1d2e9045a9 100644 --- a/drivers/net/usb/ch9200.c +++ b/drivers/net/usb/ch9200.c @@ -304,24 +304,27 @@ static int ch9200_rx_fixup(struct usbnet *dev, struct sk_buff *skb) static int get_mac_address(struct usbnet *dev, unsigned char *data) { - int err = 0; unsigned char mac_addr[0x06]; - int rd_mac_len = 0; + int rd_mac_len; netdev_dbg(dev->net, "%s:\n\tusbnet VID:%0x PID:%0x\n", __func__, le16_to_cpu(dev->udev->descriptor.idVendor), le16_to_cpu(dev->udev->descriptor.idProduct)); - memset(mac_addr, 0, sizeof(mac_addr)); - rd_mac_len = control_read(dev, REQUEST_READ, 0, - MAC_REG_STATION_L, mac_addr, 0x02, - CONTROL_TIMEOUT_MS); - rd_mac_len += control_read(dev, REQUEST_READ, 0, MAC_REG_STATION_M, - mac_addr + 2, 0x02, CONTROL_TIMEOUT_MS); - rd_mac_len += control_read(dev, REQUEST_READ, 0, MAC_REG_STATION_H, - mac_addr + 4, 0x02, CONTROL_TIMEOUT_MS); - if (rd_mac_len != ETH_ALEN) - err = -EINVAL; + rd_mac_len = control_read(dev, REQUEST_READ, 0, MAC_REG_STATION_L, + mac_addr, 0x02, CONTROL_TIMEOUT_MS); + if (rd_mac_len < 0) + return rd_mac_len; + + rd_mac_len = control_read(dev, REQUEST_READ, 0, MAC_REG_STATION_M, + mac_addr + 2, 0x02, CONTROL_TIMEOUT_MS); + if (rd_mac_len < 0) + return rd_mac_len; + + rd_mac_len = control_read(dev, REQUEST_READ, 0, MAC_REG_STATION_H, + mac_addr + 4, 0x02, CONTROL_TIMEOUT_MS); + if (rd_mac_len < 0) + return rd_mac_len; data[0] = mac_addr[5]; data[1] = mac_addr[4]; @@ -330,7 +333,7 @@ static int get_mac_address(struct usbnet *dev, unsigned char *data) data[4] = mac_addr[1]; data[5] = mac_addr[0]; - return err; + return 0; } static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf) @@ -386,6 +389,9 @@ static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf) CONTROL_TIMEOUT_MS); retval = get_mac_address(dev, addr); + if (retval < 0) + return retval; + eth_hw_addr_set(dev->net, addr); return retval; From patchwork Sat Apr 12 18:38:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 880899 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D946F2253F6; Sat, 12 Apr 2025 18:38:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483134; cv=none; b=JV9t3cu1H+QttCclweK5IYe6JyyTdyXcKRuEI5ov7iv7r7c+a5qxhlC4ZRdB/DJ/lENhmoM+os3RWZUlb6ZfuPiFZ4+oGZkzr18OL1TPL6QSEPy28gfbK0UGCxNP4O80T/TBQZTMeM7f+FK4VoAUWgk8HxP6YAKGMDhVl36m8qE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483134; c=relaxed/simple; bh=aAE/d7UpQHFw50I58n0+tir89bev9C8/OsLlB+W1FH0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BvExVQ3DR6OJRVTlHvAcCj5DNQ8/6EIrzf+K9x1jywNcJuDXgq9bG2MRtdaMLSFbNETZy592v97aVN55k8oPgGJ1X8S9zQriXzh+3OrY+/CK3NNIsvyADZMlydXzZbW40lFHEfLw+w66dNAckPo/c7bxZKObpVDebYzZ++YjeRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GwSsVDnS; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GwSsVDnS" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-399737f4fa4so1622329f8f.0; Sat, 12 Apr 2025 11:38:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744483131; x=1745087931; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jvqb0KMQk6u+lJxNrDAty2Q7xf8HSHBvDR79iDfIorw=; b=GwSsVDnS4xYQn7mig9Lye7LGhHzVxNSyOCPrVyZF6wB68blCbsx6v1sbhaBEWKzvMf +ixz7MGb7MuQdbqHRRgGJBzVbNq2yey4cVFt/tsWBHA1DCd0FSNbiju/W4H5QX6sr2IJ ZJ1gcB7H5ObWuimGB6jcod14s7MnXc4rG9rSZtlIwSf6ebOiz+QnNkfTammeno+QcxLM MIr1zqBLlNzhG4iubT4NTISp0UhXzU1ULCJ2aT4HuL+x1Rk0ErWgHtfy95Agixdkv5Ad /mQZLWDL8pQEKr3jWJihbRdvarZ1qNNK7yEtSd0MGcheTGedQxAQ53Z6deZjlSB7foyv Wa5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744483131; x=1745087931; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jvqb0KMQk6u+lJxNrDAty2Q7xf8HSHBvDR79iDfIorw=; b=HrU9/IpL6Wz56IVwlyX4xQU19lteOn0s1Wu/L5jKQtmR8y/txNtrEy7MnuB44Cs9p9 TfnHbmNHiyVnWIT2FeWoe7PMmj4JYuFZpnqyIUAtnh0p9nqXXJI4Nh9JIpcK5Ps0B4ig dqD3akhT6IkxfxpY1Iv3n/3Ol/jhJWxKRDadLq2uxdu2WayL3t+VJs2QluaGd6gKtHCp 0l4VdQbMSgc6j8cdWMjVSVx0Bx250JTfltyFYXfLpplbPZj1saBApLTnlBIwDfh/IDO8 Jbs7wQuxI7cWCdubclb6WNUK8S6APFTBXsRa1Fy4aAan9p7LmojRyACevP0HaoexNfKn k5lw== X-Forwarded-Encrypted: i=1; AJvYcCVOfeSi6mAdmosWtI/oSYv6Wd0EKWQxi5WHRseylk00zIkwAfd83KT70fDD26ZkAlp+hJAqX1kc@vger.kernel.org, AJvYcCXBD6BkWgCQE+mQtTCwBgkaq4tGK4kD40E3yXALAWPt6nLHnK08TNElGJkjV0h7Vi0JRcS1DC6sep+1@vger.kernel.org, AJvYcCXHYtgQX/mvK/0CdeBVfSqYy4/j/TLEUwMm/ovYAcgm/qHYTWtVV3V3xnP1btfEB0m0acmR8YZa@vger.kernel.org, AJvYcCXNjCgnsbaW61Ue3AgpRR8+EawE0aYet+3mOji8KekYU/K1q9+iI40PPcA+QQ1g2BsaptjOvp2iKRhfOaU=@vger.kernel.org X-Gm-Message-State: AOJu0YyAXTi/jMgYS1PDr+2wiTMUeecmdtgKIvy9Kf80GvFkSSqPtQrU 044INP9s1pSzLNULw4eV67/Q6A+IhuHPrq2dycYYiKNT0feSM8+K X-Gm-Gg: ASbGncs/VLIjVWFBt899NPxgcY/LH5cdM1c+RfIwliPC74AvZbfTzJYU3pImX7lsZTj Up67tvkV08xQCVo+Kor/JJoBcECLz5h+b14PCmaX+63w3Bywxtd9g0VekpGZqHnguXcLn2Qdteu cmyQB5kD3VFNYSYAFQIh0rX5RrD4Ddd16BmSeJ+MN1RCTI20tN+oiuRria/Ez6zUkkaNBObyRS2 qGTebcKKl3F19qKwhBNjCsS3dOY4TjdR2sLQqAOnV6zjBF2TdBMKbbJq6TUmcHLswUx/JD75LvG 3D9xhHqHGMVJwdVnfTMWRU0VPVD6nVr9rcg8eW3/QbQnaSSODPhAg+0= X-Google-Smtp-Source: AGHT+IEML3MWxiYWXhrvkSwTw5jVxeWZ37spCp+ourghAiC/n6v6Nrk1vNemPhLImYX0Oqyo/GpbHQ== X-Received: by 2002:adf:b650:0:b0:399:6d26:7752 with SMTP id ffacd0b85a97d-39eaaed220dmr4425241f8f.38.1744483130917; Sat, 12 Apr 2025 11:38:50 -0700 (PDT) Received: from localhost.localdomain ([2a02:c7c:6696:8300:f069:f1cb:5bbc:db26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c817dsm120599515e9.23.2025.04.12.11.38.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Apr 2025 11:38:50 -0700 (PDT) From: Qasim Ijaz To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, syzbot+3361c2d6f78a3e0892f9@syzkaller.appspotmail.com, stable@vger.kernel.org Cc: Qasim Ijaz Subject: [PATCH 4/5] net: ch9200: add missing error handling in ch9200_bind() Date: Sat, 12 Apr 2025 19:38:28 +0100 Message-Id: <20250412183829.41342-5-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250412183829.41342-1-qasdev00@gmail.com> References: <20250412183829.41342-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 The ch9200_bind() function has no error handling for any control_write() calls. Fix this by checking if any control_write() call fails and propagate the error to the caller. Fixes: 4a476bd6d1d9 ("usbnet: New driver for QinHeng CH9200 devices") Reviewed-by: Simon Horman Signed-off-by: Qasim Ijaz --- drivers/net/usb/ch9200.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/net/usb/ch9200.c b/drivers/net/usb/ch9200.c index 4f1d2e9045a9..187bbfc991f5 100644 --- a/drivers/net/usb/ch9200.c +++ b/drivers/net/usb/ch9200.c @@ -338,12 +338,12 @@ static int get_mac_address(struct usbnet *dev, unsigned char *data) static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf) { - int retval = 0; + int retval; unsigned char data[2]; u8 addr[ETH_ALEN]; retval = usbnet_get_endpoints(dev, intf); - if (retval) + if (retval < 0) return retval; dev->mii.dev = dev->net; @@ -361,32 +361,44 @@ static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf) data[1] = 0x0F; retval = control_write(dev, REQUEST_WRITE, 0, MAC_REG_THRESHOLD, data, 0x02, CONTROL_TIMEOUT_MS); + if (retval < 0) + return retval; data[0] = 0xA0; data[1] = 0x90; retval = control_write(dev, REQUEST_WRITE, 0, MAC_REG_FIFO_DEPTH, data, 0x02, CONTROL_TIMEOUT_MS); + if (retval < 0) + return retval; data[0] = 0x30; data[1] = 0x00; retval = control_write(dev, REQUEST_WRITE, 0, MAC_REG_PAUSE, data, 0x02, CONTROL_TIMEOUT_MS); + if (retval < 0) + return retval; data[0] = 0x17; data[1] = 0xD8; retval = control_write(dev, REQUEST_WRITE, 0, MAC_REG_FLOW_CONTROL, data, 0x02, CONTROL_TIMEOUT_MS); + if (retval < 0) + return retval; /* Undocumented register */ data[0] = 0x01; data[1] = 0x00; retval = control_write(dev, REQUEST_WRITE, 0, 254, data, 0x02, CONTROL_TIMEOUT_MS); + if (retval < 0) + return retval; data[0] = 0x5F; data[1] = 0x0D; retval = control_write(dev, REQUEST_WRITE, 0, MAC_REG_CTRL, data, 0x02, CONTROL_TIMEOUT_MS); + if (retval < 0) + return retval; retval = get_mac_address(dev, addr); if (retval < 0) @@ -394,7 +406,7 @@ static int ch9200_bind(struct usbnet *dev, struct usb_interface *intf) eth_hw_addr_set(dev->net, addr); - return retval; + return 0; } static const struct driver_info ch9200_info = { From patchwork Sat Apr 12 18:38:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qasim Ijaz X-Patchwork-Id: 881008 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A19E422AE59; Sat, 12 Apr 2025 18:38:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483136; cv=none; b=juUCChTKX8Kb5wmv0z41zJOd32e5RRzKR19Iskp4V1Z8vnF16YAvVH87Tc6Az80VaUDwaYx0D+sMzeRL+bppBKqdQ8mH0p8ffyuTmlBYUDXa8u4cNn9Au2Xwdjs28c0WLVn8LrtBjB64JE2pm1uJ0O/PoapTvKFLido4K0WVXSI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744483136; c=relaxed/simple; bh=p33eXj35w3OqPN5REOigU1xwZ+LWQdjRStna6ySff7w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZESyQM5RiamfVgj4CTFsY5F41PWJTOAMsosd3j+hz9g/YkeWce4dzw/10S7pTao7UN3gbJw0m/paNru6ryv1plWRiJNlFCL8yCE7L7DK+G+pXdxJEV7k11Ia81+Dav/FWNOVJPiXytAZ7WUNPJF6hdwJHCUOTQW5oPZFqRI8Yss= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Jvhsn3BK; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Jvhsn3BK" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-43cfebc343dso23005635e9.2; Sat, 12 Apr 2025 11:38:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744483133; x=1745087933; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wuavb+wGeDAlFow8byd6Kbt5rrT1hwsnu7KsTIYCUj8=; b=Jvhsn3BKcNnGg86cf3EiVHlwantllw53Ee8q9Pqb+bdx3kSmevr5p3xWBnpYJcsLaT 9/qF+0pfarwQfVY2VoJma6n+iO+roRNw6dRvpomlR7fql9D3+CRcQJpIYJVtRmCpDZ1w 9jAy6Pix9NvdQROcTDKFQo9rPZjwVG4a0vxadbxMUDwDNm87XXMD5CeodZjRPEJbhxMQ zx/75BePmBVJnc1DxjdISdeaAMM0unPAuwQWC6AENOx2lagaEEYg53eEUli7wdZzNecr sredGs/oDY8gf0mXgfOktfKywhjnTyBoh6dU1G6auKCI7FhZEhCgNfj3s1H6gkPMlY5D raVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744483133; x=1745087933; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Wuavb+wGeDAlFow8byd6Kbt5rrT1hwsnu7KsTIYCUj8=; b=S+CEggTZlpBcKhJ9UootcGE3O8FxG2Vz6khZCVST0Hy7kN5ElW1uxNHULoBqYNUpqw OYclIlWHIN+aTqb2ZAtKERx+pgqrFRVpbm5dVSTdBG9TGgyRXtkgBglYqbuINvZ1t5Gc 3kIxWBBiipVCJSkh9NRxv3tRX5B6OGVvrVe2tiVQakbc6tks+fZiBh2bdvqsxV8+EEDW 6B9W0T4KzQ7/Y3T7XrUn9LUZhNTI4nnvo1DWirYQ0xhbOCi+gke0qVEWddozXb8ajpYS eggk8XnVvJmRyKznJ2sXzv3cnxC4t/Nl0KOFmkgcpRULM0nDowPJCMBum+eykNPiYcVG uYfA== X-Forwarded-Encrypted: i=1; AJvYcCVkS0PjY5dX6djq9U0G8c6Phc5ylkDy0ns0qjktz6TSrTyB7DQiW0dcxaABKBKMsEghnZ66YI4p@vger.kernel.org, AJvYcCWuFJ0zs+P9RZ0YXgEnm6yW1WT6LrYV+eT/tMJ2wzatRuj/J4+achV9KRIScprVn0wx6sgZAUTQ@vger.kernel.org, AJvYcCX1SlvQiq5DV1HH3WKMEQzqUd0oN0e5rhOVs/WUUT5StygHKOkDFdAM167kZOH+rwisbfgqBUBj8S7i@vger.kernel.org, AJvYcCXV48bfnCEk6CDJol/XwJvAoXQZtVV4ZrpE3oF6C6upn+wlDNm0hj49z5hD25JmryToIBhS0h09qDThUtw=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1vapzgcIeRnDc/+WlvjRbbhR+8SGAKBlw0Szben4Tfa2wb5pu x8X0Nyn9/6LrWLvlu/EayDNO9pV2azZMIq8cw11B8I9dyKAikG+h X-Gm-Gg: ASbGncvwIY1SiCXWOfwCu27RQ4Ht/BRaYyqF5gig8HJNPWsDPsw6anyegtLHQvUeRA9 0jfDr1w0Tj2lL5EjpCYlgd2GAUvLE5MxB0D6UarZJRLpIZcQ6MwRyRIFc97M0/35ZacBN51IuS/ pzZ2HATYk4IA71Jdh4+ZJ16C0xbh0fS1w5vaHPsbkX3lLpLMsNvB6cBo+PyKqmsHXwBXkwzVN7c PrKennGJM/vvmYsHYx2Ub7ieEzBhph5qjIXU9uL8vbX6V+7ilzlA1I2cCi31JbWPPpYuP8yA+nf XMFW1d/HZGH5Ao3gjWtIQ3B0AC3YrmbcDiQbfO/tpU47l2AWnIdBDssr25JYzEmoOA== X-Google-Smtp-Source: AGHT+IHyKoiHQ3xiUNTu3aWxUuAKb6FNb2OtIDwxap3KWvdKSy23MCSs0vOxYXNK6dEdmWtotysHww== X-Received: by 2002:a05:6000:1883:b0:391:2eb9:bdc5 with SMTP id ffacd0b85a97d-39ea521772emr5505267f8f.23.1744483132825; Sat, 12 Apr 2025 11:38:52 -0700 (PDT) Received: from localhost.localdomain ([2a02:c7c:6696:8300:f069:f1cb:5bbc:db26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43f233c817dsm120599515e9.23.2025.04.12.11.38.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Apr 2025 11:38:52 -0700 (PDT) From: Qasim Ijaz To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, horms@kernel.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, syzbot+3361c2d6f78a3e0892f9@syzkaller.appspotmail.com, stable@vger.kernel.org Cc: Qasim Ijaz Subject: [PATCH 5/5] net: ch9200: avoid triggering NWay restart on non-zero PHY ID Date: Sat, 12 Apr 2025 19:38:29 +0100 Message-Id: <20250412183829.41342-6-qasdev00@gmail.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250412183829.41342-1-qasdev00@gmail.com> References: <20250412183829.41342-1-qasdev00@gmail.com> Precedence: bulk X-Mailing-List: linux-usb@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 During ch9200_mdio_read if the phy_id is not 0 -ENODEV is returned. In certain cases such as in mii_nway_restart returning a negative such as -ENODEV triggers the "bmcr & BMCR_ANENABLE" check, we should avoid this on error and just end the function. To address this just return 0. Signed-off-by: Qasim Ijaz --- drivers/net/usb/ch9200.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/usb/ch9200.c b/drivers/net/usb/ch9200.c index 187bbfc991f5..281800bb2ff2 100644 --- a/drivers/net/usb/ch9200.c +++ b/drivers/net/usb/ch9200.c @@ -182,7 +182,7 @@ static int ch9200_mdio_read(struct net_device *netdev, int phy_id, int loc) __func__, phy_id, loc); if (phy_id != 0) - return -ENODEV; + return 0; ret = control_read(dev, REQUEST_READ, 0, loc * 2, buff, 0x02, CONTROL_TIMEOUT_MS);