mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
s390/vfio_ccw: Add __must_hold() attribute to vfio_ccw_sch_quiesce()
Add __must_hold() attribute to vfio_ccw_sch_quiesce() in order to let
clang's context analysis know that sch->lock must be held on function
entry. This can also be easily verified when inspecting the function.
Without this annotation this leads to a valid warning when context
analysis is enabled:
drivers/s390/cio/vfio_ccw_drv.c:55:9: warning:
expecting spinlock 'sch->lock' to be held at start of each loop [-Wthread-safety-analysis]
55 | ret = cio_cancel_halt_clear(sch, &iretry);
| ^
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Reviewed-by: Matthew Rosato <mjrosato@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
b99a102ede
commit
aa8db8e37e
|
|
@ -35,6 +35,7 @@ debug_info_t *vfio_ccw_debug_trace_id;
|
|||
* Helpers
|
||||
*/
|
||||
int vfio_ccw_sch_quiesce(struct subchannel *sch)
|
||||
__must_hold(&sch->lock)
|
||||
{
|
||||
struct vfio_ccw_parent *parent = dev_get_drvdata(&sch->dev);
|
||||
struct vfio_ccw_private *private = dev_get_drvdata(&parent->dev);
|
||||
|
|
|
|||
|
|
@ -127,7 +127,8 @@ struct vfio_ccw_private {
|
|||
struct work_struct crw_work;
|
||||
} __aligned(8);
|
||||
|
||||
int vfio_ccw_sch_quiesce(struct subchannel *sch);
|
||||
int vfio_ccw_sch_quiesce(struct subchannel *sch)
|
||||
__must_hold(&sch->lock);
|
||||
void vfio_ccw_sch_io_todo(struct work_struct *work);
|
||||
void vfio_ccw_crw_todo(struct work_struct *work);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user