[VIDEO]: Fix OOPS in all SBUS framebuffer drivers.
authorDavid S. Miller <davem@sunset.davemloft.net>
Sat, 28 Jul 2007 05:31:46 +0000 (22:31 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 30 Jul 2007 07:27:33 +0000 (00:27 -0700)
commitc7f439b99efbea74c70a5531f92566db5a6731f2
tree7053ceffa23d54670862e14d0bc2eec9d5d42427
parenta0afaa6ab12cf696d170c22a8fdfd88c3e33555c
[VIDEO]: Fix OOPS in all SBUS framebuffer drivers.

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: David S. Miller <davem@davemloft.net>
drivers/video/bw2.c
drivers/video/cg14.c
drivers/video/cg3.c
drivers/video/cg6.c
drivers/video/ffb.c
drivers/video/leo.c
drivers/video/p9100.c
drivers/video/tcx.c