* [stefandoesinger-zx297520:dlink 120/131] drivers/rpmsg/zx29_smd.c:205:66: warning: cast to smaller integer type 'unsigned int' from 'struct zx29_smd *'
@ 2026-09-03 5:49 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-03 5:49 UTC (permalink / raw)
To: Stefan Dösinger ; +Cc: llvm, oe-kbuild-all
tree: https://gitlab.com/stefandoesinger/zx297520-kernel dlink
head: 4132307830800b020a6d29d27cb3fec3cb5fbb90
commit: ffc256cf7e9bea66ecdb62566ec625760720329b [120/131] rpmsg polling
config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260903/202609031311.esEudpZG-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260903/202609031311.esEudpZG-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609031311.esEudpZG-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/rpmsg/zx29_smd.c:205:66: warning: cast to smaller integer type 'unsigned int' from 'struct zx29_smd *' [-Wpointer-to-int-cast]
205 | dev_info(&zx29_smd->pdev->dev, "zx29_smd_rx_work smd 0x%08x\n", (unsigned int)zx29_smd);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:160:67: note: expanded from macro 'dev_info'
160 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
drivers/rpmsg/zx29_smd.c:337:92: warning: cast to smaller integer type 'unsigned int' from 'u8 *' (aka 'unsigned char *') [-Wpointer-to-int-cast]
337 | dev_info(&pdev->dev, "zx29_smd->data_r phys 0x%08x virt 0x%08x\n", zx29_smd->recv->base, (unsigned int)zx29_smd->data_r);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:160:67: note: expanded from macro 'dev_info'
160 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
drivers/rpmsg/zx29_smd.c:367:52: warning: cast to smaller integer type 'unsigned int' from 'u8 *' (aka 'unsigned char *') [-Wpointer-to-int-cast]
367 | dev_info(&pdev->dev, "zx29_smd->data_s 0x%08x\n", (unsigned int)zx29_smd->data_s);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:160:67: note: expanded from macro 'dev_info'
160 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~
drivers/rpmsg/zx29_smd.c:193:13: warning: unused function 'zx29_smd_release_device' [-Wunused-function]
193 | static void zx29_smd_release_device(struct device *dev)
| ^~~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
vim +205 drivers/rpmsg/zx29_smd.c
197
198 static void zx29_smd_rx_work(struct work_struct *work)
199 {
200 struct zx29_smd *zx29_smd = to_zx29_rpmsg_device_work(work);
201 u32 send_pos, len, pkg_len, processed = 0;
202 const struct msg_hdr *hdr;
203 u8 *ptr, *alloc = NULL;
204
> 205 dev_info(&zx29_smd->pdev->dev, "zx29_smd_rx_work smd 0x%08x\n", (unsigned int)zx29_smd);
206 dev_info(&zx29_smd->pdev->dev, "zx29_smd_rx_work channel 0x%08x\n", zx29_smd->ept.addr);
207
208 if (!zx29_smd->data_r) {
209 dev_info(&zx29_smd->pdev->dev, "receive base not mapped\n");
210 // FIXME: I guess I can't do that in an IRQ context
211 return;
212 /*
213 dev_info(&zx29_smd->pdev->dev, "trying to ioremap 0x%08x\n", zx29_smd->recv->base);
214 zx29_smd->data_r = devm_memremap(&zx29_smd->pdev->dev,
215 zx29_smd->recv->base, zx29_smd->recv->size,
216 MEMREMAP_WT);
217 dev_info(&zx29_smd->pdev->dev, "zx29_smd->data_r phys 0x%08x virt 0x%08x\n",
218 zx29_smd->recv->base, (unsigned int)zx29_smd->data_r);
219 */
220 }
221
222 for (;;) {
223 send_pos = zx29_smd->recv->send_pos;
224
225 if (send_pos == zx29_smd->recv->recv_pos) {
226 break;
227 }
228
229 dev_info(&zx29_smd->pdev->dev, "old recv %u new incoming %u. Ringbuffer size %u\n",
230 zx29_smd->recv->recv_pos, send_pos, zx29_smd->recv->size);
231
232 if (send_pos > zx29_smd->recv->recv_pos) {
233 ptr = zx29_smd->data_r + zx29_smd->recv->recv_pos;
234 len = send_pos - zx29_smd->recv->recv_pos;
235 if (send_pos == zx29_smd->recv->size) {
236 dev_info(&zx29_smd->pdev->dev, "send_pos == size\n");
237 } else {
238 dev_info(&zx29_smd->pdev->dev, "easy default path\n");
239 }
240 } else if (!send_pos) {
241 dev_info(&zx29_smd->pdev->dev, "send_pos == 0\n");
242 ptr = zx29_smd->data_r + zx29_smd->recv->recv_pos;
243 len = zx29_smd->recv->size - zx29_smd->recv->recv_pos;
244 } else {
245 dev_info(&zx29_smd->pdev->dev, "wraparound\n");
246 len = zx29_smd->recv->size - zx29_smd->recv->recv_pos + send_pos;
247 alloc = kzalloc(len, GFP_KERNEL);
248
249 memcpy(alloc, zx29_smd->data_r + zx29_smd->recv->recv_pos,
250 zx29_smd->recv->size - zx29_smd->recv->recv_pos);
251 memcpy(alloc + zx29_smd->recv->size - zx29_smd->recv->recv_pos, zx29_smd->data_r,
252 send_pos);
253 }
254
255 hdr = (const struct msg_hdr *)ptr;
256 pkg_len = ZX29_MSG_ALIGN(hdr->len) + sizeof(*hdr);
257 if (hdr->magic != ZX29_MSG_MAGIC) {
258 dev_info(&zx29_smd->pdev->dev, "Invalid magic 0x%04x\n", hdr->magic);
259 } else if (pkg_len > len) {
260 dev_info(&zx29_smd->pdev->dev, "Header length 0x%04x, in buffer 0x%04x\n",
261 hdr->len, len);
262 } else {
263 if (!hdr->len) {
264 dev_info(&zx29_smd->pdev->dev, "Zero-length packet\n");
265 }
266 zx29_smd->ept.cb(&zx29_smd->rpdev, ptr + sizeof(*hdr), hdr->len, zx29_smd->ept.priv, RPMSG_ADDR_ANY);
267 }
268
269 kfree(alloc);
270 zx29_smd->recv->recv_pos = (zx29_smd->recv->recv_pos + pkg_len) % zx29_smd->recv->size;
271 processed++;
272 }
273
274 if (!processed) {
275 dev_info(&zx29_smd->pdev->dev, "No messages processed?\n");
276 }
277 }
278
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-09-03 5:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-03 5:49 [stefandoesinger-zx297520:dlink 120/131] drivers/rpmsg/zx29_smd.c:205:66: warning: cast to smaller integer type 'unsigned int' from 'struct zx29_smd *' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox