[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Need a little more serialisation in pciback_do_op().
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 1ad06bd6832d478b18b1c1aed9886079c272aeaa # Parent e0f2ec5e8358ffa2ed217fa193a981aef6a47724 Need a little more serialisation in pciback_do_op(). Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> diff -r e0f2ec5e8358 -r 1ad06bd6832d linux-2.6-xen-sparse/drivers/xen/pciback/pciback_ops.c --- a/linux-2.6-xen-sparse/drivers/xen/pciback/pciback_ops.c Tue Apr 25 18:13:39 2006 +0100 +++ b/linux-2.6-xen-sparse/drivers/xen/pciback/pciback_ops.c Tue Apr 25 18:22:11 2006 +0100 @@ -77,12 +77,13 @@ void pciback_do_op(void *data) clear_bit(_XEN_PCIF_active, (unsigned long *)&pdev->sh_info->flags); notify_remote_via_irq(pdev->evtchn_irq); - /* Mark that we're done */ - wmb(); + /* Mark that we're done. */ + smp_mb__before_clear_bit(); /* /after/ clearing PCIF_active */ clear_bit(_PDEVF_op_active, &pdev->flags); + smp_mb__after_clear_bit(); /* /before/ final check for work */ - /* Check to see if the driver domain tried to start another request - * in between clearing _XEN_PCIF_active and clearing _PDEVF_op_active */ + /* Check to see if the driver domain tried to start another request in + * between clearing _XEN_PCIF_active and clearing _PDEVF_op_active. */ test_and_schedule_op(pdev); } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |