assorted cleanup

R=r, iant
CC=go-dev
http://go/go-review/1025024
diff --git a/doc/go_mem.html b/doc/go_mem.html
index 1ecdddd..ede7972 100644
--- a/doc/go_mem.html
+++ b/doc/go_mem.html
@@ -233,7 +233,7 @@
 </p>
 
 <p class="rule">
-For any <code>sync.Mutex</code> variable <code>l</code> and <i>n</i> &lt; <i>m</i>,
+For any <code>sync.Mutex</code> or <code>sync.RWMutex</code> variable <code>l</code> and <i>n</i> &lt; <i>m</i>,
 the <i>n</i>'th call to <code>l.Unlock()</code> happens before the <i>m</i>'th call to <code>l.Lock()</code> returns.
 </p>
 
@@ -265,8 +265,11 @@
 which happens before the <code>print</code>.
 </p>
 
-<p>
-TODO(rsc): <code>sync.RWMutex</code>.
+<p class="rule">
+For any call to <code>l.RLock</code> on a <code>sync.RWMutex</code> variable <code>l</code>,
+there is an <i>n</i> such that the <code>l.RLock</code> happens (returns) after the <i>n</i>'th call to
+<code>l.Unlock</code> and the matching <code>l.RUnlock</code> happens
+before the <i>n</i>+1'th call to <code>l.Lock</code>.
 </p>
 
 <h3>Once</h3>