[REVERT] 2.5.21 s390/block/xpram.c

Martin Dalecki
2002-06-10T13:01:13Z

[-- Attachment #1: Type: text/plain, Size: 284 bytes --]

During the course of the patch-2.5.21 I noticed the
following attached chunk, which resurrect hardsects array in the
affected code. This is of course entierly bogous.
Please revert this chunk, since it's most propably just
a merge error on behalf of the Big Blue.

Oh well oh well...

[-- Attachment #2: bumb-2.5.21.diff --]
[-- Type: text/plain, Size: 1897 bytes --]

diff -Nru a/drivers/s390/block/xpram.c b/drivers/s390/block/xpram.c
--- a/drivers/s390/block/xpram.c Sat Jun 8 22:31:51 2002
+++ b/drivers/s390/block/xpram.c Sat Jun 8 22:31:51 2002
@@ -158,6 +158,7 @@
/* The following items are obtained through kmalloc() in init_module() */

Xpram_Dev *xpram_devices = NULL;
+int *xpram_hardsects = NULL;
int *xpram_offsets = NULL; /* partition offsets */

#define MIN(x,y) ((x) < (y) ? (x) : (y))
@@ -938,7 +939,6 @@

q = BLK_DEFAULT_QUEUE(major);
blk_init_queue (q, xpram_request);
- blk_queue_hardsect_size(q, xpram_hardsect);

/* we want to have XPRAM_UNUSED blocks security buffer between devices */
mem_usable=xpram_mem_avail-(XPRAM_UNUSED*(xpram_devs-1));
@@ -978,6 +978,16 @@
PRINT_DEBUG(" device(%d) offset = %d kB, size = %d kB\n",i, xpram_offsets[i], xpram_sizes[i]);
#endif

+ xpram_hardsects = kmalloc(xpram_devs * sizeof(int), GFP_KERNEL);
+ if (!xpram_hardsects) {
+ PRINT_ERR("Not enough memory for xpram_hardsects\n");
+ PRINT_ERR("Giving up xpram\n");
+ goto fail_malloc_hardsects;
+ }
+ for (i=0; i < xpram_devs; i++) /* all the same hardsect */
+ xpram_hardsects[i] = xpram_hardsect;
+ hardsect_size[major]=xpram_hardsects;
+
/*
* allocate the devices -- we can't have them static, as the number
* can be specified at load time
@@ -1030,6 +1040,7 @@
goto fail_devfs_register;
}
#endif /* WHY? */
+
}

return 0; /* succeed */
@@ -1042,7 +1053,10 @@
}
kfree(xpram_devices);
kfree (xpram_offsets);
+ fail_malloc_hardsects:
fail_malloc_devices:
+ kfree(xpram_hardsects);
+ hardsect_size[major] = NULL;
fail_malloc:
/* ??? unregister_chrdev(major, "xpram"); */
unregister_blkdev(major, "xpram");
@@ -1072,6 +1086,7 @@
int i;

/* first of all, reset all the data structures */
+ kfree(hardsect_size[major]);
kfree(xpram_offsets);
blk_clear(major);