On Thu, Aug 4, 2011 at 18:40, Andre Heider <a.hei...@gmail.com> wrote: > On Thu, Aug 4, 2011 at 12:34 AM, Geoff Levand <ge...@infradead.org> wrote: >> On 08/01/2011 01:02 PM, Andre Heider wrote: >>> --- a/drivers/char/ps3flash.c >>> +++ b/drivers/char/ps3flash.c >>> @@ -25,6 +25,7 @@ >>> >>> #include <asm/lv1call.h> >>> #include <asm/ps3stor.h> >>> +#include <asm/firmware.h> >>> >>> >>> #define DEVICE_NAME "ps3flash" >>> @@ -455,6 +456,12 @@ static struct ps3_system_bus_driver ps3flash = { >>> >>> static int __init ps3flash_init(void) >>> { >>> + if (!firmware_has_feature(FW_FEATURE_PS3_LV1)) >>> + return -ENODEV; >> >> Is this needed? Won't this driver only be loaded on PS3 hardware? >> > > The same code is in drivers/block/ps3disk.c, I wasn't sure if it is > missing here or redundant there. > Should I remove it here? > >>> + >>> + if (ps3_get_ss_laid() != PS3_SS_LAID_OTHEROS) >>> + return -ENODEV; >>> + >>> return ps3_system_bus_driver_register(&ps3flash); >>> }
ps3flash_init() is called straight from module_init(), so it could be called on non-PS3. ps3_system_bus_driver_register() has the firmware_has_feature_check(), so it will reject non-PS3. But if your *_init() does any processing before calling ps3_system_bus_driver_register() (like ps3disk_init() does, and ps3flash_init() now does due to your patch), you have to do the check yourself, to make sure it returns early on non-PS3. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev