Index: uClinux-2.4.x/drivers/mtd/mtdblock.c
===================================================================
RCS file: /var/cvs/uClinux-2.4.x/drivers/mtd/mtdblock.c,v
retrieving revision 1.6
diff -r1.6 mtdblock.c
583c583,584
< 	if ((*mtd->point)(mtd,vma->vm_offset,vma->vm_end-vma->vm_start,&len,&ptr) != 0)
---
> 	if ((*mtd->point)(mtd, vma->vm_pgoff << PAGE_SHIFT,
> 				vma->vm_end - vma->vm_start, &len, &ptr) != 0)
Index: uClinux-2.4.x/fs/romfs/inode.c
===================================================================
RCS file: /var/cvs/uClinux-2.4.x/fs/romfs/inode.c,v
retrieving revision 1.9
diff -r1.9 inode.c
446a447
> 	vma->vm_end   += (inode->u.romfs_i.i_dataoffset & ~PAGE_MASK);
Index: uClinux-2.4.x/mmnommu/page_alloc2.c
===================================================================
RCS file: /var/cvs/uClinux-2.4.x/mmnommu/page_alloc2.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -r1.21 -r1.22
1075a1076
> 	unsigned long total_rbytes = 0;
1078c1079
< 	for_each_process(p) {
---
> 	for_each_task(p) {
1080,1081c1081,1082
< 		unsigned long bytes = 0, sbytes = 0, slack = 0;
< 		struct mm_tblock_struct * tblock;
---
> 		unsigned long ks, rbytes = 0, bytes = 0, sbytes = 0, slack = 0;
> 		struct vm_list_struct *vml;
1086,1092c1087,1097
< 		for (tblock = mm->tblock; tblock; tblock = tblock->next) {
< 			if (tblock->vma) {
< 				bytes += ksize(tblock);
< 				if (atomic_read(&mm->mm_count) > 1 ||
< 						atomic_read(&tblock->vma->vm_usage) > 1) {
< 					sbytes += ksize((void *) tblock->vma->vm_start);
< 					sbytes += ksize(tblock->vma) ;
---
> 		for (vml = mm->vmlist; vml; vml = vml->next) {
> 			bytes += ksize(vml);
> 			if (vml->vma) {
> 				ks = ksize((void *) vml->vma->vm_start);
> 				if (ks == 0)
> 					ks = vml->vma->vm_end - vml->vma->vm_start;
> 				if (is_in_rom(vml->vma->vm_start)) {
> 					rbytes += vml->vma->vm_end - vml->vma->vm_start;
> 				} else if (atomic_read(&vml->vma->vm_usage) > 1) {
> 					sbytes += ks;
> 					sbytes += ksize(vml->vma) ;
1094,1097c1099,1101
< 					bytes += ksize((void *) tblock->vma->vm_start);
< 					bytes += ksize(tblock->vma) ;
< 					slack += ksize((void *) tblock->vma->vm_start) -
< 					    (tblock->vma->vm_end - tblock->vma->vm_start);
---
> 					bytes += ks;
> 					bytes += ksize(vml->vma) ;
> 					slack += ks - (vml->vma->vm_end - vml->vma->vm_start);
1117,1120c1121,1124
< 		if (current->signal && atomic_read(&current->signal->count) > 1)
< 			sbytes += ksize(current->signal);
< 		else
< 			bytes += ksize(current->signal);
---
> 		if (current->sig && atomic_read(&current->sig->count) > 1)
> 			sbytes += ksize(current->sig);
> 		else if (current->sig)
> 			bytes += ksize(current->sig);
1124,1125c1128,1129
< 		PRINTK("%-16s Mem:%8lu Slack:%8lu Shared:%8lu\n", p->comm, bytes,
< 				slack, sbytes);
---
> 		PRINTK("%-16s Mem:%8lu Slack:%8lu Shared:%8lu Rom:%8lu\n",
> 				p->comm, bytes, slack, sbytes, rbytes);
1129a1134
> 		total_rbytes += rbytes;
1131,1132c1136,1137
< 	PRINTK("%-16s Mem:%8lu Slack:%8lu Shared:%8lu\n\n", "Total", total_bytes,
< 				total_slack, total_sbytes);
---
> 	PRINTK("%-16s Mem:%8lu Slack:%8lu Shared:%8lu Rom:%8lu\n\n", "Total",
> 			total_bytes, total_slack, total_sbytes, total_rbytes);

