@@ -189,64 +189,64 @@ i915_error_printer(struct drm_i915_error_state_buf *e)
189189}
190190
191191/* single threaded page allocator with a reserved stash for emergencies */
192- static void pool_fini (struct pagevec * pv )
192+ static void pool_fini (struct folio_batch * fbatch )
193193{
194- pagevec_release ( pv );
194+ folio_batch_release ( fbatch );
195195}
196196
197- static int pool_refill (struct pagevec * pv , gfp_t gfp )
197+ static int pool_refill (struct folio_batch * fbatch , gfp_t gfp )
198198{
199- while (pagevec_space ( pv )) {
200- struct page * p ;
199+ while (folio_batch_space ( fbatch )) {
200+ struct folio * folio ;
201201
202- p = alloc_page (gfp );
203- if (!p )
202+ folio = folio_alloc (gfp , 0 );
203+ if (!folio )
204204 return - ENOMEM ;
205205
206- pagevec_add ( pv , p );
206+ folio_batch_add ( fbatch , folio );
207207 }
208208
209209 return 0 ;
210210}
211211
212- static int pool_init (struct pagevec * pv , gfp_t gfp )
212+ static int pool_init (struct folio_batch * fbatch , gfp_t gfp )
213213{
214214 int err ;
215215
216- pagevec_init ( pv );
216+ folio_batch_init ( fbatch );
217217
218- err = pool_refill (pv , gfp );
218+ err = pool_refill (fbatch , gfp );
219219 if (err )
220- pool_fini (pv );
220+ pool_fini (fbatch );
221221
222222 return err ;
223223}
224224
225- static void * pool_alloc (struct pagevec * pv , gfp_t gfp )
225+ static void * pool_alloc (struct folio_batch * fbatch , gfp_t gfp )
226226{
227- struct page * p ;
227+ struct folio * folio ;
228228
229- p = alloc_page (gfp );
230- if (!p && pagevec_count ( pv ))
231- p = pv -> pages [-- pv -> nr ];
229+ folio = folio_alloc (gfp , 0 );
230+ if (!folio && folio_batch_count ( fbatch ))
231+ folio = fbatch -> folios [-- fbatch -> nr ];
232232
233- return p ? page_address ( p ) : NULL ;
233+ return folio ? folio_address ( folio ) : NULL ;
234234}
235235
236- static void pool_free (struct pagevec * pv , void * addr )
236+ static void pool_free (struct folio_batch * fbatch , void * addr )
237237{
238- struct page * p = virt_to_page (addr );
238+ struct folio * folio = virt_to_folio (addr );
239239
240- if (pagevec_space ( pv ))
241- pagevec_add ( pv , p );
240+ if (folio_batch_space ( fbatch ))
241+ folio_batch_add ( fbatch , folio );
242242 else
243- __free_page ( p );
243+ folio_put ( folio );
244244}
245245
246246#ifdef CONFIG_DRM_I915_COMPRESS_ERROR
247247
248248struct i915_vma_compress {
249- struct pagevec pool ;
249+ struct folio_batch pool ;
250250 struct z_stream_s zstream ;
251251 void * tmp ;
252252};
@@ -387,7 +387,7 @@ static void err_compression_marker(struct drm_i915_error_state_buf *m)
387387#else
388388
389389struct i915_vma_compress {
390- struct pagevec pool ;
390+ struct folio_batch pool ;
391391};
392392
393393static bool compress_init (struct i915_vma_compress * c )
0 commit comments