• Linus Torvalds's avatar
    ide-floppy: allocate only toplevel packet commands · 07bd3f47
    Linus Torvalds authored
    This makes the top-level function just allocate a single pc entry, and then
    pass it down as a pointer to all the helper functions that also need one
    of those "struct ide_atapi_pc" things. As far as I can tell, the use of
    these things never overlaps each other, BUT I DID NOT CHECK VERY CLOSELY!
    
    So I'm not guaranteeing this is correct, and I don't have the hardware. It
    would be good for somebody who knows the code more, and has the hardware,
    could please test this?
    
    With this, ide-floppy still has fairly big stack usage, but instead of
    
    	idefloppy_ioctl [vmlinux]:              1208
    	ide_floppy_get_capacity [vmlinux]:      872
    	idefloppy_release [vmlinux]:            408
    	idefloppy_open [vmlinux]:               408
    
    where those two first ones are at the very top of the list of stack users
    for me, it's now
    
    	ide_floppy_get_capacity [vmlinux]:           404
    	ide_floppy_ioctl [vmlinux]:                  364
    
    ie they are still high, but they are no longer at the top.
    
    Borislav: Since ide_floppy_get_capacity is passed as a function pointer to other
    parts of the kernel (e.g., block layer) we need that ide_atapi_pc to be created
    on stack. Also, redid stack users numbers above. The two functions missing from
    Linus' original 'make stackusage' output are due to ide being
    rewritten/reorganized atm.
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarBorislav Petkov <petkovbb@gmail.com>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    07bd3f47
ide-floppy_ioctl.c 6.92 KB