aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2011-05-10 11:53:02 +0200
committerTakashi Iwai <tiwai@suse.de>2011-05-10 11:53:02 +0200
commit44ce322a9519a3ad45b65e6c56695b81dc5547a8 (patch)
tree5a8fbdcedbfb648e4a6cf5b1b5c92b0c6f5039e1
parentbaca592e70a173500101f19447f35b188fab48c7 (diff)
downloadalsa-driver-build-unstable-44ce322a9519a3ad45b65e6c56695b81dc5547a8.tar.gz
Add krealloc() wrapper for 2.6 kernels
2.4 kernels still have no wrapper, but it's used only in soc-core... Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--include/adriver.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/include/adriver.h b/include/adriver.h
index 851839b72..7b76916f1 100644
--- a/include/adriver.h
+++ b/include/adriver.h
@@ -1993,4 +1993,25 @@ static inline bool flush_delayed_work_sync(struct delayed_work *dwork)
#undef CONFIG_SND_HDA_INPUT_JACK
#endif
+/* krealloc() wrapper */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22)
+#include <linux/slab.h>
+static inline void *krealloc(const void *p, size_t new_size, gfp_t flags)
+{
+ void *n;
+ if (!p)
+ return kmalloc(new_size, flags);
+ if (!new_size) {
+ kfree(p);
+ return NULL;
+ }
+ n = kmalloc(new_size, flags);
+ if (!n)
+ return NULL;
+ memcpy(n, p, min(new_size, ksize(p)));
+ kfree(p);
+ return n;
+}
+#endif
+
#endif /* __SOUND_LOCAL_DRIVER_H */