• Rakib Mullick's avatar
    virtio_blk: mark virtio_blk with __refdata to kill spurious section mismatch · 4fbfff76
    Rakib Mullick authored
    The variable virtio_blk references the function virtblk_probe() (which
    is in .devinit section) and also references the function
    virtblk_remove() ( which is in .devexit section). So, virtio_blk
    simultaneously refers .devinit and .devexit section. To avoid this
    messup, we mark virtio_blk as __refdata.
    
    We were warned by the following warning:
    
      LD      drivers/block/built-in.o
      WARNING: drivers/block/built-in.o(.data+0xc8dc): Section mismatch in
      reference from the variable virtio_blk to the function
      .devinit.text:virtblk_probe()
      The variable virtio_blk references
      the function __devinit virtblk_probe()
      If the reference is valid then annotate the
      variable with __init* or __refdata (see linux/init.h) or name the variable:
      *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
    
      WARNING: drivers/block/built-in.o(.data+0xc8e0): Section mismatch in
      reference from the variable virtio_blk to the function
      .devexit.text:virtblk_remove()
      The variable virtio_blk references
      the function __devexit virtblk_remove()
      If the reference is valid then annotate the
      variable with __exit* (see linux/init.h) or name the variable:
      *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,
    Signed-off-by: default avatarRakib Mullick <rakib.mullick@gmail.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    4fbfff76
virtio_blk.c 11.3 KB