[PATCH 2/8] char: xillybus: Safer access of unaligned pointers
From: Eli Billauer
Date: Mon Nov 09 2026 - 06:35:39 EST
Use get_unaligned_le16() rather than dereferencing unaligned pointers
directly for portability.
Assisted-by: Sashiko-0.2.5:gemini-3.1-pro-preview
Link: https://sashiko.dev/#/patchset/20260805093436.59740-1-eli.billauer%40gmail.com
Signed-off-by: Eli Billauer <eli.billauer@xxxxxxxxx>
---
drivers/char/xillybus/xillyusb.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c
index 56afb0a577af..4c53d808737a 100644
--- a/drivers/char/xillybus/xillyusb.c
+++ b/drivers/char/xillybus/xillyusb.c
@@ -17,6 +17,7 @@
#include <linux/device.h>
#include <linux/module.h>
#include <asm/byteorder.h>
+#include <linux/unaligned.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
@@ -1960,8 +1961,8 @@ static int setup_channels(struct xillyusb_dev *xdev,
new_channels = chan;
for (i = 0; i < num_channels; i++, chan++) {
- unsigned int in_desc = le16_to_cpu(*chandesc++);
- unsigned int out_desc = le16_to_cpu(*chandesc++);
+ unsigned int in_desc = get_unaligned_le16(chandesc++);
+ unsigned int out_desc = get_unaligned_le16(chandesc++);
chan->xdev = xdev;
mutex_init(&chan->in_mutex);
@@ -2108,7 +2109,7 @@ static int xillyusb_discovery(struct usb_interface *interface)
/* Phase II: Set up the streams as defined in IDT */
- num_channels = le16_to_cpu(*((__le16 *)(idt + 1)));
+ num_channels = get_unaligned_le16(idt + 1);
names_offset = 3 + num_channels * 4;
idt_len -= 4; /* Exclude CRC */
--
2.17.1