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
