Generated with the following simple Coccinelle patch:

@@
expression ptr, member;
@@
- offsetof(typeof(*ptr), member)
+ offsetofp(ptr, member)

Signed-off-by: Bence Csokas <[email protected]>
---
 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

Reply via email to