@@ -187,64 +187,64 @@ i915_error_printer(struct drm_i915_error_state_buf *e)
187187}
188188
189189/* single threaded page allocator with a reserved stash for emergencies */
190- static void pool_fini (struct pagevec * pv )
190+ static void pool_fini (struct folio_batch * fbatch )
191191{
192- pagevec_release ( pv );
192+ folio_batch_release ( fbatch );
193193}
194194
195- static int pool_refill (struct pagevec * pv , gfp_t gfp )
195+ static int pool_refill (struct folio_batch * fbatch , gfp_t gfp )
196196{
197- while (pagevec_space ( pv )) {
198- struct page * p ;
197+ while (folio_batch_space ( fbatch )) {
198+ struct folio * folio ;
199199
200- p = alloc_page (gfp );
201- if (!p )
200+ folio = folio_alloc (gfp , 0 );
201+ if (!folio )
202202 return - ENOMEM ;
203203
204- pagevec_add ( pv , p );
204+ folio_batch_add ( fbatch , folio );
205205 }
206206
207207 return 0 ;
208208}
209209
210- static int pool_init (struct pagevec * pv , gfp_t gfp )
210+ static int pool_init (struct folio_batch * fbatch , gfp_t gfp )
211211{
212212 int err ;
213213
214- pagevec_init ( pv );
214+ folio_batch_init ( fbatch );
215215
216- err = pool_refill (pv , gfp );
216+ err = pool_refill (fbatch , gfp );
217217 if (err )
218- pool_fini (pv );
218+ pool_fini (fbatch );
219219
220220 return err ;
221221}
222222
223- static void * pool_alloc (struct pagevec * pv , gfp_t gfp )
223+ static void * pool_alloc (struct folio_batch * fbatch , gfp_t gfp )
224224{
225- struct page * p ;
225+ struct folio * folio ;
226226
227- p = alloc_page (gfp );
228- if (!p && pagevec_count ( pv ))
229- p = pv -> pages [-- pv -> nr ];
227+ folio = folio_alloc (gfp , 0 );
228+ if (!folio && folio_batch_count ( fbatch ))
229+ folio = fbatch -> folios [-- fbatch -> nr ];
230230
231- return p ? page_address ( p ) : NULL ;
231+ return folio ? folio_address ( folio ) : NULL ;
232232}
233233
234- static void pool_free (struct pagevec * pv , void * addr )
234+ static void pool_free (struct folio_batch * fbatch , void * addr )
235235{
236- struct page * p = virt_to_page (addr );
236+ struct folio * folio = virt_to_folio (addr );
237237
238- if (pagevec_space ( pv ))
239- pagevec_add ( pv , p );
238+ if (folio_batch_space ( fbatch ))
239+ folio_batch_add ( fbatch , folio );
240240 else
241- __free_page ( p );
241+ folio_put ( folio );
242242}
243243
244244#ifdef CONFIG_DRM_I915_COMPRESS_ERROR
245245
246246struct i915_vma_compress {
247- struct pagevec pool ;
247+ struct folio_batch pool ;
248248 struct z_stream_s zstream ;
249249 void * tmp ;
250250};
@@ -381,7 +381,7 @@ static void err_compression_marker(struct drm_i915_error_state_buf *m)
381381#else
382382
383383struct i915_vma_compress {
384- struct pagevec pool ;
384+ struct folio_batch pool ;
385385};
386386
387387static bool compress_init (struct i915_vma_compress * c )
0 commit comments