Hello.
I'm locking /drivers/char/drm/(on last 2.6.11-bkX) and I
found some problems (bugs?)
in file drivers/char/drm/drm_ioctl.c :
/**
* Setversion ioctl.
*
* \param inode device inode.
* \param filp file pointer.
* \param cmd command.
* \param arg user argument, pointing to a drm_lock structure.
* \return zero on success or negative number on failure.
*
* Sets the requested interface version
*/
int drm_setversion(DRM_IOCTL_ARGS)
(...)
if (sv.drm_di_major != -1) {
if (sv.drm_di_major != DRM_IF_MAJOR ||
sv.drm_di_minor < 0 || sv.drm_di_minor > DRM_IF_MINOR)
return EINVAL;
EINVAL is a positive number, so I think it should be
return -EINVAL (or change the description of return code)
[note: there are two "return EINVAL" in this function]
In the same function (drm_setversion)
if (sv.drm_di_minor >= 1) {
/*
* Version 1.1 includes tying of DRM to specific device
*/
drm_set_busid(dev);
why you don't check the errors code of "drm_set_busid(dev)" ?
In file drivers/char/drm/i915_dma.c, function i915_emit_box:
return EFAULT;
sould be
return DRM_ERR(EFAULT);
[i.e. negative value, as in return in the next few lines]
In drivers/char/drm/sis_mm.c the same (but with ENOMEM) in functions
sis_fb_init and sis_ioctl_agp_init.
ciao
cate
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel