OSDN Git Service

[PATCH] cciss: do not mark cciss_scsi_detect __init
authorPaX Team <pageexec@freemail.hu>
Mon, 28 Aug 2006 14:39:10 +0000 (16:39 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 30 Aug 2006 06:07:48 +0000 (08:07 +0200)
if the cciss driver is compiled in then later discovery requests
initiated from userland will result in calling free'd memory since
the detect method is marked as __init. suggested fix is to simply
not mark it as __init, 2.6 has done it as well.

drivers/block/cciss_scsi.c

index cb5a3bb..085c855 100644 (file)
@@ -49,7 +49,7 @@ static int sendcmd(
        unsigned char *scsi3addr );
 
 
-int __init cciss_scsi_detect(Scsi_Host_Template *tpnt);
+int cciss_scsi_detect(Scsi_Host_Template *tpnt);
 int cciss_scsi_release(struct Scsi_Host *sh);
 const char *cciss_scsi_info(struct Scsi_Host *sa);
 
@@ -777,7 +777,7 @@ complete_scsi_command( CommandList_struct *cp, int timeout, __u32 tag)
    The scsi mid layer (scsi_register_module) is
    called from cciss.c:cciss_init_one().  */
 
-int __init
+int
 cciss_scsi_detect(Scsi_Host_Template *tpnt)
 {
        int i;