• David S. Miller's avatar
    [VIDEO]: Fix OOPS in all SBUS framebuffer drivers. · c7f439b9
    David S. Miller authored
    All of these drivers use a silly:
    
    struct all_info {
    	struct fb_info info;
    	struct foo_par par;
    };
    
    struct all_info *all = kzalloc(sizeof(*all), GFP_KERNEL);
    all->info.par = &all->par;
    
    etc. etc. code sequence, basically replicating the provided
    framebuffer_alloc()/framebuffer_release(), and doing it badly.
    
    Not only is this massive code duplication, it also caused a
    bug in that we weren't setting the fb_info->device pointer
    which results in an OOPS when fb_is_primary_device() runs.
    
    Fix all of this by using framebuffer_{alloc,release}() and
    passing in "&of_device->dev" as the device pointer.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c7f439b9
tcx.c 12.2 KB