On 02/24/17 16:06, Mateusz Guzik wrote:
On Fri, Feb 24, 2017 at 02:40:15PM +0000, Hans Petter Selasky wrote:
Author: hselasky
Date: Fri Feb 24 14:40:15 2017
New Revision: 314207
URL: https://svnweb.freebsd.org/changeset/base/314207

Log:
  Implement srcu_dereference() macro in the LinuxKPI.

  MFC after:            1 week
  Sponsored by:         Mellanox Technologies

Modified:
  head/sys/compat/linuxkpi/common/include/linux/srcu.h

Modified: head/sys/compat/linuxkpi/common/include/linux/srcu.h
==============================================================================
--- head/sys/compat/linuxkpi/common/include/linux/srcu.h        Fri Feb 24 
14:37:55 2017        (r314206)
+++ head/sys/compat/linuxkpi/common/include/linux/srcu.h        Fri Feb 24 
14:40:15 2017        (r314207)
@@ -34,6 +34,8 @@ struct srcu_struct {
        struct ck_epoch_record *ss_epoch_record;
 };

+#define        srcu_dereference(ptr,srcu)      ((__typeof(*(ptr)) *)(ptr))
+

Should not this cast to volatile and read through that?


Hi,

This macro should only be used inside a srcu_read_lock() and srcu_read_unlock() section and then volatile is not part of the game I think. The srcu argument is passed so that checks can be added to assert this.

--HPS
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to