History

mm/rmap: Constify the rmap_walk_control argument

The rmap walking functions do not modify the rmap_walk_control, and page_idle_clear_pte_refs() takes advantage of that to move construction of the rmap_walk_control to compile time. This lets us remove an unclean cast.

Matthew Wilcox (Oracle) committed 4 years ago

Commit 84fbbe21 parent 2f031c65 files · +13 −13Browse files

Showing the changes to include (2 of 5 files). Show all

Unified · Split

2 files
  1. include/linux/ksm.h +2 −2
  2. include/linux/rmap.h +2 −2
include/linux/ksm.h+2−2
@@ -51,7 +51,7 @@ static inline void ksm_exit(struct mm_struct *mm) · 50 unmodified lines
5151 struct page *ksm_might_need_to_copy(struct page *page,
5252 struct vm_area_struct *vma, unsigned long address);
5353
54−void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc);
54+void rmap_walk_ksm(struct folio *folio, const struct rmap_walk_control *rwc);
5555 void folio_migrate_ksm(struct folio *newfolio, struct folio *folio);
5656
5757 #else /* !CONFIG_KSM */
@@ -79,7 +79,7 @@ static inline struct page *ksm_might_need_to_copy(struct page *page, · 21 unmodified lines
7979 }
8080
8181 static inline void rmap_walk_ksm(struct folio *folio,
82− struct rmap_walk_control *rwc)
82+ const struct rmap_walk_control *rwc)
8383 {
8484 }
8585
include/linux/rmap.h+2−2
@@ -292,8 +292,8 @@ struct rmap_walk_control { · 291 unmodified lines
292292 bool (*invalid_vma)(struct vm_area_struct *vma, void *arg);
293293 };
294294
295−void rmap_walk(struct folio *folio, struct rmap_walk_control *rwc);
296−void rmap_walk_locked(struct folio *folio, struct rmap_walk_control *rwc);
295+void rmap_walk(struct folio *folio, const struct rmap_walk_control *rwc);
296+void rmap_walk_locked(struct folio *folio, const struct rmap_walk_control *rwc);
297297
298298 #else /* !CONFIG_MMU */
299299

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t