|
@@ -808,11 +808,15 @@ static int check_pkt_ptr_alignment(const struct bpf_reg_state *reg,
|
|
|
reg_off += reg->aux_off;
|
|
|
}
|
|
|
|
|
|
- /* skb->data is NET_IP_ALIGN-ed, but for strict alignment checking
|
|
|
- * we force this to 2 which is universally what architectures use
|
|
|
- * when they don't set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS.
|
|
|
+ /* For platforms that do not have a Kconfig enabling
|
|
|
+ * CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS the value of
|
|
|
+ * NET_IP_ALIGN is universally set to '2'. And on platforms
|
|
|
+ * that do set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS, we get
|
|
|
+ * to this code only in strict mode where we want to emulate
|
|
|
+ * the NET_IP_ALIGN==2 checking. Therefore use an
|
|
|
+ * unconditional IP align value of '2'.
|
|
|
*/
|
|
|
- ip_align = strict ? 2 : NET_IP_ALIGN;
|
|
|
+ ip_align = 2;
|
|
|
if ((ip_align + reg_off + off) % size != 0) {
|
|
|
verbose("misaligned packet access off %d+%d+%d size %d\n",
|
|
|
ip_align, reg_off, off, size);
|