diff options
Diffstat (limited to 'drivers/gpu/pvr/services4/srvkm/env/linux/pvr_uaccess.h')
-rw-r--r-- | drivers/gpu/pvr/services4/srvkm/env/linux/pvr_uaccess.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/services4/srvkm/env/linux/pvr_uaccess.h b/drivers/gpu/pvr/services4/srvkm/env/linux/pvr_uaccess.h index 3a6383672869..a39c0df3cd6a 100644 --- a/drivers/gpu/pvr/services4/srvkm/env/linux/pvr_uaccess.h +++ b/drivers/gpu/pvr/services4/srvkm/env/linux/pvr_uaccess.h @@ -54,7 +54,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. static inline unsigned long pvr_copy_to_user(void __user *pvTo, const void *pvFrom, unsigned long ulBytes) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +# if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0)) + if (access_ok(pvTo, ulBytes)) +# else if (access_ok(VERIFY_WRITE, pvTo, ulBytes)) +# endif { return __copy_to_user(pvTo, pvFrom, ulBytes); } @@ -71,7 +75,11 @@ static inline unsigned long pvr_copy_from_user(void *pvTo, const void __user *pv * The compile time correctness checking introduced for copy_from_user in * Linux 2.6.33 isn't fully comaptible with our usage of the function. */ +# if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0)) + if (access_ok(pvFrom, ulBytes)) +# else if (access_ok(VERIFY_READ, pvFrom, ulBytes)) +# endif { return __copy_from_user(pvTo, pvFrom, ulBytes); } |