* Patch: linux-2.5.2-pre8/drivers/mtd compilation fixes
@ 2002-01-05 10:50 Adam J. Richter
2002-01-05 11:24 ` David Woodhouse
0 siblings, 1 reply; 3+ messages in thread
From: Adam J. Richter @ 2002-01-05 10:50 UTC (permalink / raw)
To: dwmw2, mtd, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 866 bytes --]
The following patch updates linux-2.5.2-pre8/drivers/mtd
to compile. This entails some kdev_t fixes and other updates
for changes to the block device driver interface.
In the case of one routine (ftl_reread_partitions), there was
a goto to a nonexistant label (goto leave), so I think there may have
been an incomplete patch applied to this subdirectory to begin with
(also, drivers/mtd/bootldr.c refers to a nonexistant "struct tag",
but that file is apparently not currently compiled anyhow).
I only know that this patch makes the code compile. I
have not tested it.
--
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
[-- Attachment #2: mtd.diffs --]
[-- Type: text/plain, Size: 17798 bytes --]
--- linux-2.5.2-pre8/drivers/mtd/ftl.c Fri Jan 4 19:40:37 2002
+++ linux/drivers/mtd/ftl.c Sat Jan 5 02:37:28 2002
@@ -180,6 +180,7 @@
static struct hd_struct ftl_hd[MINOR_NR(MAX_DEV, 0, 0)];
static int ftl_sizes[MINOR_NR(MAX_DEV, 0, 0)];
static int ftl_blocksizes[MINOR_NR(MAX_DEV, 0, 0)];
+static spinlock_t ftl_queue_lock = SPIN_LOCK_UNLOCKED;
static struct gendisk ftl_gendisk = {
major: FTL_MAJOR,
@@ -195,7 +196,7 @@
u_int cmd, u_long arg);
static int ftl_open(struct inode *inode, struct file *file);
static release_t ftl_close(struct inode *inode, struct file *file);
-static int ftl_reread_partitions(int minor);
+static int ftl_reread_partitions(kdev_t dev);
static void ftl_erase_callback(struct erase_info *done);
@@ -842,7 +843,7 @@
static int ftl_open(struct inode *inode, struct file *file)
{
- int minor = MINOR(inode->i_rdev);
+ int minor = minor(inode->i_rdev);
partition_t *partition;
if (minor>>4 >= MAX_MTD_DEVICES)
@@ -878,7 +879,7 @@
static release_t ftl_close(struct inode *inode, struct file *file)
{
- int minor = MINOR(inode->i_rdev);
+ int minor = minor(inode->i_rdev);
partition_t *part = myparts[minor >> 4];
int i;
@@ -1114,7 +1115,7 @@
u_int cmd, u_long arg)
{
struct hd_geometry *geo = (struct hd_geometry *)arg;
- int ret = 0, minor = MINOR(inode->i_rdev);
+ int ret = 0, minor = minor(inode->i_rdev);
partition_t *part= myparts[minor >> 4];
u_long sect;
@@ -1139,7 +1140,7 @@
ret = put_user((u64)ftl_hd[minor].nr_sects << 9, (u64 *)arg);
break;
case BLKRRPART:
- ret = ftl_reread_partitions(minor);
+ ret = ftl_reread_partitions(inode->i_rdev);
break;
case BLKROSET:
case BLKROGET:
@@ -1161,25 +1162,24 @@
static int ftl_reread_partitions(kdev_t dev)
{
- int minor = MINOR(dev);
- partition_t *part = myparts[minor >> 4];
+ partition_t *part = myparts[minor(dev) >> 4];
int res;
- DEBUG(0, "ftl_cs: ftl_reread_partition(%d)\n", minor);
+ DEBUG(0, "ftl_cs: ftl_reread_partition(%d)\n", minor(dev));
if ((atomic_read(&part->open) > 1)) {
return -EBUSY;
}
res = wipe_partitions(dev);
if (res)
- goto leave;
+ return res;
scan_header(part);
- register_disk(&ftl_gendisk, whole >> PART_BITS, MAX_PART,
+ register_disk(&ftl_gendisk, dev, MAX_PART,
&ftl_blk_fops, le32_to_cpu(part->header.FormattedSize)/SECTOR_SIZE);
- return res;
+ return 0;
}
/*======================================================================
@@ -1190,37 +1190,30 @@
static void do_ftl_request(request_arg_t)
{
- int ret, minor;
+ int ret, index;
partition_t *part;
do {
// sti();
INIT_REQUEST;
- minor = MINOR(CURRENT->rq_dev);
+ index = minor(CURRENT->rq_dev);
- part = myparts[minor >> 4];
+ part = myparts[index >> 4];
if (part) {
ret = 0;
- switch (CURRENT->cmd) {
- case READ:
+ if (CURRENT->cmd == READ) {
ret = ftl_read(part, CURRENT->buffer,
- CURRENT->sector+ftl_hd[minor].start_sect,
+ CURRENT->sector+ftl_hd[index].start_sect,
CURRENT->current_nr_sectors);
if (ret) printk("ftl_read returned %d\n", ret);
- break;
-
- case WRITE:
+ }
+ else {
ret = ftl_write(part, CURRENT->buffer,
- CURRENT->sector+ftl_hd[minor].start_sect,
+ CURRENT->sector+ftl_hd[index].start_sect,
CURRENT->current_nr_sectors);
if (ret) printk("ftl_write returned %d\n", ret);
- break;
-
- default:
- panic("ftl_cs: unknown block command!\n");
-
}
} else {
ret = 1;
@@ -1294,7 +1287,7 @@
partition->state = FTL_FORMATTED;
atomic_set(&partition->open, 0);
myparts[device] = partition;
- ftl_reread_partitions(device << 4);
+ ftl_reread_partitions(mk_kdev(FTL_MAJOR, device << 4));
#ifdef PCMCIA_DEBUG
printk(KERN_INFO "ftl_cs: opening %d kb FTL partition\n",
le32_to_cpu(partition->header.FormattedSize) >> 10);
@@ -1355,7 +1348,8 @@
}
blksize_size[FTL_MAJOR] = ftl_blocksizes;
ftl_gendisk.major = FTL_MAJOR;
- blk_init_queue(BLK_DEFAULT_QUEUE(FTL_MAJOR), &do_ftl_request);
+ blk_init_queue(BLK_DEFAULT_QUEUE(FTL_MAJOR), &do_ftl_request,
+ &ftl_queue_lock);
add_gendisk(&ftl_gendisk);
register_mtd_user(&ftl_notifier);
@@ -1369,7 +1363,7 @@
unregister_blkdev(FTL_MAJOR, "ftl");
blk_cleanup_queue(BLK_DEFAULT_QUEUE(FTL_MAJOR));
- bklk_clear(FTL_MAJOR);
+ blk_clear(FTL_MAJOR);
del_gendisk(&ftl_gendisk);
}
--- linux-2.5.2-pre8/drivers/mtd/mtdblock.c Tue Nov 27 09:23:27 2001
+++ linux/drivers/mtd/mtdblock.c Sat Jan 5 02:27:14 2002
@@ -31,6 +31,7 @@
#else
#define QUEUE_PLUGGED (blk_queue_plugged(QUEUE))
#endif
+static spinlock_t mtdblock_queue_lock = SPIN_LOCK_UNLOCKED;
#ifdef CONFIG_DEVFS_FS
#include <linux/devfs_fs_kernel.h>
@@ -283,7 +284,7 @@
if (!inode)
return -EINVAL;
- dev = MINOR(inode->i_rdev);
+ dev = minor(inode->i_rdev);
if (dev >= MAX_MTD_DEVICES)
return -EINVAL;
@@ -373,7 +374,7 @@
invalidate_device(inode->i_rdev, 1);
- dev = MINOR(inode->i_rdev);
+ dev = minor(inode->i_rdev);
mtdblk = mtdblks[dev];
down(&mtdblk->cache_sem);
@@ -412,26 +413,24 @@
struct request *req;
struct mtdblk_dev *mtdblk;
unsigned int res;
+ int err;
for (;;) {
INIT_REQUEST;
req = CURRENT;
- spin_unlock_irq(&QUEUE->queue_lock);
- mtdblk = mtdblks[MINOR(req->rq_dev)];
+ spin_unlock_irq(QUEUE->queue_lock);
+ mtdblk = mtdblks[minor(req->rq_dev)];
res = 0;
- if (MINOR(req->rq_dev) >= MAX_MTD_DEVICES)
+ if (minor(req->rq_dev) >= MAX_MTD_DEVICES)
panic(__FUNCTION__": minor out of bound");
if ((req->sector + req->current_nr_sectors) > (mtdblk->mtd->size >> 9))
goto end_req;
// Handle the request
- switch (req->cmd)
+ if (req->cmd == READ)
{
- int err;
-
- case READ:
down(&mtdblk->cache_sem);
err = do_cached_read (mtdblk, req->sector << 9,
req->current_nr_sectors << 9,
@@ -439,13 +438,10 @@
up(&mtdblk->cache_sem);
if (!err)
res = 1;
- break;
-
- case WRITE:
- // Read only device
- if ( !(mtdblk->mtd->flags & MTD_WRITEABLE) )
- break;
-
+ }
+ else if ( (mtdblk->mtd->flags & MTD_WRITEABLE) ) {
+ // Write request to writable device
+
// Do the write
down(&mtdblk->cache_sem);
err = do_cached_write (mtdblk, req->sector << 9,
@@ -454,11 +450,10 @@
up(&mtdblk->cache_sem);
if (!err)
res = 1;
- break;
}
end_req:
- spin_lock_irq(&QUEUE->queue_lock);
+ spin_lock_irq(QUEUE->queue_lock);
end_request(res);
}
}
@@ -490,16 +485,16 @@
while (!leaving) {
add_wait_queue(&thr_wq, &wait);
set_current_state(TASK_INTERRUPTIBLE);
- spin_lock_irq(&QUEUE->queue_lock);
+ spin_lock_irq(QUEUE->queue_lock);
if (QUEUE_EMPTY || QUEUE_PLUGGED) {
- spin_unlock_irq(&QUEUE->queue_lock);
+ spin_unlock_irq(QUEUE->queue_lock);
schedule();
remove_wait_queue(&thr_wq, &wait);
} else {
remove_wait_queue(&thr_wq, &wait);
set_current_state(TASK_RUNNING);
handle_mtdblock_request();
- spin_unlock_irq(&QUEUE->queue_lock);
+ spin_unlock_irq(QUEUE->queue_lock);
}
}
@@ -525,7 +520,7 @@
{
struct mtdblk_dev *mtdblk;
- mtdblk = mtdblks[MINOR(inode->i_rdev)];
+ mtdblk = mtdblks[minor(inode->i_rdev)];
#ifdef PARANOIA
if (!mtdblk)
@@ -636,7 +631,8 @@
blksize_size[MAJOR_NR] = mtd_blksizes;
blk_size[MAJOR_NR] = mtd_sizes;
- blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &mtdblock_request);
+ blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &mtdblock_request,
+ &mtdblock_queue_lock);
kernel_thread (mtdblock_thread, NULL, CLONE_FS|CLONE_FILES|CLONE_SIGHAND);
return 0;
}
--- linux-2.5.2-pre8/drivers/mtd/mtdblock_ro.c Thu Oct 25 13:58:35 2001
+++ linux/drivers/mtd/mtdblock_ro.c Sat Jan 5 02:27:14 2002
@@ -31,6 +31,7 @@
#else
#define RQFUNC_ARG request_queue_t *q
#endif
+static spinlock_t mtdblock_queue_lock = SPIN_LOCK_UNLOCKED;
#ifdef MTDBLOCK_DEBUG
static int debug = MTDBLOCK_DEBUG;
@@ -52,7 +53,7 @@
if (inode == 0)
return -EINVAL;
- dev = MINOR(inode->i_rdev);
+ dev = minor(inode->i_rdev);
mtd = get_mtd_device(NULL, dev);
if (!mtd)
@@ -81,7 +82,7 @@
invalidate_device(inode->i_rdev, 1);
- dev = MINOR(inode->i_rdev);
+ dev = minor(inode->i_rdev);
mtd = __get_mtd_device(NULL, dev);
if (!mtd) {
@@ -105,6 +106,7 @@
struct request *current_request;
unsigned int res = 0;
struct mtd_info *mtd;
+ size_t retlen;
while (1)
{
@@ -113,7 +115,7 @@
INIT_REQUEST;
current_request = CURRENT;
- if (MINOR(current_request->rq_dev) >= MAX_MTD_DEVICES)
+ if (minor(current_request->rq_dev) >= MAX_MTD_DEVICES)
{
printk("mtd: Unsupported device!\n");
end_request(0);
@@ -122,9 +124,10 @@
// Grab our MTD structure
- mtd = __get_mtd_device(NULL, MINOR(current_request->rq_dev));
+ mtd = __get_mtd_device(NULL, minor(current_request->rq_dev));
if (!mtd) {
- printk("MTD device %d doesn't appear to exist any more\n", CURRENT_DEV);
+ printk("MTD device %d:%d doesn't appear to exist any more\n",
+ major(CURRENT_DEV), minor(CURRENT_DEV));
end_request(0);
}
@@ -139,7 +142,7 @@
/* Remove the request we are handling from the request list so nobody messes
with it */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)) && LINUX_VERSION_CODE < KERNEL_VERSION(2,5,1)
/* Now drop the lock that the ll_rw_blk functions grabbed for us
and process the request. This is necessary due to the extreme time
we spend processing it. */
@@ -147,32 +150,19 @@
#endif
// Handle the request
- switch (current_request->cmd)
+ if (current_request->cmd == READ)
{
- size_t retlen;
-
- case READ:
if (MTD_READ(mtd,current_request->sector<<9,
current_request->nr_sectors << 9,
&retlen, current_request->buffer) == 0)
res = 1;
else
res = 0;
- break;
-
- case WRITE:
-
- /* printk("mtdblock_request WRITE sector=%d(%d)\n",current_request->sector,
- current_request->nr_sectors);
- */
-
- // Read only device
- if ((mtd->flags & MTD_CAP_RAM) == 0)
- {
+ } else if ((mtd->flags & MTD_CAP_RAM) == 0) {
+ // Write to read only device
res = 0;
- break;
- }
-
+ } else {
+ // Write to writable device
// Do the write
if (MTD_WRITE(mtd,current_request->sector<<9,
current_request->nr_sectors << 9,
@@ -180,16 +170,10 @@
res = 1;
else
res = 0;
- break;
-
- // Shouldn't happen
- default:
- printk("mtd: unknown request\n");
- break;
}
// Grab the lock and re-thread the item onto the linked list
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)) && LINUX_VERSION_CODE < KERNEL_VERSION(2,5,1)
spin_lock_irq(&io_request_lock);
#endif
end_request(res);
@@ -203,7 +187,7 @@
{
struct mtd_info *mtd;
- mtd = __get_mtd_device(NULL, MINOR(inode->i_rdev));
+ mtd = __get_mtd_device(NULL, minor(inode->i_rdev));
if (!mtd) return -EINVAL;
@@ -266,7 +250,8 @@
blksize_size[MAJOR_NR] = NULL;
blk_size[MAJOR_NR] = mtd_sizes;
- blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &mtdblock_request);
+ blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &mtdblock_request,
+ &mtdblock_queue_lock);
return 0;
}
--- linux-2.5.2-pre8/drivers/mtd/mtdchar.c Thu Oct 4 15:14:59 2001
+++ linux/drivers/mtd/mtdchar.c Sat Jan 5 02:27:14 2002
@@ -60,7 +60,7 @@
static int mtd_open(struct inode *inode, struct file *file)
{
- int minor = MINOR(inode->i_rdev);
+ int minor = minor(inode->i_rdev);
int devnum = minor >> 1;
struct mtd_info *mtd;
--- linux-2.5.2-pre8/drivers/mtd/nftlcore.c Fri Jan 4 19:40:37 2002
+++ linux/drivers/mtd/nftlcore.c Sat Jan 5 02:27:14 2002
@@ -55,6 +55,7 @@
static int nftl_sizes[256];
static int nftl_blocksizes[256];
+static spinlock_t nftl_queue_lock = SPIN_LOCK_UNLOCKED;
/* .. for the Linux partition table handling. */
struct hd_struct part_table[256];
@@ -156,7 +157,7 @@
#if LINUX_VERSION_CODE < 0x20328
resetup_one_dev(&nftl_gendisk, firstfree);
#else
- grok_partitions(MKDEV(MAJOR_NR,firstfree<<NFTL_PARTN_BITS),
+ grok_partitions(mk_kdev(MAJOR_NR,firstfree<<NFTL_PARTN_BITS),
nftl->nr_sects);
#endif
}
@@ -779,7 +780,7 @@
struct NFTLrecord *nftl;
int res;
- nftl = NFTLs[MINOR(inode->i_rdev) >> NFTL_PARTN_BITS];
+ nftl = NFTLs[minor(inode->i_rdev) >> NFTL_PARTN_BITS];
if (!nftl) return -EINVAL;
@@ -845,7 +846,7 @@
/* We can do this because the generic code knows not to
touch the request at the head of the queue */
- spin_unlock_irq(&QUEUE->queue_lock);
+ spin_unlock_irq(QUEUE->queue_lock);
DEBUG(MTD_DEBUG_LEVEL2, "NFTL_request\n");
DEBUG(MTD_DEBUG_LEVEL3,
@@ -853,7 +854,7 @@
(req->cmd == READ) ? "Read " : "Write",
req->sector, req->current_nr_sectors);
- dev = MINOR(req->rq_dev);
+ dev = minor(req->rq_dev);
block = req->sector;
nsect = req->current_nr_sectors;
buffer = req->buffer;
@@ -875,7 +876,7 @@
if (block + nsect > part_table[dev].nr_sects) {
/* access past the end of device */
printk("nftl%c%d: bad access: block = %d, count = %d\n",
- (MINOR(req->rq_dev)>>6)+'a', dev & 0xf, block, nsect);
+ (minor(req->rq_dev)>>6)+'a', dev & 0xf, block, nsect);
up(&nftl->mutex);
res = 0; /* fail */
goto repeat;
@@ -898,7 +899,7 @@
DEBUG(MTD_DEBUG_LEVEL2,"NFTL read request completed OK\n");
up(&nftl->mutex);
goto repeat;
- } else if (req->cmd == WRITE) {
+ } else {
DEBUG(MTD_DEBUG_LEVEL2, "NFTL write request of 0x%x sectors @ %x "
"(req->nr_sectors == %lx)\n", nsect, block,
req->nr_sectors);
@@ -918,22 +919,17 @@
#endif /* CONFIG_NFTL_RW */
up(&nftl->mutex);
goto repeat;
- } else {
- DEBUG(MTD_DEBUG_LEVEL0, "NFTL unknown request\n");
- up(&nftl->mutex);
- res = 0;
- goto repeat;
}
repeat:
DEBUG(MTD_DEBUG_LEVEL3, "end_request(%d)\n", res);
- spin_lock_irq(&QUEUE->queue_lock);
+ spin_lock_irq(QUEUE->queue_lock);
end_request(res);
}
}
static int nftl_open(struct inode *ip, struct file *fp)
{
- int nftlnum = MINOR(ip->i_rdev) >> NFTL_PARTN_BITS;
+ int nftlnum = minor(ip->i_rdev) >> NFTL_PARTN_BITS;
struct NFTLrecord *thisNFTL;
thisNFTL = NFTLs[nftlnum];
@@ -947,7 +943,7 @@
#endif
if (!thisNFTL) {
DEBUG(MTD_DEBUG_LEVEL2,"ENODEV: thisNFTL = %d, minor = %d, ip = %p, fp = %p\n",
- nftlnum, ip->i_rdev, ip, fp);
+ nftlnum, minor(ip->i_rdev), ip, fp);
return -ENODEV;
}
@@ -967,7 +963,7 @@
{
struct NFTLrecord *thisNFTL;
- thisNFTL = NFTLs[MINOR(inode->i_rdev) / 16];
+ thisNFTL = NFTLs[minor(inode->i_rdev) / 16];
DEBUG(MTD_DEBUG_LEVEL2, "NFTL_release\n");
@@ -1027,7 +1023,8 @@
printk("unable to register NFTL block device on major %d\n", MAJOR_NR);
return -EBUSY;
} else {
- blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &nftl_request);
+ blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &nftl_request,
+ &nftl_queue_lock);
/* set block size to 1kB each */
for (i = 0; i < 256; i++) {
--- linux-2.5.2-pre8/drivers/mtd/chips/amd_flash.c Thu Oct 4 15:14:59 2001
+++ linux/drivers/mtd/chips/amd_flash.c Sat Jan 5 02:27:14 2002
@@ -22,6 +22,7 @@
#include <linux/mtd/map.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/flashchip.h>
+#include <linux/interrupt.h>
/* There's no limit. It exists only to avoid realloc. */
#define MAX_AMD_CHIPS 8
--- linux-2.5.2-pre8/drivers/mtd/devices/blkmtd.c Fri Jan 4 19:40:37 2002
+++ linux/drivers/mtd/devices/blkmtd.c Sat Jan 5 02:27:14 2002
@@ -55,7 +55,7 @@
#include <linux/pagemap.h>
#include <linux/iobuf.h>
#include <linux/slab.h>
-#include <linux/pagemap.h>
+#include <linux/blkdev.h>
#include <linux/mtd/compatmac.h>
#include <linux/mtd/mtd.h>
@@ -463,7 +463,7 @@
/* check page alignment of start and length */
DEBUG(2, "blkmtd: erase: dev = `%s' from = %d len = %ld\n",
- bdevname(rawdevice->binding->bd_dev), from, len);
+ bdevname(to_kdev_t(rawdevice->binding->bd_dev)), from, len);
if(from % PAGE_SIZE) {
printk("blkmtd: erase: addr not page aligned (addr = %d)\n", from);
instr->state = MTD_ERASE_FAILED;
@@ -553,7 +553,8 @@
*retlen = 0;
DEBUG(2, "blkmtd: read: dev = `%s' from = %ld len = %d buf = %p\n",
- bdevname(rawdevice->binding->bd_dev), (long int)from, len, buf);
+ bdevname(to_kdev_t(rawdevice->binding->bd_dev)),
+ (long int)from, len, buf);
pagenr = from >> PAGE_SHIFT;
offset = from - (pagenr << PAGE_SHIFT);
@@ -623,7 +624,8 @@
*retlen = 0;
DEBUG(2, "blkmtd: write: dev = `%s' to = %ld len = %d buf = %p\n",
- bdevname(rawdevice->binding->bd_dev), (long int)to, len, buf);
+ bdevname(to_kdev_t(rawdevice->binding->bd_dev)),
+ (long int)to, len, buf);
/* handle readonly and out of range numbers */
@@ -891,10 +893,10 @@
}
rdev = inode->i_rdev;
//filp_close(file, NULL);
+ maj = major(rdev);
+ min = minor(rdev);
DEBUG(1, "blkmtd: found a block device major = %d, minor = %d\n",
- MAJOR(rdev), MINOR(rdev));
- maj = MAJOR(rdev);
- min = MINOR(rdev);
+ maj, min);
if(maj == MTD_BLOCK_MAJOR) {
printk("blkmtd: attempting to use an MTD device as a block device\n");
@@ -935,7 +937,7 @@
}
memset(rawdevice, 0, sizeof(mtd_raw_dev_data_t));
// get the block device
- rawdevice->binding = bdget(kdev_t_to_nr(MKDEV(maj, min)));
+ rawdevice->binding = bdget(MKDEV(maj, min));
err = blkdev_get(rawdevice->binding, mode, 0, BDEV_RAW);
if (err) {
goto init_err;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Patch: linux-2.5.2-pre8/drivers/mtd compilation fixes
2002-01-05 10:50 Patch: linux-2.5.2-pre8/drivers/mtd compilation fixes Adam J. Richter
@ 2002-01-05 11:24 ` David Woodhouse
2002-01-05 12:42 ` Russell King
0 siblings, 1 reply; 3+ messages in thread
From: David Woodhouse @ 2002-01-05 11:24 UTC (permalink / raw)
To: Adam J. Richter; +Cc: linux-mtd, linux-kernel
adam@yggdrasil.com said:
> The following patch updates linux-2.5.2-pre8/drivers/mtd to compile.
> This entails some kdev_t fixes and other updates for changes to the
> block device driver interface.
Looks sane - thanks. I see no harm in sending it to Linus. Could you run
the blkmtd.c changes past spse@secret.org.uk first, though?
> In the case of one routine (ftl_reread_partitions), there was a goto
> to a nonexistant label (goto leave), so I think there may have been an
> incomplete patch applied to this subdirectory to begin with
Not in my tree - strange. Oh well, I'll deal with it when 2.5 stabilises
and I stop ignoring it.
> (also, drivers/mtd/bootldr.c refers to a nonexistant "struct tag", but that
> file is apparently not currently compiled anyhow).
Currently, it's only compiled in the iPAQ kernel tree, where it works - I'm
waiting for the iPAQ people and Russell to stop arguing about how it should
be done, so the result will work in the proper ARM tree (and hence Linus'
tree) too.
Btw, where did you get the address 'mtd@infradead.org' from? The list moved
a while ago, and I was going to remove the forwarding some time soon.
--
dwmw2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Patch: linux-2.5.2-pre8/drivers/mtd compilation fixes
2002-01-05 11:24 ` David Woodhouse
@ 2002-01-05 12:42 ` Russell King
0 siblings, 0 replies; 3+ messages in thread
From: Russell King @ 2002-01-05 12:42 UTC (permalink / raw)
To: David Woodhouse; +Cc: Adam J. Richter, linux-mtd, linux-kernel
On Sat, Jan 05, 2002 at 11:24:23AM +0000, David Woodhouse wrote:
> Currently, it's only compiled in the iPAQ kernel tree, where it works - I'm
> waiting for the iPAQ people and Russell to stop arguing about how it should
> be done, so the result will work in the proper ARM tree (and hence Linus'
> tree) too.
I don't see this ever being solved.
Basically, the iPAQ people are quite happy to ignore concerns of the
non-iPAQ community to the point of ignoring any and all discussion
about it for months on end, so I'm happy to not merge the stuff until
they've addressed our concerns.
--
Russell King (rmk@arm.linux.org.uk) The developer of ARM Linux
http://www.arm.linux.org.uk/personal/aboutme.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-01-05 12:42 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-01-05 10:50 Patch: linux-2.5.2-pre8/drivers/mtd compilation fixes Adam J. Richter
2002-01-05 11:24 ` David Woodhouse
2002-01-05 12:42 ` Russell King
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox