Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cae7ca3d3de48851e929de9469397749638df779
Commit:     cae7ca3d3de48851e929de9469397749638df779
Parent:     7f353bf29e162459f2f1e2ca25e41011fae65241
Author:     Heiko Carstens <[EMAIL PROTECTED]>
AuthorDate: Fri Aug 10 15:50:30 2007 -0700
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Aug 13 22:52:15 2007 -0700

    [IPVS]: Use IP_VS_WAIT_WHILE when encessary.
    
    For architectures that don't have a volatile atomic_ts constructs like
    while (atomic_read(&something)); might result in endless loops since a
    barrier() is missing which forces the compiler to generate code that
    actually reads memory contents.
    Fix this in ipvs by using the IP_VS_WAIT_WHILE macro which resolves to
    while (expr) { cpu_relax(); }
    (why isn't this open coded btw?)
    
    Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
    Signed-off-by: Simon Horman <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv4/ipvs/ip_vs_ctl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/ipvs/ip_vs_ctl.c b/net/ipv4/ipvs/ip_vs_ctl.c
index c32781d..902fd57 100644
--- a/net/ipv4/ipvs/ip_vs_ctl.c
+++ b/net/ipv4/ipvs/ip_vs_ctl.c
@@ -908,7 +908,7 @@ ip_vs_edit_dest(struct ip_vs_service *svc, struct 
ip_vs_dest_user *udest)
        write_lock_bh(&__ip_vs_svc_lock);
 
        /* Wait until all other svc users go away */
-       while (atomic_read(&svc->usecnt) > 1) {};
+       IP_VS_WAIT_WHILE(atomic_read(&svc->usecnt) > 1);
 
        /* call the update_service, because server weight may be changed */
        svc->scheduler->update_service(svc);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to