mirror of https://gitee.com/openkylin/linux.git
coda: get rid of CODA_ALLOC()
These days we have kvzalloc() so we can delete CODA_ALLOC(). I made a couple related changes in coda_psdev_write(). First, I added some error handling to avoid a NULL dereference if the allocation failed. Second, I used kvmalloc() instead of kvzalloc() because we copy over the memory on the next line so there is no need to zero it first. Link: http://lkml.kernel.org/r/e56010c822e7a7cbaa8a238cf82ad31c67eaa800.1558117389.git.jaharkes@cs.cmu.edu Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Colin Ian King <colin.king@canonical.com> Cc: David Howells <dhowells@redhat.com> Cc: Fabian Frederick <fabf@skynet.be> Cc: Mikko Rapeli <mikko.rapeli@iki.fi> Cc: Sam Protsenko <semen.protsenko@linaro.org> Cc: Yann Droneaud <ydroneaud@opteya.com> Cc: Zhouyang Jia <jiazhouyang09@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5e7c31dfe7
commit
4dc48193d7
|
@ -63,16 +63,6 @@ unsigned short coda_flags_to_cflags(unsigned short);
|
|||
void coda_sysctl_init(void);
|
||||
void coda_sysctl_clean(void);
|
||||
|
||||
#define CODA_ALLOC(ptr, cast, size) do { \
|
||||
if (size < PAGE_SIZE) \
|
||||
ptr = kzalloc((unsigned long) size, GFP_KERNEL); \
|
||||
else \
|
||||
ptr = (cast)vzalloc((unsigned long) size); \
|
||||
if (!ptr) \
|
||||
pr_warn("kernel malloc returns 0 at %s:%d\n", __FILE__, __LINE__); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define CODA_FREE(ptr, size) kvfree((ptr))
|
||||
|
||||
/* inode to cnode access functions */
|
||||
|
|
|
@ -123,7 +123,11 @@ static ssize_t coda_psdev_write(struct file *file, const char __user *buf,
|
|||
hdr.opcode, hdr.unique);
|
||||
nbytes = size;
|
||||
}
|
||||
CODA_ALLOC(dcbuf, union outputArgs *, nbytes);
|
||||
dcbuf = kvmalloc(nbytes, GFP_KERNEL);
|
||||
if (!dcbuf) {
|
||||
retval = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
if (copy_from_user(dcbuf, buf, nbytes)) {
|
||||
CODA_FREE(dcbuf, nbytes);
|
||||
retval = -EFAULT;
|
||||
|
|
|
@ -46,7 +46,7 @@ static void *alloc_upcall(int opcode, int size)
|
|||
{
|
||||
union inputArgs *inp;
|
||||
|
||||
CODA_ALLOC(inp, union inputArgs *, size);
|
||||
inp = kvzalloc(size, GFP_KERNEL);
|
||||
if (!inp)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
|
@ -743,7 +743,7 @@ static int coda_upcall(struct venus_comm *vcp,
|
|||
sig_req = kmalloc(sizeof(struct upc_req), GFP_KERNEL);
|
||||
if (!sig_req) goto exit;
|
||||
|
||||
CODA_ALLOC((sig_req->uc_data), char *, sizeof(struct coda_in_hdr));
|
||||
sig_req->uc_data = kvzalloc(sizeof(struct coda_in_hdr), GFP_KERNEL);
|
||||
if (!sig_req->uc_data) {
|
||||
kfree(sig_req);
|
||||
goto exit;
|
||||
|
|
Loading…
Reference in New Issue