All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hauke Mehrtens <hauke@hauke-m.de>
To: backports@vger.kernel.org
Cc: Hauke Mehrtens <hauke@hauke-m.de>
Subject: [PATCH 1/4] backports: Add rhashtable_lookup_get_insert_fast()
Date: Tue, 26 Mar 2019 16:11:35 +0100	[thread overview]
Message-ID: <20190326151138.4141-1-hauke@hauke-m.de> (raw)

rhashtable_lookup_get_insert_fast() was added in kernel 4.12 in Linux
upstream commit f9fe1c12d12 ("rhashtable: Add
rhashtable_lookup_get_insert_fast") It is now used by mac80211.

For kernel < 4.9 we already backport the complete rhashtable
implementation, so this is only needed for kernels more recent than 4.9.

This is copied from upstreamn Linux kernel.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 backport/backport-include/linux/rhashtable.h | 31 ++++++++++++++++++++
 1 file changed, 31 insertions(+)
 create mode 100644 backport/backport-include/linux/rhashtable.h

diff --git a/backport/backport-include/linux/rhashtable.h b/backport/backport-include/linux/rhashtable.h
new file mode 100644
index 00000000..8e493bc5
--- /dev/null
+++ b/backport/backport-include/linux/rhashtable.h
@@ -0,0 +1,31 @@
+#ifndef __BACKPORT_RHASHTABLE_H
+#define __BACKPORT_RHASHTABLE_H
+#include_next <linux/rhashtable.h>
+#include <linux/version.h>
+
+#if LINUX_VERSION_IS_LESS(4,12,0)
+/**
+ * rhashtable_lookup_get_insert_fast - lookup and insert object into hash table
+ * @ht:		hash table
+ * @obj:	pointer to hash head inside object
+ * @params:	hash table parameters
+ *
+ * Just like rhashtable_lookup_insert_fast(), but this function returns the
+ * object if it exists, NULL if it did not and the insertion was successful,
+ * and an ERR_PTR otherwise.
+ */
+#define rhashtable_lookup_get_insert_fast LINUX_BACKPORT(rhashtable_lookup_get_insert_fast)
+static inline void *rhashtable_lookup_get_insert_fast(
+	struct rhashtable *ht, struct rhash_head *obj,
+	const struct rhashtable_params params)
+{
+	const char *key = rht_obj(ht, obj);
+
+	BUG_ON(ht->p.obj_hashfn);
+
+	return __rhashtable_insert_fast(ht, key + ht->p.key_offset, obj, params,
+					false);
+}
+#endif
+
+#endif /* __BACKPORT_RHASHTABLE_H */
-- 
2.20.1

--
To unsubscribe from this list: send the line "unsubscribe backports" in

             reply	other threads:[~2019-03-26 15:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-26 15:11 Hauke Mehrtens [this message]
2019-03-26 15:11 ` [PATCH 2/4] backports: Add smp_acquire__after_ctrl_dep() Hauke Mehrtens
2019-03-26 15:11 ` [PATCH 3/4] backports: Add missing include for brcmfmac Hauke Mehrtens
2019-03-26 15:11 ` [PATCH 4/4] backports: Build CONFIG_MT7603E only for kernel >= 4.2 Hauke Mehrtens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190326151138.4141-1-hauke@hauke-m.de \
    --to=hauke@hauke-m.de \
    --cc=backports@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.