commit
6431742aa6
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2008-2019, The Linux Foundation. All rights reserved.
|
||||
/* Copyright (c) 2008-2020, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -2433,7 +2433,7 @@ long kgsl_ioctl_gpuobj_import(struct kgsl_device_private *dev_priv,
|
|||
return 0;
|
||||
|
||||
unmap:
|
||||
if (param->type == KGSL_USER_MEM_TYPE_DMABUF) {
|
||||
if (kgsl_memdesc_usermem_type(&entry->memdesc) == KGSL_MEM_ENTRY_ION) {
|
||||
kgsl_destroy_ion(entry->priv_data);
|
||||
entry->memdesc.sgt = NULL;
|
||||
}
|
||||
|
@ -2708,7 +2708,7 @@ long kgsl_ioctl_map_user_mem(struct kgsl_device_private *dev_priv,
|
|||
return result;
|
||||
|
||||
error_attach:
|
||||
switch (memtype) {
|
||||
switch (kgsl_memdesc_usermem_type(&entry->memdesc)) {
|
||||
case KGSL_MEM_ENTRY_ION:
|
||||
kgsl_destroy_ion(entry->priv_data);
|
||||
entry->memdesc.sgt = NULL;
|
||||
|
@ -3357,6 +3357,8 @@ kgsl_mmap_memstore(struct kgsl_device *device, struct vm_area_struct *vma)
|
|||
if (vma->vm_flags & VM_WRITE)
|
||||
return -EPERM;
|
||||
|
||||
vma->vm_flags &= ~VM_MAYWRITE;
|
||||
|
||||
if (memdesc->size != vma_size) {
|
||||
KGSL_MEM_ERR(device, "memstore bad size: %d should be %llu\n",
|
||||
vma_size, memdesc->size);
|
||||
|
|
|
@ -68,14 +68,19 @@ static int sockev_client_cb(struct notifier_block *nb,
|
|||
struct nlmsghdr *nlh;
|
||||
struct sknlsockevmsg *smsg;
|
||||
struct socket *sock;
|
||||
struct sock *sk;
|
||||
|
||||
sock = (struct socket *)data;
|
||||
if (socknlmsgsk == 0)
|
||||
goto done;
|
||||
if ((socknlmsgsk == NULL) || (sock == NULL) || (sock->sk == NULL))
|
||||
goto done;
|
||||
if (!socknlmsgsk || !sock)
|
||||
goto sk_null;
|
||||
|
||||
if (sock->sk->sk_family != AF_INET && sock->sk->sk_family != AF_INET6)
|
||||
sk = sock->sk;
|
||||
if (!sk)
|
||||
goto sk_null;
|
||||
|
||||
sock_hold(sk);
|
||||
|
||||
if (sk->sk_family != AF_INET && sk->sk_family != AF_INET6)
|
||||
goto done;
|
||||
|
||||
if (event != SOCKEV_BIND && event != SOCKEV_LISTEN)
|
||||
|
@ -96,14 +101,15 @@ static int sockev_client_cb(struct notifier_block *nb,
|
|||
smsg = nlmsg_data(nlh);
|
||||
smsg->pid = current->pid;
|
||||
_sockev_event(event, smsg->event, sizeof(smsg->event));
|
||||
smsg->skfamily = sock->sk->sk_family;
|
||||
smsg->skstate = sock->sk->sk_state;
|
||||
smsg->skprotocol = sock->sk->sk_protocol;
|
||||
smsg->sktype = sock->sk->sk_type;
|
||||
smsg->skflags = sock->sk->sk_flags;
|
||||
|
||||
smsg->skfamily = sk->sk_family;
|
||||
smsg->skstate = sk->sk_state;
|
||||
smsg->skprotocol = sk->sk_protocol;
|
||||
smsg->sktype = sk->sk_type;
|
||||
smsg->skflags = sk->sk_flags;
|
||||
nlmsg_notify(socknlmsgsk, skb, 0, SKNLGRP_SOCKEV, 0, GFP_KERNEL);
|
||||
done:
|
||||
sock_put(sk);
|
||||
sk_null:
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue