Re: git: a3a88ed22cb1 - main - vm_page: drop prev and next
- In reply to: Cy Schubert : "Re: git: a3a88ed22cb1 - main - vm_page: drop prev and next"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Apr 2025 10:35:22 UTC
On Mon, Apr 21, 2025, at 12:09 AM, Cy Schubert wrote:
> In message <202504181927.53IJRsoQ035803@gitrepo.freebsd.org>, Doug Moore
> writes
> :
>> The branch main has been updated by dougm:
>>
>> URL: https://cgit.FreeBSD.org/src/commit/?id=a3a88ed22cb111da3336f64ec3ba5815
>> a8278f88
>>
>> commit a3a88ed22cb111da3336f64ec3ba5815a8278f88
>> Author: Doug Moore <dougm@FreeBSD.org>
>> AuthorDate: 2025-04-18 19:26:56 +0000
>> Commit: Doug Moore <dougm@FreeBSD.org>
>> CommitDate: 2025-04-18 19:26:56 +0000
>>
>> vm_page: drop prev and next
>>
>> Functions vm_page_prev() and vm_page_next() are no longer
>> invoked. Remove them.
>>
>> Reviewed by: kib
>> Differential Revision: https://reviews.freebsd.org/D49892
>> ---
>> sys/vm/vm_page.c | 40 ----------------------------------------
>> sys/vm/vm_page.h | 2 --
>> 2 files changed, 42 deletions(-)
>>
>> diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
>> index 65d278caf3fd..db91b7bab2ab 100644
>> --- a/sys/vm/vm_page.c
>> +++ b/sys/vm/vm_page.c
>> @@ -1894,46 +1894,6 @@ vm_page_find_least(vm_object_t object, vm_pindex_t pin
>> dex)
>> return (m);
>> }
>>
>> -/*
>> - * Returns the given page's successor (by pindex) within the object if it is
>> - * resident; if none is found, NULL is returned.
>> - *
>> - * The object must be locked.
>> - */
>> -vm_page_t
>> -vm_page_next(vm_page_t m)
>> -{
>> - vm_page_t next;
>> -
>> - VM_OBJECT_ASSERT_LOCKED(m->object);
>> - if ((next = TAILQ_NEXT(m, listq)) != NULL) {
>> - MPASS(next->object == m->object);
>> - if (next->pindex != m->pindex + 1)
>> - next = NULL;
>> - }
>> - return (next);
>> -}
>> -
>> -/*
>> - * Returns the given page's predecessor (by pindex) within the object if it
>> is
>> - * resident; if none is found, NULL is returned.
>> - *
>> - * The object must be locked.
>> - */
>> -vm_page_t
>> -vm_page_prev(vm_page_t m)
>> -{
>> - vm_page_t prev;
>> -
>> - VM_OBJECT_ASSERT_LOCKED(m->object);
>> - if ((prev = TAILQ_PREV(m, pglist, listq)) != NULL) {
>> - MPASS(prev->object == m->object);
>> - if (prev->pindex != m->pindex - 1)
>> - prev = NULL;
>> - }
>> - return (prev);
>> -}
>> -
>> /*
>> * Uses the page mnew as a replacement for an existing page at index
>> * pindex which must be already present in the object.
>> diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h
>> index 0a40b42ffb62..bf2e850612d7 100644
>> --- a/sys/vm/vm_page.h
>> +++ b/sys/vm/vm_page.h
>> @@ -664,12 +664,10 @@ bool vm_page_iter_rename(struct pctrie_iter *old_pages,
>> vm_page_t m,
>> void vm_page_launder(vm_page_t m);
>> vm_page_t vm_page_lookup(vm_object_t, vm_pindex_t);
>> vm_page_t vm_page_lookup_unlocked(vm_object_t, vm_pindex_t);
>> -vm_page_t vm_page_next(vm_page_t m);
>> void vm_page_pqbatch_drain(void);
>> void vm_page_pqbatch_submit(vm_page_t m, uint8_t queue);
>> bool vm_page_pqstate_commit(vm_page_t m, vm_page_astate_t *old,
>> vm_page_astate_t new);
>> -vm_page_t vm_page_prev(vm_page_t m);
>> bool vm_page_ps_test(vm_page_t m, int psind, int flags, vm_page_t skip_m);
>> void vm_page_putfake(vm_page_t m);
>> void vm_page_readahead_finish(vm_page_t m);
>>
>
> This breaks ports/graphics/drm-*-kmod. X will no longer start due to
> missing vm_page_next().
>
> cc: manu
>
>
> --
> Cheers,
> Cy Schubert <Cy.Schubert@cschubert.com>
> FreeBSD UNIX: <cy@FreeBSD.org> Web: https://FreeBSD.org
> NTP: <cy@nwtime.org> Web: https://nwtime.org
>
> e^(i*pi)+1=0
Also drm-kmod cannot build:
--- i915_gem_mman.o ---
/wrkdirs/usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:77: error: call to undeclared function 'vm_page_next'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
171 | for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) {
| ^
--- intel_guc_log_debugfs.o ---
--- i915_gem_mman.o ---
/wrkdirs/usr/ports/graphics/drm-61-kmod/work/drm-kmod-drm_v6.1.128_1/drivers/gpu/drm/i915/gem/i915_gem_mman.c:171:75: error: incompatible integer to pointer conversion assigning to 'vm_page_t' (aka 'struct vm_page *') from 'int' [-Wint-conversion]
171 | for (vm_page_t page = vm_page_find_least(vmobj, 0); page != NULL; page = vm_page_next(page)) {
| ^ ~~~~~~~~~~~~~~~~~~
--- intel_guc_log_debugfs.o ---