You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'master' into for-2.6.35
Conflicts: fs/ext3/fsync.c Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
+21
-26
@@ -66,6 +66,7 @@
|
||||
#include <linux/blkdev.h>
|
||||
#include <linux/elevator.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/platform_device.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -1696,34 +1697,18 @@ static struct kobject *floppy_find(dev_t dev, int *part, void *data)
|
||||
return get_disk(unit[drive].gendisk);
|
||||
}
|
||||
|
||||
static int __init amiga_floppy_init(void)
|
||||
static int __init amiga_floppy_probe(struct platform_device *pdev)
|
||||
{
|
||||
int i, ret;
|
||||
|
||||
if (!MACH_IS_AMIGA)
|
||||
return -ENODEV;
|
||||
|
||||
if (!AMIGAHW_PRESENT(AMI_FLOPPY))
|
||||
return -ENODEV;
|
||||
|
||||
if (register_blkdev(FLOPPY_MAJOR,"fd"))
|
||||
return -EBUSY;
|
||||
|
||||
/*
|
||||
* We request DSKPTR, DSKLEN and DSKDATA only, because the other
|
||||
* floppy registers are too spreaded over the custom register space
|
||||
*/
|
||||
ret = -EBUSY;
|
||||
if (!request_mem_region(CUSTOM_PHYSADDR+0x20, 8, "amiflop [Paula]")) {
|
||||
printk("fd: cannot get floppy registers\n");
|
||||
goto out_blkdev;
|
||||
}
|
||||
|
||||
ret = -ENOMEM;
|
||||
if ((raw_buf = (char *)amiga_chip_alloc (RAW_BUF_SIZE, "Floppy")) ==
|
||||
NULL) {
|
||||
printk("fd: cannot get chip mem buffer\n");
|
||||
goto out_memregion;
|
||||
goto out_blkdev;
|
||||
}
|
||||
|
||||
ret = -EBUSY;
|
||||
@@ -1792,18 +1777,13 @@ out_irq2:
|
||||
free_irq(IRQ_AMIGA_DSKBLK, NULL);
|
||||
out_irq:
|
||||
amiga_chip_free(raw_buf);
|
||||
out_memregion:
|
||||
release_mem_region(CUSTOM_PHYSADDR+0x20, 8);
|
||||
out_blkdev:
|
||||
unregister_blkdev(FLOPPY_MAJOR,"fd");
|
||||
return ret;
|
||||
}
|
||||
|
||||
module_init(amiga_floppy_init);
|
||||
#ifdef MODULE
|
||||
|
||||
#if 0 /* not safe to unload */
|
||||
void cleanup_module(void)
|
||||
static int __exit amiga_floppy_remove(struct platform_device *pdev)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -1820,12 +1800,25 @@ void cleanup_module(void)
|
||||
custom.dmacon = DMAF_DISK; /* disable DMA */
|
||||
amiga_chip_free(raw_buf);
|
||||
blk_cleanup_queue(floppy_queue);
|
||||
release_mem_region(CUSTOM_PHYSADDR+0x20, 8);
|
||||
unregister_blkdev(FLOPPY_MAJOR, "fd");
|
||||
}
|
||||
#endif
|
||||
|
||||
#else
|
||||
static struct platform_driver amiga_floppy_driver = {
|
||||
.driver = {
|
||||
.name = "amiga-floppy",
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
};
|
||||
|
||||
static int __init amiga_floppy_init(void)
|
||||
{
|
||||
return platform_driver_probe(&amiga_floppy_driver, amiga_floppy_probe);
|
||||
}
|
||||
|
||||
module_init(amiga_floppy_init);
|
||||
|
||||
#ifndef MODULE
|
||||
static int __init amiga_floppy_setup (char *str)
|
||||
{
|
||||
int n;
|
||||
@@ -1840,3 +1833,5 @@ static int __init amiga_floppy_setup (char *str)
|
||||
|
||||
__setup("floppy=", amiga_floppy_setup);
|
||||
#endif
|
||||
|
||||
MODULE_ALIAS("platform:amiga-floppy");
|
||||
|
||||
@@ -1588,7 +1588,6 @@ static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
|
||||
c->Request = ioc->Request;
|
||||
if (ioc->buf_size > 0) {
|
||||
int i;
|
||||
for (i = 0; i < sg_used; i++) {
|
||||
temp64.val =
|
||||
pci_map_single(host->pdev, buff[i],
|
||||
@@ -2434,7 +2433,7 @@ static int deregister_disk(ctlr_info_t *h, int drv_index,
|
||||
|
||||
/* if it was the last disk, find the new hightest lun */
|
||||
if (clear_all && recalculate_highest_lun) {
|
||||
int i, newhighest = -1;
|
||||
int newhighest = -1;
|
||||
for (i = 0; i <= h->highest_lun; i++) {
|
||||
/* if the disk has size > 0, it is available */
|
||||
if (h->drv[i] && h->drv[i]->heads)
|
||||
|
||||
@@ -240,7 +240,7 @@ void drbd_endio_pri(struct bio *bio, int error)
|
||||
if (unlikely(error)) {
|
||||
what = (bio_data_dir(bio) == WRITE)
|
||||
? write_completed_with_error
|
||||
: (bio_rw(bio) == READA)
|
||||
: (bio_rw(bio) == READ)
|
||||
? read_completed_with_error
|
||||
: read_ahead_completed_with_error;
|
||||
} else
|
||||
|
||||
+2
-2
@@ -164,12 +164,12 @@ unsigned long read_timer(void)
|
||||
unsigned long t, flags;
|
||||
int i;
|
||||
|
||||
spin_lock_irqsave(&i8253_lock, flags);
|
||||
raw_spin_lock_irqsave(&i8253_lock, flags);
|
||||
t = jiffies * 11932;
|
||||
outb_p(0, 0x43);
|
||||
i = inb_p(0x40);
|
||||
i |= inb(0x40) << 8;
|
||||
spin_unlock_irqrestore(&i8253_lock, flags);
|
||||
raw_spin_unlock_irqrestore(&i8253_lock, flags);
|
||||
return(t - i);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -835,6 +835,8 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode,
|
||||
|
||||
set_capacity(lo->lo_disk, size);
|
||||
bd_set_size(bdev, size << 9);
|
||||
/* let user-space know about the new size */
|
||||
kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
|
||||
|
||||
set_blocksize(bdev, lo_blocksize);
|
||||
|
||||
@@ -858,6 +860,7 @@ out_clr:
|
||||
set_capacity(lo->lo_disk, 0);
|
||||
invalidate_bdev(bdev);
|
||||
bd_set_size(bdev, 0);
|
||||
kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
|
||||
mapping_set_gfp_mask(mapping, lo->old_gfp_mask);
|
||||
lo->lo_state = Lo_unbound;
|
||||
out_putf:
|
||||
@@ -944,8 +947,11 @@ static int loop_clr_fd(struct loop_device *lo, struct block_device *bdev)
|
||||
if (bdev)
|
||||
invalidate_bdev(bdev);
|
||||
set_capacity(lo->lo_disk, 0);
|
||||
if (bdev)
|
||||
if (bdev) {
|
||||
bd_set_size(bdev, 0);
|
||||
/* let user-space know about this change */
|
||||
kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
|
||||
}
|
||||
mapping_set_gfp_mask(filp->f_mapping, gfp);
|
||||
lo->lo_state = Lo_unbound;
|
||||
/* This is safe: open() is still holding a reference. */
|
||||
@@ -1189,6 +1195,8 @@ static int loop_set_capacity(struct loop_device *lo, struct block_device *bdev)
|
||||
sz <<= 9;
|
||||
mutex_lock(&bdev->bd_mutex);
|
||||
bd_set_size(bdev, sz);
|
||||
/* let user-space know about the new size */
|
||||
kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
|
||||
mutex_unlock(&bdev->bd_mutex);
|
||||
|
||||
out:
|
||||
|
||||
+14
-3
@@ -48,6 +48,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/compat.h>
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/spinlock.h>
|
||||
@@ -2984,7 +2985,7 @@ static void pkt_get_status(struct pkt_ctrl_command *ctrl_cmd)
|
||||
mutex_unlock(&ctl_mutex);
|
||||
}
|
||||
|
||||
static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
|
||||
static long pkt_ctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
void __user *argp = (void __user *)arg;
|
||||
struct pkt_ctrl_command ctrl_cmd;
|
||||
@@ -3021,10 +3022,20 @@ static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cm
|
||||
return ret;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_COMPAT
|
||||
static long pkt_ctl_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
return pkt_ctl_ioctl(file, cmd, (unsigned long)compat_ptr(arg));
|
||||
}
|
||||
#endif
|
||||
|
||||
static const struct file_operations pkt_ctl_fops = {
|
||||
.ioctl = pkt_ctl_ioctl,
|
||||
.owner = THIS_MODULE,
|
||||
.open = nonseekable_open,
|
||||
.unlocked_ioctl = pkt_ctl_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_ioctl = pkt_ctl_compat_ioctl,
|
||||
#endif
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static struct miscdevice pkt_misc = {
|
||||
|
||||
Reference in New Issue
Block a user