hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/net/dsa/b53/b53_spi.c
....@@ -145,42 +145,52 @@
145145
146146 static int b53_spi_read16(struct b53_device *dev, u8 page, u8 reg, u16 *val)
147147 {
148
- int ret = b53_spi_read(dev, page, reg, (u8 *)val, 2);
148
+ __le16 value;
149
+ int ret;
150
+
151
+ ret = b53_spi_read(dev, page, reg, (u8 *)&value, 2);
149152
150153 if (!ret)
151
- *val = le16_to_cpu(*val);
154
+ *val = le16_to_cpu(value);
152155
153156 return ret;
154157 }
155158
156159 static int b53_spi_read32(struct b53_device *dev, u8 page, u8 reg, u32 *val)
157160 {
158
- int ret = b53_spi_read(dev, page, reg, (u8 *)val, 4);
161
+ __le32 value;
162
+ int ret;
163
+
164
+ ret = b53_spi_read(dev, page, reg, (u8 *)&value, 4);
159165
160166 if (!ret)
161
- *val = le32_to_cpu(*val);
167
+ *val = le32_to_cpu(value);
162168
163169 return ret;
164170 }
165171
166172 static int b53_spi_read48(struct b53_device *dev, u8 page, u8 reg, u64 *val)
167173 {
174
+ __le64 value;
168175 int ret;
169176
170177 *val = 0;
171
- ret = b53_spi_read(dev, page, reg, (u8 *)val, 6);
178
+ ret = b53_spi_read(dev, page, reg, (u8 *)&value, 6);
172179 if (!ret)
173
- *val = le64_to_cpu(*val);
180
+ *val = le64_to_cpu(value);
174181
175182 return ret;
176183 }
177184
178185 static int b53_spi_read64(struct b53_device *dev, u8 page, u8 reg, u64 *val)
179186 {
180
- int ret = b53_spi_read(dev, page, reg, (u8 *)val, 8);
187
+ __le64 value;
188
+ int ret;
189
+
190
+ ret = b53_spi_read(dev, page, reg, (u8 *)&value, 8);
181191
182192 if (!ret)
183
- *val = le64_to_cpu(*val);
193
+ *val = le64_to_cpu(value);
184194
185195 return ret;
186196 }