diff options
| author | Linus Torvalds <torvalds@home.osdl.org> | 2003-08-30 23:45:59 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-08-30 23:45:59 -0700 |
| commit | c334ec3406bd4e366a4138570332d4e19fa70128 (patch) | |
| tree | d465dd090c583e8646a98bf570a287c643ba66cb /drivers/char | |
| parent | ed8dff304648833f2acf9b3189a1e611355111b0 (diff) | |
| parent | 9b9f98eec3f1f66d0186f7c95e3d724cf3b6765b (diff) | |
Merge http://lia64.bkbits.net/to-linus-2.5
into home.osdl.org:/home/torvalds/v2.5/linux
Diffstat (limited to 'drivers/char')
32 files changed, 122 insertions, 121 deletions
diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c index 803513180b6a..6ff8d157fc6d 100644 --- a/drivers/char/agp/frontend.c +++ b/drivers/char/agp/frontend.c @@ -698,7 +698,7 @@ static int agp_release(struct inode *inode, struct file *file) static int agp_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct agp_file_private *priv; struct agp_client *client; int rc = -ENXIO; diff --git a/drivers/char/busmouse.c b/drivers/char/busmouse.c index ad6163f8d9ef..126d77f8a215 100644 --- a/drivers/char/busmouse.c +++ b/drivers/char/busmouse.c @@ -51,7 +51,7 @@ struct busmouse_data { #define NR_MICE 15 #define FIRST_MOUSE 0 -#define DEV_TO_MOUSE(dev) MINOR_TO_MOUSE(minor(dev)) +#define DEV_TO_MOUSE(inode) MINOR_TO_MOUSE(iminor(inode)) #define MINOR_TO_MOUSE(minor) ((minor) - FIRST_MOUSE) /* @@ -190,7 +190,7 @@ static int busmouse_open(struct inode *inode, struct file *file) unsigned int mousedev; int ret; - mousedev = DEV_TO_MOUSE(inode->i_rdev); + mousedev = DEV_TO_MOUSE(inode); if (mousedev >= NR_MICE) return -EINVAL; diff --git a/drivers/char/drm/drm_drv.h b/drivers/char/drm/drm_drv.h index d62156b35fcf..62c0cad7fe9b 100644 --- a/drivers/char/drm/drm_drv.h +++ b/drivers/char/drm/drm_drv.h @@ -795,7 +795,7 @@ int DRM(open)( struct inode *inode, struct file *filp ) int i; for (i = 0; i < DRM(numdevs); i++) { - if (minor(inode->i_rdev) == DRM(minor)[i]) { + if (iminor(inode) == DRM(minor)[i]) { dev = &(DRM(device)[i]); break; } diff --git a/drivers/char/drm/drm_fops.h b/drivers/char/drm/drm_fops.h index 1039df122317..a925c669b845 100644 --- a/drivers/char/drm/drm_fops.h +++ b/drivers/char/drm/drm_fops.h @@ -51,7 +51,7 @@ */ int DRM(open_helper)(struct inode *inode, struct file *filp, drm_device_t *dev) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); drm_file_t *priv; if (filp->f_flags & O_EXCL) return -EBUSY; /* No exclusive opens */ diff --git a/drivers/char/drm/drm_stub.h b/drivers/char/drm/drm_stub.h index 706615eb7237..63033c13b197 100644 --- a/drivers/char/drm/drm_stub.h +++ b/drivers/char/drm/drm_stub.h @@ -62,7 +62,7 @@ static struct drm_stub_info { */ static int DRM(stub_open)(struct inode *inode, struct file *filp) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int err = -ENODEV; struct file_operations *old_fops; diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c index d9cf9097afeb..cfd6527bc514 100644 --- a/drivers/char/dsp56k.c +++ b/drivers/char/dsp56k.c @@ -207,7 +207,7 @@ static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -270,7 +270,7 @@ static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -331,7 +331,7 @@ static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, static int dsp56k_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -424,7 +424,7 @@ static int dsp56k_ioctl(struct inode *inode, struct file *file, #if 0 static unsigned int dsp56k_poll(struct file *file, poll_table *wait) { - int dev = minor(file->f_dentry->d_inode->i_rdev) & 0x0f; + int dev = iminor(file->f_dentry->d_inode) & 0x0f; switch(dev) { @@ -441,7 +441,7 @@ static unsigned int dsp56k_poll(struct file *file, poll_table *wait) static int dsp56k_open(struct inode *inode, struct file *file) { - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -472,7 +472,7 @@ static int dsp56k_open(struct inode *inode, struct file *file) static int dsp56k_release(struct inode *inode, struct file *file) { - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { diff --git a/drivers/char/dtlk.c b/drivers/char/dtlk.c index 6bf29e34c692..748c8a17295a 100644 --- a/drivers/char/dtlk.c +++ b/drivers/char/dtlk.c @@ -125,7 +125,7 @@ static void dtlk_timer_tick(unsigned long data); static ssize_t dtlk_read(struct file *file, char *buf, size_t count, loff_t * ppos) { - unsigned int minor = minor(file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); char ch; int i = 0, retries; @@ -185,7 +185,7 @@ static ssize_t dtlk_write(struct file *file, const char *buf, if (ppos != &file->f_pos) return -ESPIPE; - if (minor(file->f_dentry->d_inode->i_rdev) != DTLK_MINOR) + if (iminor(file->f_dentry->d_inode) != DTLK_MINOR) return -EINVAL; while (1) { @@ -304,7 +304,7 @@ static int dtlk_open(struct inode *inode, struct file *file) { TRACE_TEXT("(dtlk_open"); - switch (minor(inode->i_rdev)) { + switch (iminor(inode)) { case DTLK_MINOR: if (dtlk_busy) return -EBUSY; @@ -319,7 +319,7 @@ static int dtlk_release(struct inode *inode, struct file *file) { TRACE_TEXT("(dtlk_release"); - switch (minor(inode->i_rdev)) { + switch (iminor(inode)) { case DTLK_MINOR: break; diff --git a/drivers/char/ftape/zftape/zftape-init.c b/drivers/char/ftape/zftape/zftape-init.c index 788e032f379d..80f4f09c4194 100644 --- a/drivers/char/ftape/zftape/zftape-init.c +++ b/drivers/char/ftape/zftape/zftape-init.c @@ -110,11 +110,11 @@ static int zft_open(struct inode *ino, struct file *filep) int result; TRACE_FUN(ft_t_flow); - TRACE(ft_t_flow, "called for minor %d", minor(ino->i_rdev)); + TRACE(ft_t_flow, "called for minor %d", iminor(ino)); if ( test_and_set_bit(0,&busy_flag) ) { TRACE_ABORT(-EBUSY, ft_t_warn, "failed: already busy"); } - if ((minor(ino->i_rdev) & ~(ZFT_MINOR_OP_MASK | FTAPE_NO_REWIND)) + if ((iminor(ino) & ~(ZFT_MINOR_OP_MASK | FTAPE_NO_REWIND)) > FTAPE_SEL_D) { clear_bit(0,&busy_flag); @@ -122,7 +122,7 @@ static int zft_open(struct inode *ino, struct file *filep) } orig_sigmask = current->blocked; sigfillset(¤t->blocked); - result = _zft_open(minor(ino->i_rdev), filep->f_flags & O_ACCMODE); + result = _zft_open(iminor(ino), filep->f_flags & O_ACCMODE); if (result < 0) { current->blocked = orig_sigmask; /* restore mask */ clear_bit(0,&busy_flag); @@ -144,7 +144,7 @@ static int zft_close(struct inode *ino, struct file *filep) int result; TRACE_FUN(ft_t_flow); - if ( !test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit) { + if ( !test_bit(0,&busy_flag) || iminor(ino) != zft_unit) { TRACE(ft_t_err, "failed: not busy or wrong unit"); TRACE_EXIT 0; } @@ -167,7 +167,7 @@ static int zft_ioctl(struct inode *ino, struct file *filep, sigset_t old_sigmask; TRACE_FUN(ft_t_flow); - if ( !test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit || ft_failure) { + if ( !test_bit(0,&busy_flag) || iminor(ino) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, "failed: not busy, failure or wrong unit"); } @@ -188,7 +188,7 @@ static int zft_mmap(struct file *filep, struct vm_area_struct *vma) TRACE_FUN(ft_t_flow); if ( !test_bit(0,&busy_flag) || - minor(filep->f_dentry->d_inode->i_rdev) != zft_unit || + iminor(filep->f_dentry->d_inode) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, @@ -217,7 +217,7 @@ static ssize_t zft_read(struct file *fp, char *buff, TRACE_FUN(ft_t_flow); TRACE(ft_t_data_flow, "called with count: %ld", (unsigned long)req_len); - if (!test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit || ft_failure) { + if (!test_bit(0,&busy_flag) || iminor(ino) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, "failed: not busy, failure or wrong unit"); } @@ -240,7 +240,7 @@ static ssize_t zft_write(struct file *fp, const char *buff, TRACE_FUN(ft_t_flow); TRACE(ft_t_flow, "called with count: %ld", (unsigned long)req_len); - if (!test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit || ft_failure) { + if (!test_bit(0,&busy_flag) || iminor(ino) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, "failed: not busy, failure or wrong unit"); } diff --git a/drivers/char/ip2main.c b/drivers/char/ip2main.c index 0dd339726bb7..eef32735a70d 100644 --- a/drivers/char/ip2main.c +++ b/drivers/char/ip2main.c @@ -2733,7 +2733,7 @@ static ssize_t ip2_ipl_read(struct file *pFile, char *pData, size_t count, loff_t *off ) { - unsigned int minor = minor( pFile->f_dentry->d_inode->i_rdev ); + unsigned int minor = iminor(pFile->f_dentry->d_inode); int rc = 0; #ifdef IP2DEBUG_IPL @@ -2863,7 +2863,7 @@ ip2_ipl_write(struct file *pFile, const char *pData, size_t count, loff_t *off) static int ip2_ipl_ioctl ( struct inode *pInode, struct file *pFile, UINT cmd, ULONG arg ) { - unsigned int iplminor = minor(pInode->i_rdev); + unsigned int iplminor = iminor(pInode); int rc = 0; ULONG *pIndex = (ULONG*)arg; i2eBordStrPtr pB = i2BoardPtrTable[iplminor / 4]; @@ -2998,7 +2998,7 @@ ip2_ipl_ioctl ( struct inode *pInode, struct file *pFile, UINT cmd, ULONG arg ) static int ip2_ipl_open( struct inode *pInode, struct file *pFile ) { - unsigned int iplminor = minor(pInode->i_rdev); + unsigned int iplminor = iminor(pInode); i2eBordStrPtr pB; i2ChanStrPtr pCh; diff --git a/drivers/char/ipmi/ipmi_devintf.c b/drivers/char/ipmi/ipmi_devintf.c index 0457f37d0a08..b69ff3d19284 100644 --- a/drivers/char/ipmi/ipmi_devintf.c +++ b/drivers/char/ipmi/ipmi_devintf.c @@ -110,7 +110,7 @@ static struct ipmi_user_hndl ipmi_hndlrs = static int ipmi_open(struct inode *inode, struct file *file) { - int if_num = minor(inode->i_rdev); + int if_num = iminor(inode); int rv; struct ipmi_file_private *priv; diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c index 185ed6ade2a2..eb213e416d23 100644 --- a/drivers/char/ipmi/ipmi_watchdog.c +++ b/drivers/char/ipmi/ipmi_watchdog.c @@ -645,7 +645,7 @@ static ssize_t ipmi_read(struct file *file, static int ipmi_open(struct inode *ino, struct file *filep) { - switch (minor(ino->i_rdev)) + switch (iminor(ino)) { case WATCHDOG_MINOR: if (ipmi_wdog_open) @@ -688,7 +688,7 @@ static int ipmi_fasync(int fd, struct file *file, int on) static int ipmi_close(struct inode *ino, struct file *filep) { - if (minor(ino->i_rdev)==WATCHDOG_MINOR) + if (iminor(ino)==WATCHDOG_MINOR) { #ifndef CONFIG_WATCHDOG_NOWAYOUT ipmi_watchdog_state = WDOG_TIMEOUT_NONE; diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 429fb2955573..ff543516731d 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c @@ -4805,7 +4805,7 @@ static ssize_t stli_memread(struct file *fp, char *buf, size_t count, loff_t *of (int) fp, (int) buf, count, (int) offp); #endif - brdnr = minor(fp->f_dentry->d_inode->i_rdev); + brdnr = iminor(fp->f_dentry->d_inode); if (brdnr >= stli_nrbrds) return(-ENODEV); brdp = stli_brds[brdnr]; @@ -4860,7 +4860,7 @@ static ssize_t stli_memwrite(struct file *fp, const char *buf, size_t count, lof (int) fp, (int) buf, count, (int) offp); #endif - brdnr = minor(fp->f_dentry->d_inode->i_rdev); + brdnr = iminor(fp->f_dentry->d_inode); if (brdnr >= stli_nrbrds) return(-ENODEV); brdp = stli_brds[brdnr]; @@ -5201,7 +5201,7 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un * Now handle the board specific ioctls. These all depend on the * minor number of the device they were called from. */ - brdnr = minor(ip->i_rdev); + brdnr = iminor(ip); if (brdnr >= STL_MAXBRDS) return(-ENODEV); brdp = stli_brds[brdnr]; diff --git a/drivers/char/ite_gpio.c b/drivers/char/ite_gpio.c index 1d76b81180d5..f3a6c78bd322 100644 --- a/drivers/char/ite_gpio.c +++ b/drivers/char/ite_gpio.c @@ -238,7 +238,7 @@ EXPORT_SYMBOL(ite_gpio_int_wait); static int ite_gpio_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); if (minor != GPIO_MINOR) return -ENODEV; diff --git a/drivers/char/lp.c b/drivers/char/lp.c index 6f3ba6d76be7..46be7a8ac3d3 100644 --- a/drivers/char/lp.c +++ b/drivers/char/lp.c @@ -292,7 +292,7 @@ static int lp_wait_ready(int minor, int nonblock) static ssize_t lp_write(struct file * file, const char * buf, size_t count, loff_t *ppos) { - unsigned int minor = minor(file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); struct parport *port = lp_table[minor].dev->port; char *kbuf = lp_table[minor].lp_buffer; ssize_t retv = 0; @@ -408,7 +408,7 @@ static ssize_t lp_write(struct file * file, const char * buf, static ssize_t lp_read(struct file * file, char * buf, size_t count, loff_t *ppos) { - unsigned int minor=minor(file->f_dentry->d_inode->i_rdev); + unsigned int minor=iminor(file->f_dentry->d_inode); struct parport *port = lp_table[minor].dev->port; ssize_t retval = 0; char *kbuf = lp_table[minor].lp_buffer; @@ -483,7 +483,7 @@ static ssize_t lp_read(struct file * file, char * buf, static int lp_open(struct inode * inode, struct file * file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); if (minor >= LP_NO) return -ENXIO; @@ -540,7 +540,7 @@ static int lp_open(struct inode * inode, struct file * file) static int lp_release(struct inode * inode, struct file * file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); lp_claim_parport_or_block (&lp_table[minor]); parport_negotiate (lp_table[minor].dev->port, IEEE1284_MODE_COMPAT); @@ -555,7 +555,7 @@ static int lp_release(struct inode * inode, struct file * file) static int lp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int status; int retval = 0; diff --git a/drivers/char/lp_old98.c b/drivers/char/lp_old98.c index fe5d3de82e0a..87695ee2ec07 100644 --- a/drivers/char/lp_old98.c +++ b/drivers/char/lp_old98.c @@ -219,7 +219,7 @@ static ssize_t lp_old98_write(struct file * file, static int lp_old98_open(struct inode * inode, struct file * file) { - if (minor(inode->i_rdev) != 0) + if (iminor(inode) != 0) return -ENXIO; if (lp.flags & LP_BUSY) diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 7f1464f3e6b8..82b44f1c1a13 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -607,7 +607,7 @@ static struct file_operations kmsg_fops = { static int memory_open(struct inode * inode, struct file * filp) { - switch (minor(inode->i_rdev)) { + switch (iminor(inode)) { case 1: filp->f_op = &mem_fops; break; diff --git a/drivers/char/misc.c b/drivers/char/misc.c index b1c42c73b763..8cc75c28a105 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c @@ -100,7 +100,7 @@ static int misc_read_proc(char *buf, char **start, off_t offset, static int misc_open(struct inode * inode, struct file * file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct miscdevice *c; int err = -ENODEV; struct file_operations *old_fops, *new_fops = NULL; diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index b1e6721199e9..7428e4d3ce99 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c @@ -104,7 +104,7 @@ static inline void pp_enable_irq (struct pp_struct *pp) static ssize_t pp_read (struct file * file, char * buf, size_t count, loff_t * ppos) { - unsigned int minor = minor (file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); struct pp_struct *pp = file->private_data; char * kbuffer; ssize_t bytes_read = 0; @@ -187,7 +187,7 @@ static ssize_t pp_read (struct file * file, char * buf, size_t count, static ssize_t pp_write (struct file * file, const char * buf, size_t count, loff_t * ppos) { - unsigned int minor = minor (file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); struct pp_struct *pp = file->private_data; char * kbuffer; ssize_t bytes_written = 0; @@ -330,7 +330,7 @@ static enum ieee1284_phase init_phase (int mode) static int pp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct pp_struct *pp = file->private_data; struct parport * port; @@ -638,7 +638,7 @@ static int pp_ioctl(struct inode *inode, struct file *file, static int pp_open (struct inode * inode, struct file * file) { - unsigned int minor = minor (inode->i_rdev); + unsigned int minor = iminor(inode); struct pp_struct *pp; if (minor >= PARPORT_MAX) @@ -667,7 +667,7 @@ static int pp_open (struct inode * inode, struct file * file) static int pp_release (struct inode * inode, struct file * file) { - unsigned int minor = minor (inode->i_rdev); + unsigned int minor = iminor(inode); struct pp_struct *pp = file->private_data; int compat_negot; diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 8aeb7cbbe9b8..a7a1a31db6e2 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -43,7 +43,7 @@ static struct file_operations raw_ctl_fops; /* forward declaration */ */ static int raw_open(struct inode *inode, struct file *filp) { - const int minor = minor(inode->i_rdev); + const int minor = iminor(inode); struct block_device *bdev; int err; @@ -63,7 +63,9 @@ static int raw_open(struct inode *inode, struct file *filp) err = bd_claim(bdev, raw_open); if (err) goto out; - atomic_inc(&bdev->bd_count); + err = -ENODEV; + if (!igrab(bdev->bd_inode)) + goto out; err = blkdev_get(bdev, filp->f_mode, 0, BDEV_RAW); if (err) { bd_release(bdev); @@ -90,7 +92,7 @@ out: */ static int raw_release(struct inode *inode, struct file *filp) { - const int minor= minor(inode->i_rdev); + const int minor= iminor(inode); struct block_device *bdev; down(&raw_mutex); diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c index e366643396df..3758fb1b1171 100644 --- a/drivers/char/scx200_gpio.c +++ b/drivers/char/scx200_gpio.c @@ -29,7 +29,7 @@ MODULE_PARM_DESC(major, "Major device number"); static ssize_t scx200_gpio_write(struct file *file, const char *data, size_t len, loff_t *ppos) { - unsigned m = minor(file->f_dentry->d_inode->i_rdev); + unsigned m = iminor(file->f_dentry->d_inode); size_t i; if (ppos != &file->f_pos) @@ -80,7 +80,7 @@ static ssize_t scx200_gpio_write(struct file *file, const char *data, static ssize_t scx200_gpio_read(struct file *file, char *buf, size_t len, loff_t *ppos) { - unsigned m = minor(file->f_dentry->d_inode->i_rdev); + unsigned m = iminor(file->f_dentry->d_inode); int value; if (ppos != &file->f_pos) @@ -95,7 +95,7 @@ static ssize_t scx200_gpio_read(struct file *file, char *buf, static int scx200_gpio_open(struct inode *inode, struct file *file) { - unsigned m = minor(inode->i_rdev); + unsigned m = iminor(inode); if (m > 63) return -EINVAL; return 0; diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index d3a4f5eae2c2..88e764f891bc 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c @@ -3078,7 +3078,7 @@ static int stl_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, uns (int) fp, cmd, (int) arg); #endif - brdnr = minor(ip->i_rdev); + brdnr = iminor(ip); if (brdnr >= STL_MAXBRDS) return(-ENODEV); rc = 0; diff --git a/drivers/char/tipar.c b/drivers/char/tipar.c index b88f7d0d4ddb..660f7b0f1487 100644 --- a/drivers/char/tipar.c +++ b/drivers/char/tipar.c @@ -248,7 +248,7 @@ probe_ti_parallel(int minor) static int tipar_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(inode) - TIPAR_MINOR; if (minor > tp_count - 1) return -ENXIO; @@ -266,7 +266,7 @@ tipar_open(struct inode *inode, struct file *file) static int tipar_close(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(inode) - TIPAR_MINOR; if (minor > tp_count - 1) return -ENXIO; @@ -279,8 +279,7 @@ tipar_close(struct inode *inode, struct file *file) static ssize_t tipar_write(struct file *file, const char *buf, size_t count, loff_t * ppos) { - unsigned int minor = - minor(file->f_dentry->d_inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(file->f_dentry->d_inode) - TIPAR_MINOR; ssize_t n; parport_claim_or_block(table[minor].dev); @@ -308,8 +307,7 @@ static ssize_t tipar_read(struct file *file, char *buf, size_t count, loff_t * ppos) { int b = 0; - unsigned int minor = - minor(file->f_dentry->d_inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(file->f_dentry->d_inode) - TIPAR_MINOR; ssize_t retval = 0; ssize_t n = 0; diff --git a/drivers/char/tpqic02.c b/drivers/char/tpqic02.c index 4429c89ac7c3..ec6861ef30cb 100644 --- a/drivers/char/tpqic02.c +++ b/drivers/char/tpqic02.c @@ -169,7 +169,7 @@ static unsigned long dma_bytes_done; static volatile unsigned dma_mode; /* !=0 also means DMA in use */ static flag need_rewind = YES; -static kdev_t current_tape_dev; +static int current_type; static int extra_blocks_left = BLOCKS_BEYOND_EW; static struct timer_list tp_timer; @@ -677,7 +677,7 @@ static int rdstatus(char *stp, unsigned size, char qcmd) * exception flag from previous exception which we are trying to clear. */ - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk(TPQIC02_NAME ": reading status bytes: "); for (q = stp; q < stp + size; q++) { @@ -693,7 +693,7 @@ static int rdstatus(char *stp, unsigned size, char qcmd) *q = inb_p(QIC02_DATA_PORT); /* read status byte */ - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk("[%1d]=0x%x ", q - stp, (unsigned) (*q) & 0xff); outb_p(ctlbits | QIC02_CTL_REQUEST, QIC02_CTL_PORT); /* set request */ @@ -714,7 +714,7 @@ static int rdstatus(char *stp, unsigned size, char qcmd) cpu_relax(); /* wait for ready */ - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk("\n"); return TE_OK; @@ -1614,7 +1614,7 @@ static irqreturn_t qic02_tape_interrupt(int irq, void *dev_id, if (status_expect_int) { #ifdef WANT_EXTRA_FULL_DEBUGGING - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk("@"); #endif stat = inb(QIC02_STAT_PORT); /* Knock, knock */ @@ -1726,7 +1726,7 @@ static irqreturn_t qic02_tape_interrupt(int irq, void *dev_id, static ssize_t qic02_tape_read(struct file *filp, char *buf, size_t count, loff_t * ppos) { - kdev_t dev = filp->f_dentry->d_inode->i_rdev; + int type = iminor(filp->f_dentry->d_inode); unsigned short flags = filp->f_flags; unsigned long bytes_todo, bytes_done, total_bytes_done = 0; int stat; @@ -1736,8 +1736,8 @@ static ssize_t qic02_tape_read(struct file *filp, char *buf, size_t count, loff_ return -ENXIO; } - if (TP_DIAGS(current_tape_dev)) - printk(TPQIC02_NAME ": request READ, minor=%x, buf=%p, count=%lx, pos=%Lx, flags=%x\n", minor(dev), buf, + if (TP_DIAGS(current_type)) + printk(TPQIC02_NAME ": request READ, minor=%x, buf=%p, count=%lx, pos=%Lx, flags=%x\n", type, buf, (long) count, filp->f_pos, flags); if (count % TAPE_BLKSIZE) { /* Only allow mod 512 bytes at a time. */ @@ -1904,7 +1904,7 @@ static ssize_t qic02_tape_read(struct file *filp, char *buf, size_t count, loff_ */ static ssize_t qic02_tape_write(struct file *filp, const char *buf, size_t count, loff_t * ppos) { - kdev_t dev = filp->f_dentry->d_inode->i_rdev; + int type = iminor(filp->f_dentry->d_inode); unsigned short flags = filp->f_flags; unsigned long bytes_todo, bytes_done, total_bytes_done = 0; @@ -1913,9 +1913,9 @@ static ssize_t qic02_tape_write(struct file *filp, const char *buf, size_t count return -ENXIO; } - if (TP_DIAGS(current_tape_dev)) { + if (TP_DIAGS(current_type)) { printk(TPQIC02_NAME ": request WRITE, minor=%x, buf=%p, count=%lx, pos=%Lx, flags=%x\n", - minor(dev), buf, (long) count, filp->f_pos, flags); + type, buf, (long) count, filp->f_pos, flags); } if (count % TAPE_BLKSIZE) { /* only allow mod 512 bytes at a time */ @@ -2070,17 +2070,18 @@ static int qic02_tape_open(struct inode *inode, struct file *filp) static int qic02_tape_open_no_use_count(struct inode *inode, struct file *filp) { - kdev_t dev = inode->i_rdev; + int type = iminor(inode); unsigned short flags = filp->f_flags; unsigned short dens = 0; int s; - if (TP_DIAGS(dev)) { - printk("qic02_tape_open: dev=%s, flags=%x ", cdevname(dev), flags); + if (TP_DIAGS(type)) { + printk("qic02_tape_open: dev=tpqic2(%d), flags=%x ", + type, flags); } - if (minor(dev) == 255) { /* special case for resetting */ + if (type == 255) { /* special case for resetting */ if (capable(CAP_SYS_ADMIN)) { return (tape_reset(1) == TE_OK) ? -EAGAIN : -ENXIO; } else { @@ -2162,7 +2163,7 @@ static int qic02_tape_open_no_use_count(struct inode *inode, */ /* not allowed to do QCMD_DENS_* unless tape is rewound */ - if ((TP_DENS(dev) != 0) && (TP_DENS(current_tape_dev) != TP_DENS(dev))) { + if ((TP_DENS(type) != 0) && (TP_DENS(current_type) != TP_DENS(type))) { /* force rewind if minor bits have changed, * i.e. user wants to use tape in different format. * [assuming single drive operation] @@ -2175,7 +2176,7 @@ static int qic02_tape_open_no_use_count(struct inode *inode, /* density bits still the same, but TP_DIAGS bit * may have changed. */ - current_tape_dev = dev; + current_type = type; } if (need_rewind == YES) { @@ -2212,14 +2213,14 @@ static int qic02_tape_open_no_use_count(struct inode *inode, * so we must have done a rewind by now. If not, just skip over. * Only give set density command when minor bits have changed. */ - if (TP_DENS(current_tape_dev) == TP_DENS(dev)) { + if (TP_DENS(current_type) == TP_DENS(type)) { return 0; } - current_tape_dev = dev; + current_type = type; need_rewind = NO; if (TP_HAVE_DENS) { - dens = TP_DENS(dev); + dens = TP_DENS(type); } if (dens < sizeof(format_names) / sizeof(char *)) @@ -2227,7 +2228,7 @@ static int qic02_tape_open_no_use_count(struct inode *inode, else tpqputs(TPQD_REWIND, "Wait for retensioning..."); - switch (TP_DENS(dev)) { + switch (TP_DENS(type)) { case 0: /* Minor 0 is for drives without set-density support */ s = 0; break; @@ -2254,7 +2255,7 @@ static int qic02_tape_open_no_use_count(struct inode *inode, } if (s != 0) { status_dead = YES; /* force reset */ - current_tape_dev = NODEV;/* earlier 0xff80 */ + current_type = 0;/* earlier 0xff80 */ return -EIO; } @@ -2264,10 +2265,10 @@ static int qic02_tape_open_no_use_count(struct inode *inode, static int qic02_tape_release(struct inode *inode, struct file *filp) { - kdev_t dev = inode->i_rdev; + int type = iminor(inode); - if (TP_DIAGS(dev)) { - printk("qic02_tape_release: dev=%s\n", cdevname(dev)); + if (TP_DIAGS(type)) { + printk("qic02_tape_release: dev=tpqic2(%d)\n", type); } if (status_zombie == NO) { /* don't rewind in zombie mode */ @@ -2283,7 +2284,7 @@ static int qic02_tape_release(struct inode *inode, struct file *filp) /* Rewind only if minor number requires it AND * read/writes have been done. ************* IS THIS CORRECT?????????? */ - if ((TP_REWCLOSE(dev)) && (status_bytes_rd | status_bytes_wr)) { + if (TP_REWCLOSE(type) && (status_bytes_rd | status_bytes_wr)) { tpqputs(TPQD_REWIND, "release: Doing rewind..."); (void) do_qic_cmd(QCMD_REWIND, TIM_R); } @@ -2398,7 +2399,7 @@ static int qic02_tape_ioctl(struct inode *inode, struct file *filp, unsigned int struct mtpos ioctl_tell; - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk(TPQIC02_NAME ": ioctl(%4x, %4lx)\n", iocmd, ioarg); if (!inode) @@ -2459,7 +2460,7 @@ static int qic02_tape_ioctl(struct inode *inode, struct file *filp, unsigned int * --- tape at the beginning of the current file. */ - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk("OP op=%4x, count=%4x\n", operation.mt_op, operation.mt_count); if (operation.mt_count < 0) @@ -2492,7 +2493,7 @@ static int qic02_tape_ioctl(struct inode *inode, struct file *filp, unsigned int return 0; } else if (c == _IOC_NR(MTIOCGET)) { - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk("GET "); CHECK_IOC_SIZE(mtget); @@ -2507,7 +2508,7 @@ static int qic02_tape_ioctl(struct inode *inode, struct file *filp, unsigned int return -EFAULT; return 0; } else if (TP_HAVE_TELL && (c == _IOC_NR(MTIOCPOS))) { - if (TP_DIAGS(current_tape_dev)) + if (TP_DIAGS(current_type)) printk("POS "); CHECK_IOC_SIZE(mtpos); @@ -2664,7 +2665,7 @@ int __init qic02_tape_init(void) return -ENODEV; } - current_tape_dev = mk_kdev(QIC02_TAPE_MAJOR, 0); + current_type = 0; #ifndef CONFIG_QIC02_DYNCONF printk(TPQIC02_NAME ": IRQ %d, DMA %d, IO 0x%x, IFC %s, %s, %s\n", diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index ba53772c8fd9..d0e06f0e6bcf 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c @@ -177,7 +177,7 @@ char *tty_name(struct tty_struct *tty, char *buf) EXPORT_SYMBOL(tty_name); -inline int tty_paranoia_check(struct tty_struct *tty, kdev_t device, +inline int tty_paranoia_check(struct tty_struct *tty, struct inode *inode, const char *routine) { #ifdef TTY_PARANOIA_CHECK @@ -187,11 +187,11 @@ inline int tty_paranoia_check(struct tty_struct *tty, kdev_t device, "Warning: null TTY for (%s) in %s\n"; if (!tty) { - printk(badtty, cdevname(device), routine); + printk(badtty, cdevname(inode->i_rdev), routine); return 1; } if (tty->magic != TTY_MAGIC) { - printk(badmagic, cdevname(device), routine); + printk(badmagic, cdevname(inode->i_rdev), routine); return 1; } #endif @@ -646,7 +646,7 @@ static ssize_t tty_read(struct file * file, char * buf, size_t count, tty = (struct tty_struct *)file->private_data; inode = file->f_dentry->d_inode; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_read")) + if (tty_paranoia_check(tty, inode, "tty_read")) return -EIO; if (!tty || (test_bit(TTY_IO_ERROR, &tty->flags))) return -EIO; @@ -763,7 +763,7 @@ static ssize_t tty_write(struct file * file, const char * buf, size_t count, } tty = (struct tty_struct *)file->private_data; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_write")) + if (tty_paranoia_check(tty, inode, "tty_write")) return -EIO; if (!tty || !tty->driver->write || (test_bit(TTY_IO_ERROR, &tty->flags))) return -EIO; @@ -1059,7 +1059,7 @@ static void release_dev(struct file * filp) char buf[64]; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, filp->f_dentry->d_inode->i_rdev, "release_dev")) + if (tty_paranoia_check(tty, filp->f_dentry->d_inode, "release_dev")) return; check_tty_count(tty, "release_dev"); @@ -1439,7 +1439,7 @@ static unsigned int tty_poll(struct file * filp, poll_table * wait) struct tty_struct * tty; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, filp->f_dentry->d_inode->i_rdev, "tty_poll")) + if (tty_paranoia_check(tty, filp->f_dentry->d_inode, "tty_poll")) return 0; if (tty->ldisc.poll) @@ -1453,7 +1453,7 @@ static int tty_fasync(int fd, struct file * filp, int on) int retval; tty = (struct tty_struct *)filp->private_data; - if (tty_paranoia_check(tty, filp->f_dentry->d_inode->i_rdev, "tty_fasync")) + if (tty_paranoia_check(tty, filp->f_dentry->d_inode, "tty_fasync")) return 0; retval = fasync_helper(fd, filp, on, &tty->fasync); @@ -1727,7 +1727,7 @@ int tty_ioctl(struct inode * inode, struct file * file, int retval; tty = (struct tty_struct *)file->private_data; - if (tty_paranoia_check(tty, inode->i_rdev, "tty_ioctl")) + if (tty_paranoia_check(tty, inode, "tty_ioctl")) return -EINVAL; real_tty = tty; diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c index 07e16dbdb4e0..15c28a5edb5c 100644 --- a/drivers/char/vc_screen.c +++ b/drivers/char/vc_screen.c @@ -49,7 +49,7 @@ static int vcs_size(struct inode *inode) { int size; - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int currcons = minor & 127; if (currcons == 0) currcons = fg_console; @@ -104,7 +104,7 @@ static ssize_t vcs_read(struct file *file, char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - unsigned int currcons = minor(inode->i_rdev); + unsigned int currcons = iminor(inode); long pos = *ppos; long viewed, attr, read; int col, maxcol; @@ -273,7 +273,7 @@ static ssize_t vcs_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - unsigned int currcons = minor(inode->i_rdev); + unsigned int currcons = iminor(inode); long pos = *ppos; long viewed, attr, size, written; char *con_buf0; @@ -456,7 +456,7 @@ unlock_out: static int vcs_open(struct inode *inode, struct file *filp) { - unsigned int currcons = minor(inode->i_rdev) & 127; + unsigned int currcons = iminor(inode) & 127; if(currcons && !vc_cons_allocated(currcons-1)) return -ENXIO; return 0; diff --git a/drivers/char/watchdog/acquirewdt.c b/drivers/char/watchdog/acquirewdt.c index 2e6e98ac932d..e25bd42b9963 100644 --- a/drivers/char/watchdog/acquirewdt.c +++ b/drivers/char/watchdog/acquirewdt.c @@ -130,7 +130,7 @@ static int acq_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int acq_open(struct inode *inode, struct file *file) { - if ((minor(inode->i_rdev) == WATCHDOG_MINOR)) { + if ((iminor(inode) == WATCHDOG_MINOR)) { spin_lock(&acq_lock); if(acq_is_open) { spin_unlock(&acq_lock); @@ -152,7 +152,7 @@ static int acq_open(struct inode *inode, struct file *file) static int acq_close(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev)==WATCHDOG_MINOR) { + if(iminor(inode)==WATCHDOG_MINOR) { spin_lock(&acq_lock); if (expect_close) inb_p(WDT_STOP); diff --git a/drivers/char/watchdog/cpu5wdt.c b/drivers/char/watchdog/cpu5wdt.c index 8b23114ea122..36897e1ad3e0 100644 --- a/drivers/char/watchdog/cpu5wdt.c +++ b/drivers/char/watchdog/cpu5wdt.c @@ -134,7 +134,7 @@ static int cpu5wdt_stop(void) static int cpu5wdt_open(struct inode *inode, struct file *file) { - switch(minor(inode->i_rdev)) { + switch(iminor(inode)) { case WATCHDOG_MINOR: if ( test_and_set_bit(0, &cpu5wdt_device.inuse) ) return -EBUSY; @@ -148,7 +148,7 @@ static int cpu5wdt_open(struct inode *inode, struct file *file) static int cpu5wdt_release(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev)==WATCHDOG_MINOR) { + if(iminor(inode)==WATCHDOG_MINOR) { clear_bit(0, &cpu5wdt_device.inuse); } return 0; diff --git a/drivers/char/watchdog/ib700wdt.c b/drivers/char/watchdog/ib700wdt.c index 3cb496f8efb3..91ae8dc73c1a 100644 --- a/drivers/char/watchdog/ib700wdt.c +++ b/drivers/char/watchdog/ib700wdt.c @@ -218,7 +218,7 @@ ibwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int ibwdt_open(struct inode *inode, struct file *file) { - if (minor(inode->i_rdev) == WATCHDOG_MINOR) { + if (iminor(inode) == WATCHDOG_MINOR) { spin_lock(&ibwdt_lock); if (ibwdt_is_open) { spin_unlock(&ibwdt_lock); @@ -240,7 +240,7 @@ ibwdt_open(struct inode *inode, struct file *file) static int ibwdt_close(struct inode *inode, struct file *file) { - if (minor(inode->i_rdev) == WATCHDOG_MINOR) { + if (iminor(inode) == WATCHDOG_MINOR) { spin_lock(&ibwdt_lock); if (expect_close) outb_p(wd_times[wd_margin], WDT_STOP); diff --git a/drivers/char/watchdog/machzwd.c b/drivers/char/watchdog/machzwd.c index 87bfb0edb03a..f175809cc7cd 100644 --- a/drivers/char/watchdog/machzwd.c +++ b/drivers/char/watchdog/machzwd.c @@ -377,7 +377,7 @@ static int zf_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int zf_open(struct inode *inode, struct file *file) { - switch(minor(inode->i_rdev)){ + switch(iminor(inode)){ case WATCHDOG_MINOR: spin_lock(&zf_lock); if(zf_is_open){ @@ -402,7 +402,7 @@ static int zf_open(struct inode *inode, struct file *file) static int zf_close(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev) == WATCHDOG_MINOR){ + if(iminor(inode) == WATCHDOG_MINOR){ if(zf_expect_close){ zf_timer_off(); diff --git a/drivers/char/watchdog/pcwd.c b/drivers/char/watchdog/pcwd.c index a9167cf89341..6d3ceaeeb11a 100644 --- a/drivers/char/watchdog/pcwd.c +++ b/drivers/char/watchdog/pcwd.c @@ -426,7 +426,7 @@ static ssize_t pcwd_write(struct file *file, const char *buf, size_t len, static int pcwd_open(struct inode *ino, struct file *filep) { - switch (minor(ino->i_rdev)) { + switch (iminor(ino)) { case WATCHDOG_MINOR: if (!atomic_dec_and_test(&open_allowed) ) { atomic_inc( &open_allowed ); @@ -457,7 +457,7 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count, /* Can't seek (pread) on this device */ if (ppos != &file->f_pos) return -ESPIPE; - switch(minor(file->f_dentry->d_inode->i_rdev)) + switch(iminor(file->f_dentry->d_inode)) { case TEMP_MINOR: /* @@ -477,7 +477,7 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count, static int pcwd_close(struct inode *ino, struct file *filep) { - if (minor(ino->i_rdev)==WATCHDOG_MINOR) { + if (iminor(ino)==WATCHDOG_MINOR) { if (expect_close) { /* Disable the board */ if (revision == PCWD_REVISION_C) { diff --git a/drivers/char/watchdog/wdt.c b/drivers/char/watchdog/wdt.c index 1c2680425d2e..e1760847f6d3 100644 --- a/drivers/char/watchdog/wdt.c +++ b/drivers/char/watchdog/wdt.c @@ -290,7 +290,7 @@ static ssize_t wdt_read(struct file *file, char *buf, size_t count, loff_t *ptr) if (ptr != &file->f_pos) return -ESPIPE; - switch(minor(file->f_dentry->d_inode->i_rdev)) + switch(iminor(file->f_dentry->d_inode)) { case TEMP_MINOR: c*=11; @@ -373,7 +373,7 @@ static int wdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int wdt_open(struct inode *inode, struct file *file) { - switch(minor(inode->i_rdev)) + switch(iminor(inode)) { case WATCHDOG_MINOR: if(test_and_set_bit(0, &wdt_is_open)) @@ -413,7 +413,7 @@ static int wdt_open(struct inode *inode, struct file *file) static int wdt_release(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev)==WATCHDOG_MINOR) + if(iminor(inode)==WATCHDOG_MINOR) { if (expect_close) { inb_p(WDT_DC); /* Disable counters */ diff --git a/drivers/char/watchdog/wdt_pci.c b/drivers/char/watchdog/wdt_pci.c index 07982732389b..93ff3659675a 100644 --- a/drivers/char/watchdog/wdt_pci.c +++ b/drivers/char/watchdog/wdt_pci.c @@ -276,7 +276,7 @@ static ssize_t wdtpci_read(struct file *file, char *buf, size_t count, loff_t *p if (ptr != &file->f_pos) return -ESPIPE; - switch(minor(file->f_dentry->d_inode->i_rdev)) + switch(iminor(file->f_dentry->d_inode)) { case TEMP_MINOR: c*=11; @@ -361,7 +361,7 @@ static int wdtpci_open(struct inode *inode, struct file *file) { unsigned long flags; - switch(minor(inode->i_rdev)) + switch(iminor(inode)) { case WATCHDOG_MINOR: if (down_trylock(&open_sem)) @@ -423,7 +423,7 @@ static int wdtpci_open(struct inode *inode, struct file *file) static int wdtpci_release(struct inode *inode, struct file *file) { - if (minor(inode->i_rdev)==WATCHDOG_MINOR) { + if (iminor(inode)==WATCHDOG_MINOR) { unsigned long flags; if (expect_close) { spin_lock_irqsave(&wdtpci_lock, flags); |
