From: Bence Csokas <bence.csokas@arm.com>
To: "Chengchang Tang" <tangchengchang@huawei.com>,
"Junxian Huang" <huangjunxian6@hisilicon.com>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Leon Romanovsky" <leon@kernel.org>,
"Miri Korenblit" <miriam.rachel.korenblit@intel.com>,
"Jes Sorensen" <Jes.Sorensen@gmail.com>,
"Ping-Ke Shih" <pkshih@realtek.com>,
"Johannes Berg" <johannes@sipsolutions.net>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Eduard Zingerman" <eddyz87@gmail.com>,
"Kumar Kartikeya Dwivedi" <memxor@gmail.com>,
"Martin KaFai Lau" <martin.lau@linux.dev>,
"Song Liu" <song@kernel.org>,
"Yonghong Song" <yonghong.song@linux.dev>,
"Jiri Olsa" <jolsa@kernel.org>,
"Emil Tsalapatis" <emil@etsalapatis.com>,
"Ihor Solodrai" <ihor.solodrai@linux.dev>,
"David S. Miller" <davem@davemloft.net>,
"Eric Dumazet" <edumazet@kernel.org>,
"Jakub Kicinski" <kuba@kernel.org>,
"Paolo Abeni" <pabeni@redhat.com>,
"Simon Horman" <horms@kernel.org>,
"Steffen Klassert" <steffen.klassert@secunet.com>,
"Herbert Xu" <herbert@gondor.apana.org.au>,
"Mickaël Salaün" <mic@digikod.net>,
"Günther Noack" <gnoack@google.com>,
"Paul Moore" <paul@paul-moore.com>,
"James Morris" <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
"Vineet Gupta" <vgupta@kernel.org>,
"Marcel Holtmann" <marcel@holtmann.org>,
"Luiz Augusto von Dentz" <luiz.dentz@gmail.com>,
"Sumit Semwal" <sumit.semwal@linaro.org>,
"Christian König" <christian.koenig@amd.com>,
"Philipp Stanner" <phasta@kernel.org>,
"Sudeep Holla" <sudeep.holla@kernel.org>,
"Cristian Marussi" <cristian.marussi@arm.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Jani Nikula" <jani.nikula@linux.intel.com>,
"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Tvrtko Ursulin" <tursulin@ursulin.net>,
"Lyude Paul" <lyude@redhat.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"Zack Rusin" <zack.rusin@broadcom.com>,
"Broadcom internal kernel review list"
<bcm-kernel-feedback-list@broadcom.com>,
"Selvin Xavier" <selvin.xavier@broadcom.com>,
"Kalesh AP" <kalesh-anakkur.purayil@broadcom.com>,
"Laurent Pinchart" <laurent.pinchart@ideasonboard.com>,
"Hans de Goede" <hansg@kernel.org>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
"Haiyang Zhang" <haiyangz@microsoft.com>,
"Wei Liu" <wei.liu@kernel.org>,
"Dexuan Cui" <decui@microsoft.com>,
"Andrew Lunn" <andrew+netdev@lunn.ch>,
"Benson Leung" <bleung@chromium.org>,
"Tzung-Bi Shih" <tzungbi@kernel.org>,
"Guenter Roeck" <groeck@chromium.org>,
"Nilesh Javali" <njavali@marvell.com>,
GR-QLogic-Storage-Upstream@marvell.com,
"James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>,
"Martin K. Petersen" <mkp@kernel.org>,
"Alexander Viro" <viro@zeniv.linux.org.uk>,
"Christian Brauner" <brauner@kernel.org>,
"Jan Kara" <jack@suse.cz>, "Paulo Alcantara" <pc@manguebit.org>,
"Namjae Jeon" <linkinjeon@kernel.org>,
"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
"Shyam Prasad N" <sprasad@microsoft.com>,
"Tom Talpey" <tom@talpey.com>,
"Bharath SM" <bharathsm@microsoft.com>,
"Carlos Maiolino" <cem@kernel.org>,
"Thomas Gleixner" <tglx@kernel.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Peter Zijlstra" <peterz@infradead.org>,
"Darren Hart" <dvhart@infradead.org>,
"Davidlohr Bueso" <dave@stgolabs.net>,
"André Almeida" <andrealmeid@igalia.com>,
"David Ahern" <dsahern@kernel.org>,
"Ido Schimmel" <idosch@nvidia.com>,
"Willem de Bruijn" <willemdebruijn.kernel@gmail.com>,
"Geoffrey D. Bennett" <g@b4.vu>,
"Jaroslav Kysela" <perex@perex.cz>,
"Takashi Iwai" <tiwai@suse.com>
Cc: linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org,
linux-wireless@vger.kernel.org, bpf@vger.kernel.org,
netdev@vger.kernel.org, linux-security-module@vger.kernel.org,
linux-snps-arc@lists.infradead.org,
linux-bluetooth@vger.kernel.org, linux-media@vger.kernel.org,
dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org,
arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org,
linux-hyperv@vger.kernel.org, chrome-platform@lists.linux.dev,
linux-scsi@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-cifs@vger.kernel.org, samba-technical@lists.samba.org,
linux-xfs@vger.kernel.org, linux-sound@vger.kernel.org,
Bence Csokas <bence.csokas@arm.com>
Subject: [PATCH 3/3] treewide: Use offsetofp()
Date: Thu, 05 Nov 2026 18:16:18 +0100 [thread overview]
Message-ID: <20261105-offsetof-v1-3-4153f5c10edc@arm.com> (raw)
In-Reply-To: <20261105-offsetof-v1-0-4153f5c10edc@arm.com>
Generated with the following simple Coccinelle patch:
@@
expression ptr, member;
@@
- offsetof(typeof(*ptr), member)
+ offsetofp(ptr, member)
Signed-off-by: Bence Csokas <bence.csokas@arm.com>
---
arch/arc/kernel/unwind.c | 4 ++--
drivers/bluetooth/btmrvl_main.c | 12 +++++-----
drivers/dma-buf/dma-resv.c | 2 +-
drivers/firmware/arm_scmi/base.c | 2 +-
drivers/gpu/drm/drm_edid.c | 26 +++++++++++-----------
drivers/gpu/drm/i915/gem/i915_gem_object.c | 4 ++--
drivers/gpu/drm/i915/i915_active.c | 2 +-
drivers/gpu/drm/i915/i915_sw_fence_work.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 12 +++++-----
drivers/infiniband/hw/bnxt_re/qplib_fp.c | 2 +-
drivers/media/usb/uvc/uvc_v4l2.c | 4 ++--
drivers/net/hyperv/rndis_filter.c | 2 +-
drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/rs.c | 2 +-
drivers/net/wireless/realtek/rtw89/core.c | 2 +-
drivers/platform/chrome/cros_ec_lightbar.c | 4 ++--
drivers/scsi/qla2xxx/qla_gs.c | 2 +-
drivers/scsi/qla2xxx/qla_mbx.c | 2 +-
drivers/scsi/qla2xxx/qla_os.c | 2 +-
drivers/scsi/qla2xxx/qla_tmpl.c | 4 ++--
drivers/scsi/scsi_transport_fc.c | 2 +-
fs/readdir.c | 2 +-
fs/smb/client/cifssmb.c | 4 ++--
fs/smb/client/reparse.c | 2 +-
fs/xfs/scrub/attr.c | 4 ++--
fs/xfs/scrub/attr_repair.c | 4 ++--
fs/xfs/scrub/dir.c | 4 ++--
fs/xfs/scrub/dir_repair.c | 4 ++--
kernel/futex/core.c | 2 +-
net/ipv4/ip_output.c | 4 ++--
net/ipv4/udp.c | 4 ++--
net/ipv6/udp.c | 4 ++--
net/mac80211/agg-rx.c | 3 +--
net/mac80211/agg-tx.c | 3 +--
net/mac80211/parse.c | 2 +-
net/mac80211/tdls.c | 4 ++--
sound/usb/mixer_scarlett2.c | 2 +-
39 files changed, 75 insertions(+), 77 deletions(-)
diff --git a/arch/arc/kernel/unwind.c b/arch/arc/kernel/unwind.c
index 6fdc751f906e..dae3b5f3dff6 100644
--- a/arch/arc/kernel/unwind.c
+++ b/arch/arc/kernel/unwind.c
@@ -310,11 +310,11 @@ static void init_unwind_hdr(struct unwind_table *table,
header->fde_count_enc = DW_EH_PE_abs | DW_EH_PE_data4;
header->table_enc = DW_EH_PE_abs | DW_EH_PE_native;
put_unaligned((unsigned long)table->address, &header->eh_frame_ptr);
- BUILD_BUG_ON(offsetof(typeof(*header), fde_count)
+ BUILD_BUG_ON(offsetofp(header, fde_count)
% __alignof(typeof(header->fde_count)));
header->fde_count = n;
- BUILD_BUG_ON(offsetof(typeof(*header), table)
+ BUILD_BUG_ON(offsetofp(header, table)
% __alignof(typeof(*header->table)));
for (fde = table->address, tableSize = table->size, n = 0;
tableSize;
diff --git a/drivers/bluetooth/btmrvl_main.c b/drivers/bluetooth/btmrvl_main.c
index d449fbdde464..ba23a31ed6d9 100644
--- a/drivers/bluetooth/btmrvl_main.c
+++ b/drivers/bluetooth/btmrvl_main.c
@@ -81,7 +81,7 @@ int btmrvl_process_event(struct btmrvl_private *priv, struct sk_buff *skb)
struct btmrvl_event *event;
int ret = 0;
- if (skb->len <= offsetof(typeof(*event), data[0]))
+ if (skb->len <= offsetofp(event, data[0]))
return -EINVAL;
event = (struct btmrvl_event *) skb->data;
@@ -92,7 +92,7 @@ int btmrvl_process_event(struct btmrvl_private *priv, struct sk_buff *skb)
switch (event->data[0]) {
case BT_EVENT_AUTO_SLEEP_MODE:
- if (skb->len <= offsetof(typeof(*event), data[2]))
+ if (skb->len <= offsetofp(event, data[2]))
return -EINVAL;
if (!event->data[2]) {
if (event->data[1] == BT_PS_ENABLE)
@@ -107,7 +107,7 @@ int btmrvl_process_event(struct btmrvl_private *priv, struct sk_buff *skb)
break;
case BT_EVENT_HOST_SLEEP_CONFIG:
- if (skb->len <= offsetof(typeof(*event), data[3]))
+ if (skb->len <= offsetofp(event, data[3]))
return -EINVAL;
if (!event->data[3])
BT_DBG("gpio=%x, gap=%x", event->data[1],
@@ -117,7 +117,7 @@ int btmrvl_process_event(struct btmrvl_private *priv, struct sk_buff *skb)
break;
case BT_EVENT_HOST_SLEEP_ENABLE:
- if (skb->len <= offsetof(typeof(*event), data[1]))
+ if (skb->len <= offsetofp(event, data[1]))
return -EINVAL;
if (!event->data[1]) {
adapter->hs_state = HS_ACTIVATED;
@@ -131,7 +131,7 @@ int btmrvl_process_event(struct btmrvl_private *priv, struct sk_buff *skb)
break;
case BT_EVENT_MODULE_CFG_REQ:
- if (skb->len <= offsetof(typeof(*event), data[2]))
+ if (skb->len <= offsetofp(event, data[2]))
return -EINVAL;
if (priv->btmrvl_dev.sendcmdflag &&
event->data[1] == MODULE_BRINGUP_REQ) {
@@ -150,7 +150,7 @@ int btmrvl_process_event(struct btmrvl_private *priv, struct sk_buff *skb)
break;
case BT_EVENT_POWER_STATE:
- if (skb->len <= offsetof(typeof(*event), data[1]))
+ if (skb->len <= offsetofp(event, data[1]))
return -EINVAL;
if (event->data[1] == BT_PS_SLEEP)
adapter->ps_state = PS_SLEEP;
diff --git a/drivers/dma-buf/dma-resv.c b/drivers/dma-buf/dma-resv.c
index 2365a6d8ca15..83c204458d40 100644
--- a/drivers/dma-buf/dma-resv.c
+++ b/drivers/dma-buf/dma-resv.c
@@ -108,7 +108,7 @@ static struct dma_resv_list *dma_resv_list_alloc(unsigned int max_fences)
return NULL;
/* Given the resulting bucket size, recalculated max_fences. */
- list->max_fences = (size - offsetof(typeof(*list), table)) /
+ list->max_fences = (size - offsetofp(list, table)) /
sizeof(*list->table);
return list;
diff --git a/drivers/firmware/arm_scmi/base.c b/drivers/firmware/arm_scmi/base.c
index a9cea09355ff..3270268e578b 100644
--- a/drivers/firmware/arm_scmi/base.c
+++ b/drivers/firmware/arm_scmi/base.c
@@ -340,7 +340,7 @@ static void *scmi_base_fill_custom_report(const struct scmi_protocol_handle *ph,
if (evt_id != SCMI_EVENT_BASE_ERROR_EVENT || sizeof(*p) < payld_sz)
return NULL;
- expected_sz = offsetof(typeof(*p), msg_reports);
+ expected_sz = offsetofp(p, msg_reports);
if (payld_sz < expected_sz)
return NULL;
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 3148038747b6..b2960eff80cd 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3124,9 +3124,9 @@ EXPORT_SYMBOL(drm_mode_find_dmt);
static bool is_display_descriptor(const struct detailed_timing *descriptor, u8 type)
{
- BUILD_BUG_ON(offsetof(typeof(*descriptor), pixel_clock) != 0);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.pad1) != 2);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.type) != 3);
+ BUILD_BUG_ON(offsetofp(descriptor, pixel_clock) != 0);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.pad1) != 2);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.type) != 3);
return descriptor->pixel_clock == 0 &&
descriptor->data.other_data.pad1 == 0 &&
@@ -3135,7 +3135,7 @@ static bool is_display_descriptor(const struct detailed_timing *descriptor, u8 t
static bool is_detailed_timing_descriptor(const struct detailed_timing *descriptor)
{
- BUILD_BUG_ON(offsetof(typeof(*descriptor), pixel_clock) != 0);
+ BUILD_BUG_ON(offsetofp(descriptor, pixel_clock) != 0);
return descriptor->pixel_clock != 0;
}
@@ -3207,8 +3207,8 @@ is_rb(const struct detailed_timing *descriptor, void *data)
if (!is_display_descriptor(descriptor, EDID_DETAIL_MONITOR_RANGE))
return;
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.flags) != 10);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.formula.cvt.flags) != 15);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.flags) != 10);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.formula.cvt.flags) != 15);
if (descriptor->data.other_data.data.range.flags == DRM_EDID_CVT_SUPPORT_FLAG &&
descriptor->data.other_data.data.range.formula.cvt.flags & DRM_EDID_CVT_FLAGS_REDUCED_BLANKING)
@@ -3237,7 +3237,7 @@ find_gtf2(const struct detailed_timing *descriptor, void *data)
if (!is_display_descriptor(descriptor, EDID_DETAIL_MONITOR_RANGE))
return;
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.flags) != 10);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.flags) != 10);
if (descriptor->data.other_data.data.range.flags == DRM_EDID_SECONDARY_GTF_SUPPORT_FLAG)
*res = descriptor;
@@ -3251,7 +3251,7 @@ drm_gtf2_hbreak(const struct drm_edid *drm_edid)
drm_for_each_detailed_block(drm_edid, find_gtf2, &descriptor);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.formula.gtf2.hfreq_start_khz) != 12);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.formula.gtf2.hfreq_start_khz) != 12);
return descriptor ? descriptor->data.other_data.data.range.formula.gtf2.hfreq_start_khz * 2 : 0;
}
@@ -3263,7 +3263,7 @@ drm_gtf2_2c(const struct drm_edid *drm_edid)
drm_for_each_detailed_block(drm_edid, find_gtf2, &descriptor);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.formula.gtf2.c) != 13);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.formula.gtf2.c) != 13);
return descriptor ? descriptor->data.other_data.data.range.formula.gtf2.c : 0;
}
@@ -3275,7 +3275,7 @@ drm_gtf2_m(const struct drm_edid *drm_edid)
drm_for_each_detailed_block(drm_edid, find_gtf2, &descriptor);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.formula.gtf2.m) != 14);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.formula.gtf2.m) != 14);
return descriptor ? le16_to_cpu(descriptor->data.other_data.data.range.formula.gtf2.m) : 0;
}
@@ -3287,7 +3287,7 @@ drm_gtf2_k(const struct drm_edid *drm_edid)
drm_for_each_detailed_block(drm_edid, find_gtf2, &descriptor);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.formula.gtf2.k) != 16);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.formula.gtf2.k) != 16);
return descriptor ? descriptor->data.other_data.data.range.formula.gtf2.k : 0;
}
@@ -3299,7 +3299,7 @@ drm_gtf2_2j(const struct drm_edid *drm_edid)
drm_for_each_detailed_block(drm_edid, find_gtf2, &descriptor);
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.formula.gtf2.j) != 17);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.formula.gtf2.j) != 17);
return descriptor ? descriptor->data.other_data.data.range.formula.gtf2.j : 0;
}
@@ -3312,7 +3312,7 @@ get_timing_level(const struct detailed_timing *descriptor, void *data)
if (!is_display_descriptor(descriptor, EDID_DETAIL_MONITOR_RANGE))
return;
- BUILD_BUG_ON(offsetof(typeof(*descriptor), data.other_data.data.range.flags) != 10);
+ BUILD_BUG_ON(offsetofp(descriptor, data.other_data.data.range.flags) != 10);
switch (descriptor->data.other_data.data.range.flags) {
case DRM_EDID_DEFAULT_GTF_SUPPORT_FLAG:
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_object.c b/drivers/gpu/drm/i915/gem/i915_gem_object.c
index 9e01f8b2079a..0c05babc6779 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_object.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_object.c
@@ -101,8 +101,8 @@ void i915_gem_object_init(struct drm_i915_gem_object *obj,
* A gem object is embedded both in a struct ttm_buffer_object :/ and
* in a drm_i915_gem_object. Make sure they are aliased.
*/
- BUILD_BUG_ON(offsetof(typeof(*obj), base) !=
- offsetof(typeof(*obj), __do_not_access.base));
+ BUILD_BUG_ON(offsetofp(obj, base) !=
+ offsetofp(obj, __do_not_access.base));
spin_lock_init(&obj->vma.lock);
INIT_LIST_HEAD(&obj->vma.list);
diff --git a/drivers/gpu/drm/i915/i915_active.c b/drivers/gpu/drm/i915/i915_active.c
index b2442f05825e..bd2468e34ac8 100644
--- a/drivers/gpu/drm/i915/i915_active.c
+++ b/drivers/gpu/drm/i915/i915_active.c
@@ -263,7 +263,7 @@ static struct active_node *__active_lookup(struct i915_active *ref, u64 idx)
return it;
}
- BUILD_BUG_ON(offsetof(typeof(*it), node));
+ BUILD_BUG_ON(offsetofp(it, node));
/* While active, the tree can only be built; not destroyed */
GEM_BUG_ON(i915_active_is_idle(ref));
diff --git a/drivers/gpu/drm/i915/i915_sw_fence_work.c b/drivers/gpu/drm/i915/i915_sw_fence_work.c
index 366418108f78..4b3c94355ba1 100644
--- a/drivers/gpu/drm/i915/i915_sw_fence_work.c
+++ b/drivers/gpu/drm/i915/i915_sw_fence_work.c
@@ -70,7 +70,7 @@ static void fence_release(struct dma_fence *fence)
i915_sw_fence_fini(&f->chain);
- BUILD_BUG_ON(offsetof(typeof(*f), dma));
+ BUILD_BUG_ON(offsetofp(f, dma));
dma_fence_free(&f->dma);
}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
index 63aa30f94747..8dafb9bddf23 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
@@ -1169,7 +1169,7 @@ r535_gsp_shared_init(struct nvkm_gsp *gsp)
cmdq->tx.msgCount = (cmdq->tx.size - cmdq->tx.entryOff) / cmdq->tx.msgSize;
cmdq->tx.writePtr = 0;
cmdq->tx.flags = 1;
- cmdq->tx.rxHdrOff = offsetof(typeof(*cmdq), rx.readPtr);
+ cmdq->tx.rxHdrOff = offsetofp(cmdq, rx.readPtr);
msgq = gsp->shm.msgq.ptr;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index a9136a6523cb..7aa03e0de6f6 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -2609,12 +2609,12 @@ static int vmw_cmd_dx_check_subresource(struct vmw_private *dev_priv,
};
} *cmd;
- BUILD_BUG_ON(offsetof(typeof(*cmd), r_body.sid) !=
- offsetof(typeof(*cmd), sid));
- BUILD_BUG_ON(offsetof(typeof(*cmd), i_body.sid) !=
- offsetof(typeof(*cmd), sid));
- BUILD_BUG_ON(offsetof(typeof(*cmd), u_body.sid) !=
- offsetof(typeof(*cmd), sid));
+ BUILD_BUG_ON(offsetofp(cmd, r_body.sid) !=
+ offsetofp(cmd, sid));
+ BUILD_BUG_ON(offsetofp(cmd, i_body.sid) !=
+ offsetofp(cmd, sid));
+ BUILD_BUG_ON(offsetofp(cmd, u_body.sid) !=
+ offsetofp(cmd, sid));
cmd = container_of(header, typeof(*cmd), header);
return vmw_cmd_res_check(dev_priv, sw_context, vmw_res_surface,
diff --git a/drivers/infiniband/hw/bnxt_re/qplib_fp.c b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
index 5301e4f21ade..2d0be579e0b2 100644
--- a/drivers/infiniband/hw/bnxt_re/qplib_fp.c
+++ b/drivers/infiniband/hw/bnxt_re/qplib_fp.c
@@ -780,7 +780,7 @@ int bnxt_qplib_post_srq_recv(struct bnxt_qplib_srq *srq,
srqe->wqe_type = wqe->type;
srqe->flags = wqe->flags;
srqe->wqe_size = wqe->num_sge +
- ((offsetof(typeof(*srqe), data) + 15) >> 4);
+ ((offsetofp(srqe, data) + 15) >> 4);
srqe->wr_id[0] = cpu_to_le32((u32)next);
srq->swq[next].wr_id = wqe->wr_id;
diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c
index 644c2f1cd8e6..0ea8048d81f3 100644
--- a/drivers/media/usb/uvc/uvc_v4l2.c
+++ b/drivers/media/usb/uvc/uvc_v4l2.c
@@ -1108,7 +1108,7 @@ static int uvc_v4l2_get_xu_mapping(struct uvc_xu_control_mapping *kp,
static int uvc_v4l2_put_xu_mapping(const struct uvc_xu_control_mapping *kp,
struct uvc_xu_control_mapping32 __user *up)
{
- if (copy_to_user(up, kp, offsetof(typeof(*up), menu_info)) ||
+ if (copy_to_user(up, kp, offsetofp(up, menu_info)) ||
put_user(kp->menu_count, &up->menu_count))
return -EFAULT;
@@ -1147,7 +1147,7 @@ static int uvc_v4l2_get_xu_query(struct uvc_xu_control_query *kp,
static int uvc_v4l2_put_xu_query(const struct uvc_xu_control_query *kp,
struct uvc_xu_control_query32 __user *up)
{
- if (copy_to_user(up, kp, offsetof(typeof(*up), data)))
+ if (copy_to_user(up, kp, offsetofp(up, data)))
return -EFAULT;
return 0;
}
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 9b6c44979b4e..edaf1fab04cc 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -1041,7 +1041,7 @@ static int rndis_filter_set_packet_filter(struct rndis_device *dev,
set = &request->request_msg.msg.set_req;
set->oid = RNDIS_OID_GEN_CURRENT_PACKET_FILTER;
set->info_buflen = sizeof(u32);
- set->info_buf_offset = offsetof(typeof(*set), info_buf);
+ set->info_buf_offset = offsetofp(set, info_buf);
memcpy(set->info_buf, &new_filter, sizeof(u32));
ret = rndis_filter_send_request(dev, request);
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index 0982e60842b1..72e45564b5ef 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -736,7 +736,7 @@ static void iwl_parse_dbg_tlv_assert_tables(struct iwl_drv *drv,
u32 length = le32_to_cpu(tlv->length);
u32 addr;
- if (length < offsetof(typeof(*region), special_mem) +
+ if (length < offsetofp(region, special_mem) +
sizeof(region->special_mem))
return;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
index e2382be8edd7..c2f3f2f7d838 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c
@@ -625,7 +625,7 @@ void iwl_mvm_rs_fw_rate_init(struct iwl_mvm *mvm,
cfg_cmd.sta_id = mvm_link_sta->sta_id;
lq_sta = &mvm_link_sta->lq_sta.rs_fw;
- memset(lq_sta, 0, offsetof(typeof(*lq_sta), pers));
+ memset(lq_sta, 0, offsetofp(lq_sta, pers));
rcu_read_unlock();
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
index d1619a229d8f..4bbcc17d417f 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
@@ -2939,7 +2939,7 @@ static void rs_drv_rate_init(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
lockdep_assert_held(&mvmsta->deflink.lq_sta.rs_drv.pers.lock);
/* clear all non-persistent lq data */
- memset(lq_sta, 0, offsetof(typeof(*lq_sta), pers));
+ memset(lq_sta, 0, offsetofp(lq_sta, pers));
sband = hw->wiphy->bands[band];
diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index 58ee5efc3b5e..e839ea321f1a 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -2605,7 +2605,7 @@ static void rtw89_vif_sync_bcn_tsf(struct rtw89_vif_link *rtwvif_link,
{
struct ieee80211_mgmt *mgmt = (typeof(mgmt))hdr;
- if (len < offsetof(typeof(*mgmt), u.beacon.variable))
+ if (len < offsetofp(mgmt, u.beacon.variable))
return;
WRITE_ONCE(rtwvif_link->sync_bcn_tsf, le64_to_cpu(mgmt->u.beacon.timestamp));
diff --git a/drivers/platform/chrome/cros_ec_lightbar.c b/drivers/platform/chrome/cros_ec_lightbar.c
index 96dde19b15fa..f45fa7e069a9 100644
--- a/drivers/platform/chrome/cros_ec_lightbar.c
+++ b/drivers/platform/chrome/cros_ec_lightbar.c
@@ -460,7 +460,7 @@ static ssize_t sequence_store(struct device *dev, struct device_attribute *attr,
param = (struct ec_params_lightbar *)msg->data;
param->cmd = LIGHTBAR_CMD_SEQ;
param->seq.num = num;
- msg->outsize = offsetof(typeof(*param), seq) + sizeof(param->seq);
+ msg->outsize = offsetofp(param, seq) + sizeof(param->seq);
msg->insize = 0;
ret = lb_throttle();
if (ret)
@@ -508,7 +508,7 @@ static ssize_t program_store(struct device *dev, struct device_attribute *attr,
* Bound the payload strictly by the maximum value the structural
* size field can natively support.
*/
- extra_bytes = offsetof(typeof(*param), set_program_ex) +
+ extra_bytes = offsetofp(param, set_program_ex) +
sizeof(param->set_program_ex);
max_size = min_t(size_t, ec->ec_dev->max_request - extra_bytes,
type_max(typeof(param->set_program_ex.size)));
diff --git a/drivers/scsi/qla2xxx/qla_gs.c b/drivers/scsi/qla2xxx/qla_gs.c
index 20b1aef455c4..470fba1047f3 100644
--- a/drivers/scsi/qla2xxx/qla_gs.c
+++ b/drivers/scsi/qla2xxx/qla_gs.c
@@ -185,7 +185,7 @@ qla2x00_chk_ms_status(scsi_qla_host_t *vha, ms_iocb_entry_t *ms_pkt,
comp_status, ct_rsp->header.response);
ql_dump_buffer(ql_dbg_disc + ql_dbg_buffer, vha,
0x2078, ct_rsp,
- offsetof(typeof(*ct_rsp), rsp));
+ offsetofp(ct_rsp, rsp));
rval = QLA_INVALID_COMMAND;
} else
rval = QLA_SUCCESS;
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c
index 59ec5605930b..62086459d60d 100644
--- a/drivers/scsi/qla2xxx/qla_mbx.c
+++ b/drivers/scsi/qla2xxx/qla_mbx.c
@@ -3225,7 +3225,7 @@ qla2x00_get_link_status(scsi_qla_host_t *vha, uint16_t loop_id,
mbx_cmd_t mc;
mbx_cmd_t *mcp = &mc;
uint32_t *iter = (uint32_t *)stats;
- ushort dwords = offsetof(typeof(*stats), link_up_cnt)/sizeof(*iter);
+ ushort dwords = offsetofp(stats, link_up_cnt)/sizeof(*iter);
struct qla_hw_data *ha = vha->hw;
ql_dbg(ql_dbg_mbx + ql_dbg_verbose, vha, 0x1084,
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 3c412c7fb6fe..cbdc22b24227 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -6263,7 +6263,7 @@ void qla24xx_process_purex_rdp(struct scsi_qla_host *vha,
if (qla25xx_rdp_rsp_reduce_size(vha, purex)) {
rsp_payload_length =
- offsetof(typeof(*rsp_payload), optical_elmt_desc);
+ offsetofp(rsp_payload, optical_elmt_desc);
ql_dbg(ql_dbg_init, vha, 0x0181,
"Reducing RSP payload length to %u bytes...\n",
rsp_payload_length);
diff --git a/drivers/scsi/qla2xxx/qla_tmpl.c b/drivers/scsi/qla2xxx/qla_tmpl.c
index f96b9eb15126..6640fe0299dd 100644
--- a/drivers/scsi/qla2xxx/qla_tmpl.c
+++ b/drivers/scsi/qla2xxx/qla_tmpl.c
@@ -7,7 +7,7 @@
#include "qla_tmpl.h"
#define ISPREG(vha) (&(vha)->hw->iobase->isp24)
-#define IOBAR(reg) offsetof(typeof(*(reg)), iobase_addr)
+#define IOBAR(reg) offsetofp((reg), iobase_addr)
#define IOBASE(vha) IOBAR(ISPREG(vha))
#define INVALID_ENTRY ((struct qla27xx_fwdt_entry *)0xffffffffffffffffUL)
@@ -722,7 +722,7 @@ static struct qla27xx_fwdt_entry *
qla27xx_fwdt_entry_t275(struct scsi_qla_host *vha,
struct qla27xx_fwdt_entry *ent, void *buf, ulong *len)
{
- ulong offset = offsetof(typeof(*ent), t275.buffer);
+ ulong offset = offsetofp(ent, t275.buffer);
ulong length = le32_to_cpu(ent->t275.length);
ulong size = le32_to_cpu(ent->hdr.size);
void *buffer = ent->t275.buffer;
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index bec6ca38375b..5443ef3978b7 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -570,7 +570,7 @@ fc_host_post_fc_event(struct Scsi_Host *shost, u32 event_number,
event->event_code = event_code;
if (data_len)
memcpy(event->event_data_flex, data_buf, data_len);
- padding = len - offsetof(typeof(*event), event_data_flex) - data_len;
+ padding = len - offsetofp(event, event_data_flex) - data_len;
memset(event->event_data_flex + data_len, 0, padding);
nlmsg_multicast(scsi_nl_sock, skb, 0, SCSI_NL_GRP_FC_EVENTS,
diff --git a/fs/readdir.c b/fs/readdir.c
index f2288841337a..275ed265bcc4 100644
--- a/fs/readdir.c
+++ b/fs/readdir.c
@@ -22,7 +22,7 @@
#include <linux/compat.h>
#include <linux/uaccess.h>
-#define dirent_size(dirent, len) offsetof(typeof(*(dirent)), d_name[len])
+#define dirent_size(dirent, len) offsetofp((dirent), d_name[len])
/*
* Some filesystems were never converted to '->iterate_shared()'
diff --git a/fs/smb/client/cifssmb.c b/fs/smb/client/cifssmb.c
index 2936b38de98f..5024643b4bf1 100644
--- a/fs/smb/client/cifssmb.c
+++ b/fs/smb/client/cifssmb.c
@@ -3195,7 +3195,7 @@ struct inode *cifs_create_reparse_inode(struct cifs_open_info_data *data,
io_req->ParameterCount = io_req->TotalParameterCount;
io_req->ParameterOffset = cpu_to_le32(0);
io_req->DataCount = io_req->TotalDataCount;
- io_req->DataOffset = cpu_to_le32(offsetof(typeof(*io_req), Data));
+ io_req->DataOffset = cpu_to_le32(offsetofp(io_req, Data));
io_req->SetupCount = 4;
io_req->SubCommand = cpu_to_le16(NT_TRANSACT_IOCTL);
io_req->FunctionCode = cpu_to_le32(FSCTL_SET_REPARSE_POINT);
@@ -5968,7 +5968,7 @@ int CIFSSMBSetPathInfo(const unsigned int xid, struct cifs_tcon *tcon,
param_offset = offsetof(struct smb_com_transaction2_spi_req,
InformationLevel);
offset = param_offset + params;
- data_offset = (char *)pSMB + offsetof(typeof(*pSMB), hdr.Protocol) + offset;
+ data_offset = (char *)pSMB + offsetofp(pSMB, hdr.Protocol) + offset;
pSMB->ParameterOffset = cpu_to_le16(param_offset);
pSMB->DataOffset = cpu_to_le16(offset);
pSMB->SetupCount = 1;
diff --git a/fs/smb/client/reparse.c b/fs/smb/client/reparse.c
index 3a27773186ae..99d7b3d38aa9 100644
--- a/fs/smb/client/reparse.c
+++ b/fs/smb/client/reparse.c
@@ -1042,7 +1042,7 @@ static int parse_reparse_wsl_symlink(struct reparse_wsl_symlink_data_buffer *buf
struct cifs_open_info_data *data)
{
int len = le16_to_cpu(buf->ReparseDataLength);
- int data_offset = offsetof(typeof(*buf), Target) - offsetof(typeof(*buf), Version);
+ int data_offset = offsetofp(buf, Target) - offsetofp(buf, Version);
int symname_utf8_len;
__le16 *symname_utf16;
int symname_utf16_len;
diff --git a/fs/xfs/scrub/attr.c b/fs/xfs/scrub/attr.c
index f909e2b25158..715b12bc3d7c 100644
--- a/fs/xfs/scrub/attr.c
+++ b/fs/xfs/scrub/attr.c
@@ -306,7 +306,7 @@ xchk_xattr_local_entry(
char *name_end;
unsigned int namesize;
- name_end = (char *)lentry + offsetof(typeof(*lentry), nameval[0]);
+ name_end = (char *)lentry + offsetofp(lentry, nameval[0]);
if (name_end > buf_end) {
xchk_da_set_corrupt(ds, level);
return 0;
@@ -341,7 +341,7 @@ xchk_xattr_remote_entry(
char *name_end;
unsigned int namesize;
- name_end = (char *)rentry + offsetof(typeof(*rentry), name[0]);
+ name_end = (char *)rentry + offsetofp(rentry, name[0]);
if (name_end > buf_end) {
xchk_da_set_corrupt(ds, level);
return 0;
diff --git a/fs/xfs/scrub/attr_repair.c b/fs/xfs/scrub/attr_repair.c
index 720090895c20..1d852617eda3 100644
--- a/fs/xfs/scrub/attr_repair.c
+++ b/fs/xfs/scrub/attr_repair.c
@@ -294,7 +294,7 @@ xrep_xattr_salvage_local_attr(
* Decode the leaf local entry format. If something seems wrong, we
* junk the attribute.
*/
- name_end = (char *)lentry + offsetof(typeof(*lentry), nameval[0]);
+ name_end = (char *)lentry + offsetofp(lentry, nameval[0]);
if (name_end > buf_end)
return 0;
value = &lentry->nameval[lentry->namelen];
@@ -348,7 +348,7 @@ xrep_xattr_salvage_remote_attr(
* junk the attribute. Note that we should never find a zero-length
* remote attribute value.
*/
- name_end = (char *)rentry + offsetof(typeof(*rentry), name[0]);
+ name_end = (char *)rentry + offsetofp(rentry, name[0]);
if (name_end > buf_end)
return 0;
namesize = xfs_attr_leaf_entsize_remote(rentry->namelen);
diff --git a/fs/xfs/scrub/dir.c b/fs/xfs/scrub/dir.c
index d99e2a732723..69e939a95567 100644
--- a/fs/xfs/scrub/dir.c
+++ b/fs/xfs/scrub/dir.c
@@ -364,7 +364,7 @@ xchk_dir_check_entry(
unsigned int advance;
/* must have namelen */
- advance = offsetof(typeof(*dep), name);
+ advance = offsetofp(dep, name);
if (iter_off + advance >= end) {
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
return -1;
@@ -464,7 +464,7 @@ xchk_dir_rec(
int advance;
/* must have freetag */
- advance = offsetof(typeof(*dup), length);
+ advance = offsetofp(dup, length);
if (iter_off + advance >= end) {
xchk_fblock_set_corrupt(ds->sc, XFS_DATA_FORK, rec_bno);
goto out_relse;
diff --git a/fs/xfs/scrub/dir_repair.c b/fs/xfs/scrub/dir_repair.c
index 518e15d93d3b..5446687f751e 100644
--- a/fs/xfs/scrub/dir_repair.c
+++ b/fs/xfs/scrub/dir_repair.c
@@ -501,7 +501,7 @@ xrep_dir_recover_entry(
int error;
/* must have namelen */
- advance = offsetof(typeof(*dep), name);
+ advance = offsetofp(dep, name);
if (offset + advance >= end)
return 0;
@@ -546,7 +546,7 @@ xrep_dir_recover_data(
return error;
/* must have freetag */
- advance = offsetof(typeof(*dup), length);
+ advance = offsetofp(dup, length);
if (offset + advance >= end)
break;
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
index a240638f69e5..2ff7361739a6 100644
--- a/kernel/futex/core.c
+++ b/kernel/futex/core.c
@@ -388,7 +388,7 @@ __futex_hash(union futex_key *key, struct futex_private_hash *fph, struct futex_
}
#endif
- hash = jhash2((u32 *)key, offsetof(typeof(*key), both.offset) / sizeof(u32),
+ hash = jhash2((u32 *)key, offsetofp(key, both.offset) / sizeof(u32),
key->both.offset);
if (node == FUTEX_NO_NODE) {
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 3396f177a18d..fca96a59e201 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -451,8 +451,8 @@ EXPORT_SYMBOL(ip_output);
*/
static void ip_copy_addrs(struct iphdr *iph, const struct flowi4 *fl4)
{
- BUILD_BUG_ON(offsetof(typeof(*fl4), daddr) !=
- offsetof(typeof(*fl4), saddr) + sizeof(fl4->saddr));
+ BUILD_BUG_ON(offsetofp(fl4, daddr) !=
+ offsetofp(fl4, saddr) + sizeof(fl4->saddr));
iph->saddr = fl4->saddr;
iph->daddr = fl4->daddr;
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index 303d0102519a..a8f944f43a30 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -2526,7 +2526,7 @@ static int __udp4_lib_mcast_deliver(struct net *net, struct sk_buff *skb,
hash2 = 0;
hslot = udp_hashslot(udptable, net, hnum);
use_hash2 = hslot->count > 10;
- offset = offsetof(typeof(*sk), sk_node);
+ offset = offsetofp(sk, sk_node);
if (use_hash2) {
hash2_any = ipv4_portaddr_hash(net, htonl(INADDR_ANY), hnum) &
@@ -2534,7 +2534,7 @@ static int __udp4_lib_mcast_deliver(struct net *net, struct sk_buff *skb,
hash2 = ipv4_portaddr_hash(net, daddr, hnum) & udptable->mask;
start_lookup:
hslot = &udptable->hash2[hash2].hslot;
- offset = offsetof(typeof(*sk), __sk_common.skc_portaddr_node);
+ offset = offsetofp(sk, __sk_common.skc_portaddr_node);
}
sk_for_each_entry_offset_rcu(sk, node, &hslot->head, offset) {
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 59f9872c3552..91bdf3cb506b 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -962,7 +962,7 @@ static int __udp6_lib_mcast_deliver(struct net *net, struct sk_buff *skb,
hash2 = 0;
hslot = udp_hashslot(udptable, net, hnum);
use_hash2 = hslot->count > 10;
- offset = offsetof(typeof(*sk), sk_node);
+ offset = offsetofp(sk, sk_node);
if (use_hash2) {
hash2_any = ipv6_portaddr_hash(net, &in6addr_any, hnum) &
@@ -970,7 +970,7 @@ static int __udp6_lib_mcast_deliver(struct net *net, struct sk_buff *skb,
hash2 = ipv6_portaddr_hash(net, daddr, hnum) & udptable->mask;
start_lookup:
hslot = &udptable->hash2[hash2].hslot;
- offset = offsetof(typeof(*sk), __sk_common.skc_portaddr_node);
+ offset = offsetofp(sk, __sk_common.skc_portaddr_node);
}
sk_for_each_entry_offset_rcu(sk, node, &hslot->head, offset) {
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 01d6703767c6..5b2bd1c495ea 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -493,8 +493,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,
ieee80211_retrieve_addba_ext_data(sta,
mgmt->u.action.addba_req.variable,
len -
- offsetof(typeof(*mgmt),
- u.action.addba_req.variable),
+ offsetofp(mgmt, u.action.addba_req.variable),
&buf_size);
__ieee80211_start_rx_ba_session(sta, dialog_token, timeout,
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index f3ecdd8601a0..a49e4798e9fa 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -990,8 +990,7 @@ void ieee80211_process_addba_resp(struct ieee80211_local *local,
ieee80211_retrieve_addba_ext_data(sta,
mgmt->u.action.addba_resp.variable,
- len - offsetof(typeof(*mgmt),
- u.action.addba_resp.variable),
+ len - offsetofp(mgmt, u.action.addba_resp.variable),
&buf_size);
buf_size = min(buf_size, local->hw.max_tx_aggregation_subframes);
diff --git a/net/mac80211/parse.c b/net/mac80211/parse.c
index f3c5a9f6ec7c..5eca72f82188 100644
--- a/net/mac80211/parse.c
+++ b/net/mac80211/parse.c
@@ -1068,7 +1068,7 @@ ieee802_11_parse_elems_full(struct ieee80211_elems_parse_params *params)
bool inside_multilink = false;
BUILD_BUG_ON(sizeof(empty_non_inheritance) != empty_non_inheritance[1] + 2);
- BUILD_BUG_ON(offsetof(typeof(*elems_parse), elems) != 0);
+ BUILD_BUG_ON(offsetofp(elems_parse, elems) != 0);
/* cannot parse for both a specific link and non-transmitted BSS */
if (WARN_ON(params->link_id >= 0 && params->bss))
diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c
index 68bd64328937..8e80aa1e6e35 100644
--- a/net/mac80211/tdls.c
+++ b/net/mac80211/tdls.c
@@ -1767,7 +1767,7 @@ ieee80211_process_tdls_channel_switch_resp(struct ieee80211_sub_if_data *sdata,
struct ieee80211_tdls_data *tf = (void *)skb->data;
bool local_initiator;
struct ieee80211_rx_status *rx_status = IEEE80211_SKB_RXCB(skb);
- int baselen = offsetof(typeof(*tf), u.chan_switch_resp.variable);
+ int baselen = offsetofp(tf, u.chan_switch_resp.variable);
struct ieee80211_tdls_ch_sw_params params = {};
int ret;
@@ -1868,7 +1868,7 @@ ieee80211_process_tdls_channel_switch_req(struct ieee80211_sub_if_data *sdata,
enum nl80211_band band;
struct ieee80211_tdls_data *tf = (void *)skb->data;
struct ieee80211_rx_status *rx_status = IEEE80211_SKB_RXCB(skb);
- int baselen = offsetof(typeof(*tf), u.chan_switch_req.variable);
+ int baselen = offsetofp(tf, u.chan_switch_req.variable);
struct ieee80211_tdls_ch_sw_params params = {};
int ret = 0;
diff --git a/sound/usb/mixer_scarlett2.c b/sound/usb/mixer_scarlett2.c
index ed5fe746d438..99022e057731 100644
--- a/sound/usb/mixer_scarlett2.c
+++ b/sound/usb/mixer_scarlett2.c
@@ -9656,7 +9656,7 @@ static long scarlett2_hwdep_write(struct snd_hwdep *hw,
/* Calculate the maximum permitted in data[] */
const size_t max_data_size = SCARLETT2_FLASH_RW_MAX -
- offsetof(typeof(*req), data);
+ offsetofp(req, data);
/* If erasing, wait for it to complete */
if (private->flash_write_state ==
--
2.56.0
next prev parent reply other threads:[~2026-11-05 17:17 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-05 17:16 [PATCH 0/3] Add offsetofp() and offsetofendp() for pointer arithmetic Bence Csokas
2026-11-05 17:16 ` [PATCH 1/3] stddef: " Bence Csokas
2026-11-05 17:16 ` [PATCH 2/3] treewide: Use offsetofendp() Bence Csokas
2026-11-05 17:16 ` Bence Csokas [this message]
2026-11-06 8:04 ` [PATCH 0/3] Add offsetofp() and offsetofendp() for pointer arithmetic Christoph Hellwig
2026-11-06 8:29 ` Bence Csókás
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261105-offsetof-v1-3-4153f5c10edc@arm.com \
--to=bence.csokas@arm.com \
--cc=GR-QLogic-Storage-Upstream@marvell.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=Jes.Sorensen@gmail.com \
--cc=airlied@gmail.com \
--cc=andrealmeid@igalia.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrii@kernel.org \
--cc=arm-scmi@vger.kernel.org \
--cc=ast@kernel.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=bharathsm@microsoft.com \
--cc=bleung@chromium.org \
--cc=bpf@vger.kernel.org \
--cc=brauner@kernel.org \
--cc=cem@kernel.org \
--cc=christian.koenig@amd.com \
--cc=chrome-platform@lists.linux.dev \
--cc=cristian.marussi@arm.com \
--cc=dakr@kernel.org \
--cc=daniel@iogearbox.net \
--cc=dave@stgolabs.net \
--cc=davem@davemloft.net \
--cc=decui@microsoft.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=dsahern@kernel.org \
--cc=dvhart@infradead.org \
--cc=eddyz87@gmail.com \
--cc=edumazet@kernel.org \
--cc=emil@etsalapatis.com \
--cc=g@b4.vu \
--cc=gnoack@google.com \
--cc=groeck@chromium.org \
--cc=haiyangz@microsoft.com \
--cc=hansg@kernel.org \
--cc=herbert@gondor.apana.org.au \
--cc=horms@kernel.org \
--cc=huangjunxian6@hisilicon.com \
--cc=idosch@nvidia.com \
--cc=ihor.solodrai@linux.dev \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jack@suse.cz \
--cc=jani.nikula@linux.intel.com \
--cc=jgg@ziepe.ca \
--cc=jmorris@namei.org \
--cc=johannes@sipsolutions.net \
--cc=jolsa@kernel.org \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kalesh-anakkur.purayil@broadcom.com \
--cc=kuba@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=leon@kernel.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linkinjeon@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=linux-snps-arc@lists.infradead.org \
--cc=linux-sound@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=luiz.dentz@gmail.com \
--cc=lyude@redhat.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marcel@holtmann.org \
--cc=martin.lau@linux.dev \
--cc=mchehab@kernel.org \
--cc=memxor@gmail.com \
--cc=mic@digikod.net \
--cc=mingo@redhat.com \
--cc=miriam.rachel.korenblit@intel.com \
--cc=mkp@kernel.org \
--cc=mripard@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=njavali@marvell.com \
--cc=nouveau@lists.freedesktop.org \
--cc=pabeni@redhat.com \
--cc=paul@paul-moore.com \
--cc=pc@manguebit.org \
--cc=perex@perex.cz \
--cc=peterz@infradead.org \
--cc=phasta@kernel.org \
--cc=pkshih@realtek.com \
--cc=rodrigo.vivi@intel.com \
--cc=ronniesahlberg@gmail.com \
--cc=samba-technical@lists.samba.org \
--cc=selvin.xavier@broadcom.com \
--cc=serge@hallyn.com \
--cc=simona@ffwll.ch \
--cc=song@kernel.org \
--cc=sprasad@microsoft.com \
--cc=steffen.klassert@secunet.com \
--cc=sudeep.holla@kernel.org \
--cc=sumit.semwal@linaro.org \
--cc=tangchengchang@huawei.com \
--cc=tglx@kernel.org \
--cc=tiwai@suse.com \
--cc=tom@talpey.com \
--cc=tursulin@ursulin.net \
--cc=tzimmermann@suse.de \
--cc=tzungbi@kernel.org \
--cc=vgupta@kernel.org \
--cc=viro@zeniv.linux.org.uk \
--cc=wei.liu@kernel.org \
--cc=willemdebruijn.kernel@gmail.com \
--cc=yonghong.song@linux.dev \
--cc=zack.rusin@broadcom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®