Browse Source

qcacmn: Use vm_fault->address instead of virtual_address

Linux kernel 4.10 removed vm_fault->virtual_address in favor of simply
using vm_fault->address. Add conditional compilation to use the
appropriate vm_fault address field based on the version of the Linux
kernel being compiled against.

Change-Id: I3f29721888bf349a7ac4f5f62d576b668ee0abc2
CRs-Fixed: 2094806
Dustin Brown 7 years ago
parent
commit
8f6788d071
1 changed files with 13 additions and 1 deletions
  1. 13 1
      utils/pktlog/linux_ac.c

+ 13 - 1
utils/pktlog/linux_ac.c

@@ -991,9 +991,21 @@ static void pktlog_vclose(struct vm_area_struct *vma)
 	PKTLOG_MOD_DEC_USE_COUNT;
 }
 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+static inline unsigned long pktlog_get_fault_address(struct vm_fault *vmf)
+{
+	return (unsigned long)vmf->virtual_address;
+}
+#else
+static inline unsigned long pktlog_get_fault_address(struct vm_fault *vmf)
+{
+	return vmf->address;
+}
+#endif /* KERNEL_VERSION(4, 10, 0) */
+
 static int pktlog_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 {
-	unsigned long address = (unsigned long)vmf->virtual_address;
+	unsigned long address = pktlog_get_fault_address(vmf);
 
 	if (address == 0UL)
 		return VM_FAULT_NOPAGE;