From nobody Mon Jun 8 21:46:47 2026 Received: from mail-pj1-f52.google.com (mail-pj1-f52.google.com [209.85.216.52]) (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 56A8F3DC84E for ; Tue, 26 May 2026 10:22:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779790973; cv=none; b=um0en+jll9KtWVGy+VU8ImSkz5oRYxh2wv+vG+tlk0unE2hd9wiBj34RPs543t17OzjeIaHws2m1Z3cYYvGtk6C6cKO4ZAbmpL+zZiVvOUppe1jd8XTWvEnJl8BiDAjMWgh6tAsPv5lND4Tph0yiAsSpysMuGnIhb52qC309ZQw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779790973; c=relaxed/simple; bh=OKtF6eK9AIl/tFnl+6zGmvBcaf2/4kp/RLLsV1dGIS8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=PCmmPJuAsqVU6tjuAsGVCzDS28mdn9PUflI9swa9qU5v/m/wfb4SpemYjX/xtSY/J1nZCrDg0TI4psKyOgZGK6cmrovRr6hQ0aYmUVgjcXyOxbXsadMB3N4oMYU8ZzvYtrQ6wh/8y4UGFbe8cmF+mB9UG1rZd2mr3LrYUC2SlBY= 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=EpGu7Szh; arc=none smtp.client-ip=209.85.216.52 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="EpGu7Szh" Received: by mail-pj1-f52.google.com with SMTP id 98e67ed59e1d1-3680540a6efso5815688a91.2 for ; Tue, 26 May 2026 03:22:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779790972; x=1780395772; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=GsMFlu4zMM9QAuZhA61CFIpsfkuzQD+bunJ5hQnI6aw=; b=EpGu7Szh8NoEQkcL2TQkkU4E1kbPGxsFk4bw6zCJL5LNoGiwHSoBEi8CRDj0m6mcSK YpWo50DDsTB6wZ9MCBQAVSD9X8Wu5uJ+jVw0WxcPlTB3N3MPzE7dDg6rzSRq7I8dXC4e 6i+ZsUiD3tCpD8mVUbDAa0qoowQ+SmJBMwaBqdwXnCRGLfaT37GHsYLtXl6FgBCI51IF YB13Vh+z2BeZONHp9jko5zCW1N9xVak7AWi686uWS4NVGF30qUk3K0oqCQAZ+VrMtW0z v1tQ3TVKNm2znIBk9tPSYcSKHnAanauoZGypmGvp4kiiVBzgDEZ5pN05i2ciomwm/RdQ vwZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779790972; x=1780395772; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=GsMFlu4zMM9QAuZhA61CFIpsfkuzQD+bunJ5hQnI6aw=; b=TyhLV3swDqPElQmK50ZlpsLFY8vaYxARveUcFw1z8xrmdiI20ujgwaHT/FD9NV8bNO 9hKgUNHKyP6DdyLOsyT/VgoeHtKh+GQS/b5dciUFW/mwoOhMC64NymGx8n+WDFft9eZ0 ZyqCnZNNzWwLwfVG2D575i1yqcAr18CDiAt3Ipzkukw6of7vRNYbmeujRAxVOLVsxkyJ R7TSAa21FEgmAIZGfjYYow1CdVXt+JlkeSTWzZYMBa1XBkx1nHbxAD0fFJDLg30t0DUJ hJklOKIAdCcBhFiUfFFRgjW3QFzzNe/3bsnViiGx01/H89WSEDqvGPnfInNsAjFSVA8o c3eg== X-Forwarded-Encrypted: i=1; AFNElJ8oRxne02p1Job8mNY3XVHxZGlNnW/FPs+Bxt+Cc4yVrtya91YW/OPvjVkLhg2M6kaE7YJvBEJnUGC53O8=@vger.kernel.org X-Gm-Message-State: AOJu0YypdWwJdgTQBHfMMGZh+ET4hyhqicgxzE/qoXjYZrcRcQC7AX2J HMUcK4iOVZ5FoLmpmtM/0XPnbCYotZv9wLVRLZbUOFk3w5H+HYhRRKsUxzvT9E7V X-Gm-Gg: Acq92OHKU4wINTUlVKZtY8sd3n+hHKHOUaMZvFiQ5YbpdGaQDhDFPJPdWEQccx5z2mR U5IZk+b+Pu0iv+bz9TsoV7vMCFMzlf75cgQBSSipkYauoUtK1LGMKReq1NGC+8qfCnY3wuZW/cQ RGhEa44i3IGRaal58dbSexLSIFghriyzpZVISbOdRgofOhhn+KTm4caci+Uu8Ii3kLv00eNsj4I qbjU8T4pl6nuROZCjdKH+IaDaoaTiB4SOT2Ki5SQQRZPy9WpsZgDbIZ4lAOKpkoxL4k17hgK8XJ +jTqMSCrauHX9uM567GieBw0PA8+C6K6JmLRyPMVcgM/SuOo6l2jgyjxDsf9pS5jm2c0W3OhIz4 xlPwkSV68N18iDVTEJ5mbpfg9U6KL7BMjA65sLZF72cy03B5ifOskEVn4iwWLRixzz7SBQYbD95 jXWPJfp+1iLSAoq5WFHZqvk9rUh3/M8/7jAhzOWxlmV2xkOhamZSiG7BijVhZ92h1H284kpnWq X-Received: by 2002:a17:90b:42:b0:36a:f382:9f72 with SMTP id 98e67ed59e1d1-36af382a1efmr4718899a91.13.1779790971630; Tue, 26 May 2026 03:22:51 -0700 (PDT) Received: from chaitanya-virtualbox.. ([103.249.241.55]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36a71d9416csm16435713a91.3.2026.05.26.03.22.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 May 2026 03:22:51 -0700 (PDT) From: Chaitanya Sabnis To: brgl@kernel.org, andi.shyti@kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Chaitanya Sabnis , Sashiko , Bartosz Golaszewski Subject: [PATCH v4] i2c: davinci: fix division by zero on missing clock-frequency Date: Tue, 26 May 2026 15:52:40 +0530 Message-ID: <20260526102240.4949-1-chaitanya.msabnis@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When the 'clock-frequency' property is missing from the device tree, the driver falls back to DAVINCI_I2C_DEFAULT_BUS_FREQ. However, this macro was defined in kHz (100), whereas the device tree property is expected in Hz. The probe function divided the fallback value by 1000, causing integer truncation that resulted in dev->bus_freq =3D 0. This triggered a deterministic division-by-zero kernel panic when calculating clock dividers later in the probe sequence. Fix this by redefining DAVINCI_I2C_DEFAULT_BUS_FREQ in Hz (100000) to match the expected device tree property unit, allowing the existing division logic to work correctly for both cases. Fixes: b04ce6385979 ("i2c: davinci: kill platform data") Reported-by: Sashiko Closes: https://lore.kernel.org/all/20260514044726.57297C2BCB7@smtp.kernel.= org/ Signed-off-by: Chaitanya Sabnis Reviewed-by: Bartosz Golaszewski --- Changes in v4: - Restored accidentally removed blank lines (removed ninja changes). - Collected Reviewed-by tag. Changes in v3: - Reverted probe function changes and correctly applied the fix to the macr= o. Changes in v2: - Changed approach: updated macro to Hz instead of dividing in probe. - Added Fixes tag. drivers/i2c/busses/i2c-davinci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davi= nci.c index a773ba082321..66c23535656b 100644 --- a/drivers/i2c/busses/i2c-davinci.c +++ b/drivers/i2c/busses/i2c-davinci.c @@ -117,7 +117,7 @@ /* timeout for pm runtime autosuspend */ #define DAVINCI_I2C_PM_TIMEOUT 1000 /* ms */ =20 -#define DAVINCI_I2C_DEFAULT_BUS_FREQ 100 +#define DAVINCI_I2C_DEFAULT_BUS_FREQ 100000 =20 struct davinci_i2c_dev { struct device *dev; --=20 2.43.0