Skip to content
  • Julia Lawall's avatar
    [SCSI] dpt_i2o: Use GFP_ATOMIC when a lock is held · da2907ff
    Julia Lawall authored
    The function adpt_i2o_post_wait is called from several places, in some of
    which, such as adpt_abort, a lock may be held.
    
    The functions adpt_i2o_reparse_lct and adpt_i2o_lct_get are called from
    several places, including adpt_rescan where a lock may be held.
    
    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/
    
    )
    
    // <smpl>
    @gfp exists@
    identifier fn;
    position p;
    @@
    
    fn(...) {
     ... when != spin_unlock_irqrestore
         when any
     GFP_KERNEL@p
     ... when any
    }
    
    @locked@
    identifier gfp.fn;
    @@
    
    spin_lock_irqsave(...)
    ...  when != spin_unlock_irqrestore
    fn(...)
    
    @depends on locked@
    position gfp.p;
    @@
    
    - GFP_KERNEL@p
    + GFP_ATOMIC
    // </smpl>
    
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
    da2907ff