diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-05-10 11:53:02 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-05-10 11:53:02 +0200 |
commit | 44ce322a9519a3ad45b65e6c56695b81dc5547a8 (patch) | |
tree | 5a8fbdcedbfb648e4a6cf5b1b5c92b0c6f5039e1 | |
parent | baca592e70a173500101f19447f35b188fab48c7 (diff) | |
download | alsa-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.h | 21 |
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 */ |