Module Name: src Committed By: ad Date: Fri Jan 17 20:09:47 UTC 2020
Modified Files: src/sys/external/bsd/drm2/include/linux: mm.h Log Message: set_page_dirty: take the vmobjlock if present To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/external/bsd/drm2/include/linux/mm.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/external/bsd/drm2/include/linux/mm.h diff -u src/sys/external/bsd/drm2/include/linux/mm.h:1.10 src/sys/external/bsd/drm2/include/linux/mm.h:1.11 --- src/sys/external/bsd/drm2/include/linux/mm.h:1.10 Wed Jan 15 17:55:44 2020 +++ src/sys/external/bsd/drm2/include/linux/mm.h Fri Jan 17 20:09:47 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: mm.h,v 1.10 2020/01/15 17:55:44 ad Exp $ */ +/* $NetBSD: mm.h,v 1.11 2020/01/17 20:09:47 ad Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -95,8 +95,16 @@ kvfree(void *ptr) static inline void set_page_dirty(struct page *page) { + struct vm_page *pg = &page->p_vmp; - uvm_pagemarkdirty(&page->p_vmp, UVM_PAGE_STATUS_DIRTY); + /* XXX */ + if (pg->uobject != NULL) { + mutex_enter(pg->uobject->vmobjlock); + uvm_pagemarkdirty(pg, UVM_PAGE_STATUS_DIRTY); + mutex_exit(pg->uobject->vmobjlock); + } else { + uvm_pagemarkdirty(pg, UVM_PAGE_STATUS_DIRTY); + } } #endif /* _LINUX_MM_H_ */