drivers/gpu/drm/gud/gud_drv.c:95:28: sparse: sparse: cast to restricted __le32

From: kernel test robot
Date: Sat Nov 11 2023 - 07:56:04 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3ca112b71f35dd5d99fc4571a56b5fc6f0c15814
commit: 40e1a70b4aedf2859a1829991b48ef0ebe650bf2 drm: Add GUD USB Display driver
date: 2 years, 8 months ago
config: i386-randconfig-062-20230912 (https://download.01.org/0day-ci/archive/20231111/202311112013.3oeb6fZG-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231111/202311112013.3oeb6fZG-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311112013.3oeb6fZG-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/gud/gud_drv.c:95:28: sparse: sparse: cast to restricted __le32
>> drivers/gpu/drm/gud/gud_drv.c:95:17: sparse: sparse: restricted __le32 degrades to integer

vim +95 drivers/gpu/drm/gud/gud_drv.c

76
77 static int gud_get_display_descriptor(struct usb_interface *intf,
78 struct gud_display_descriptor_req *desc)
79 {
80 void *buf;
81 int ret;
82
83 buf = kmalloc(sizeof(*desc), GFP_KERNEL);
84 if (!buf)
85 return -ENOMEM;
86
87 ret = gud_usb_control_msg(intf, true, GUD_REQ_GET_DESCRIPTOR, 0, buf, sizeof(*desc));
88 memcpy(desc, buf, sizeof(*desc));
89 kfree(buf);
90 if (ret < 0)
91 return ret;
92 if (ret != sizeof(*desc))
93 return -EIO;
94
> 95 if (desc->magic != le32_to_cpu(GUD_DISPLAY_MAGIC))
96 return -ENODATA;
97
98 DRM_DEV_DEBUG_DRIVER(&intf->dev,
99 "version=%u flags=0x%x compression=0x%x max_buffer_size=%u\n",
100 desc->version, le32_to_cpu(desc->flags), desc->compression,
101 le32_to_cpu(desc->max_buffer_size));
102
103 if (!desc->version || !desc->max_width || !desc->max_height ||
104 le32_to_cpu(desc->min_width) > le32_to_cpu(desc->max_width) ||
105 le32_to_cpu(desc->min_height) > le32_to_cpu(desc->max_height))
106 return -EINVAL;
107
108 return 0;
109 }
110

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki