if(!width || !height || area->sx >= vxres || area->sy >= vyres || area->dx >= vxres || area->dy >= vyres) { return; } 
if(!width || !height || area->sx >= vxres || area->sy >= vyres || area->dx >= vxres || area->dy >= vyres) return; 
void fbcon_sis_copyarea(struct fb_info *info, const struct fb_copyarea *area){   struct sis_video_info *ivideo = (struct sis_video_info *)info->par;   u32 vxres = info->var.xres_virtual;   u32 vyres = info->var.yres_virtual;   int width = area->width;   int height = area->height;   CRITFLAGS   if(info->state != FBINFO_STATE_RUNNING) {	return;   }   if(!ivideo->accel) {   	cfb_copyarea(info, area);	return;   }   if(!width || !height ||      area->sx >= vxres || area->sy >= vyres ||      area->dx >= vxres || area->dy >= vyres) {   	return;   }   /* Clipping */   if((area->sx + width) > vxres) width = vxres - area->sx;   if((area->dx + width) > vxres) width = vxres - area->dx;   if((area->sy + height) > vyres) height = vyres - area->sy;   if((area->dy + height) > vyres) height = vyres - area->dy;   if(ivideo->sisvga_engine == SIS_300_VGA) {#ifdef CONFIG_FB_SIS_300      int xdir, ydir;      if(area->sx < area->dx) xdir = 0;      else                    xdir = 1;      if(area->sy < area->dy) ydir = 0;      else                    ydir = 1;      CRITBEGIN      SiS300SetupForScreenToScreenCopy(ivideo, xdir, ydir, 3, -1);      SiS300SubsequentScreenToScreenCopy(ivideo, area->sx, area->sy, area->dx, area->dy,      					 width, height);      CRITEND      SiS300Sync(ivideo);#endif   } else {#ifdef CONFIG_FB_SIS_315      CRITBEGIN      SiS310SetupForScreenToScreenCopy(ivideo, 3, -1);      SiS310SubsequentScreenToScreenCopy(ivideo, area->sx, area->sy, area->dx, area->dy,      					 width, height);      CRITEND      SiS310Sync(ivideo);#endif   }}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/544393fe584d333480659a4bed30f5295355df11/sis_accel.c/clean/drivers/video/sis/sis_accel.c