File tree Expand file tree Collapse file tree 5 files changed +24
-23
lines changed Expand file tree Collapse file tree 5 files changed +24
-23
lines changed Original file line number Diff line number Diff line change @@ -3646,21 +3646,21 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
3646
3646
#endif /* CONFIG_NUMA */
3647
3647
3648
3648
#ifdef CONFIG_PRINTK
3649
- void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct page * page )
3649
+ void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct slab * slab )
3650
3650
{
3651
3651
struct kmem_cache * cachep ;
3652
3652
unsigned int objnr ;
3653
3653
void * objp ;
3654
3654
3655
3655
kpp -> kp_ptr = object ;
3656
- kpp -> kp_page = page ;
3657
- cachep = page -> slab_cache ;
3656
+ kpp -> kp_slab = slab ;
3657
+ cachep = slab -> slab_cache ;
3658
3658
kpp -> kp_slab_cache = cachep ;
3659
3659
objp = object - obj_offset (cachep );
3660
3660
kpp -> kp_data_offset = obj_offset (cachep );
3661
- page = virt_to_head_page (objp );
3662
- objnr = obj_to_index (cachep , page , objp );
3663
- objp = index_to_obj (cachep , page , objnr );
3661
+ slab = virt_to_slab (objp );
3662
+ objnr = obj_to_index (cachep , slab_page ( slab ) , objp );
3663
+ objp = index_to_obj (cachep , slab_page ( slab ) , objnr );
3664
3664
kpp -> kp_objp = objp ;
3665
3665
if (DEBUG && cachep -> flags & SLAB_STORE_USER )
3666
3666
kpp -> kp_ret = * dbg_userword (cachep , objp );
Original file line number Diff line number Diff line change @@ -801,15 +801,15 @@ static inline void debugfs_slab_release(struct kmem_cache *s) { }
801
801
#define KS_ADDRS_COUNT 16
802
802
struct kmem_obj_info {
803
803
void * kp_ptr ;
804
- struct page * kp_page ;
804
+ struct slab * kp_slab ;
805
805
void * kp_objp ;
806
806
unsigned long kp_data_offset ;
807
807
struct kmem_cache * kp_slab_cache ;
808
808
void * kp_ret ;
809
809
void * kp_stack [KS_ADDRS_COUNT ];
810
810
void * kp_free_stack [KS_ADDRS_COUNT ];
811
811
};
812
- void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct page * page );
812
+ void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct slab * slab );
813
813
#endif
814
814
815
815
#endif /* MM_SLAB_H */
Original file line number Diff line number Diff line change @@ -550,13 +550,13 @@ bool slab_is_available(void)
550
550
*/
551
551
bool kmem_valid_obj (void * object )
552
552
{
553
- struct page * page ;
553
+ struct folio * folio ;
554
554
555
555
/* Some arches consider ZERO_SIZE_PTR to be a valid address. */
556
556
if (object < (void * )PAGE_SIZE || !virt_addr_valid (object ))
557
557
return false;
558
- page = virt_to_head_page (object );
559
- return PageSlab ( page );
558
+ folio = virt_to_folio (object );
559
+ return folio_test_slab ( folio );
560
560
}
561
561
EXPORT_SYMBOL_GPL (kmem_valid_obj );
562
562
@@ -579,18 +579,18 @@ void kmem_dump_obj(void *object)
579
579
{
580
580
char * cp = IS_ENABLED (CONFIG_MMU ) ? "" : "/vmalloc" ;
581
581
int i ;
582
- struct page * page ;
582
+ struct slab * slab ;
583
583
unsigned long ptroffset ;
584
584
struct kmem_obj_info kp = { };
585
585
586
586
if (WARN_ON_ONCE (!virt_addr_valid (object )))
587
587
return ;
588
- page = virt_to_head_page (object );
589
- if (WARN_ON_ONCE (!PageSlab ( page ) )) {
588
+ slab = virt_to_slab (object );
589
+ if (WARN_ON_ONCE (!slab )) {
590
590
pr_cont (" non-slab memory.\n" );
591
591
return ;
592
592
}
593
- kmem_obj_info (& kp , object , page );
593
+ kmem_obj_info (& kp , object , slab );
594
594
if (kp .kp_slab_cache )
595
595
pr_cont (" slab%s %s" , cp , kp .kp_slab_cache -> name );
596
596
else
Original file line number Diff line number Diff line change @@ -462,10 +462,10 @@ static void slob_free(void *block, int size)
462
462
}
463
463
464
464
#ifdef CONFIG_PRINTK
465
- void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct page * page )
465
+ void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct slab * slab )
466
466
{
467
467
kpp -> kp_ptr = object ;
468
- kpp -> kp_page = page ;
468
+ kpp -> kp_slab = slab ;
469
469
}
470
470
#endif
471
471
Original file line number Diff line number Diff line change @@ -4322,31 +4322,32 @@ int __kmem_cache_shutdown(struct kmem_cache *s)
4322
4322
}
4323
4323
4324
4324
#ifdef CONFIG_PRINTK
4325
- void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct page * page )
4325
+ void kmem_obj_info (struct kmem_obj_info * kpp , void * object , struct slab * slab )
4326
4326
{
4327
4327
void * base ;
4328
4328
int __maybe_unused i ;
4329
4329
unsigned int objnr ;
4330
4330
void * objp ;
4331
4331
void * objp0 ;
4332
- struct kmem_cache * s = page -> slab_cache ;
4332
+ struct kmem_cache * s = slab -> slab_cache ;
4333
4333
struct track __maybe_unused * trackp ;
4334
4334
4335
4335
kpp -> kp_ptr = object ;
4336
- kpp -> kp_page = page ;
4336
+ kpp -> kp_slab = slab ;
4337
4337
kpp -> kp_slab_cache = s ;
4338
- base = page_address ( page );
4338
+ base = slab_address ( slab );
4339
4339
objp0 = kasan_reset_tag (object );
4340
4340
#ifdef CONFIG_SLUB_DEBUG
4341
4341
objp = restore_red_left (s , objp0 );
4342
4342
#else
4343
4343
objp = objp0 ;
4344
4344
#endif
4345
- objnr = obj_to_index (s , page , objp );
4345
+ objnr = obj_to_index (s , slab_page ( slab ) , objp );
4346
4346
kpp -> kp_data_offset = (unsigned long )((char * )objp0 - (char * )objp );
4347
4347
objp = base + s -> size * objnr ;
4348
4348
kpp -> kp_objp = objp ;
4349
- if (WARN_ON_ONCE (objp < base || objp >= base + page -> objects * s -> size || (objp - base ) % s -> size ) ||
4349
+ if (WARN_ON_ONCE (objp < base || objp >= base + slab -> objects * s -> size
4350
+ || (objp - base ) % s -> size ) ||
4350
4351
!(s -> flags & SLAB_STORE_USER ))
4351
4352
return ;
4352
4353
#ifdef CONFIG_SLUB_DEBUG
You can’t perform that action at this time.
0 commit comments