if (start < 0 || !info->fbops->fb_setcolreg)
if (start < 0 || (!info->fbops->fb_setcolreg && !info->fbops->fb_setcmap))
int fb_set_user_cmap(struct fb_cmap_user *cmap, struct fb_info *info){	int i, start;	u16 __user *red, *green, *blue, *transp;	u_int hred, hgreen, hblue, htransp = 0xffff;	red = cmap->red;	green = cmap->green;	blue = cmap->blue;	transp = cmap->transp;	start = cmap->start;	if (start < 0 || !info->fbops->fb_setcolreg)		return -EINVAL;	for (i = 0; i < cmap->len; i++, red++, blue++, green++) {		if (get_user(hred, red) ||		    get_user(hgreen, green) ||		    get_user(hblue, blue) ||		    (transp && get_user(htransp, transp)))			return -EFAULT;		if (info->fbops->fb_setcolreg(start++,					      hred, hgreen, hblue, htransp,					      info))			return 0;		if (transp)			transp++;	}	return 0;}