diff options
Diffstat (limited to 'drivers')
72 files changed, 404 insertions, 160 deletions
diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c index 69f4c7ce9a63..cac09e353be8 100644 --- a/drivers/atm/lanai.c +++ b/drivers/atm/lanai.c | |||
@@ -1972,7 +1972,7 @@ static int __devinit lanai_pci_start(struct lanai_dev *lanai) | |||
1972 | "(itf %d): No suitable DMA available.\n", lanai->number); | 1972 | "(itf %d): No suitable DMA available.\n", lanai->number); |
1973 | return -EBUSY; | 1973 | return -EBUSY; |
1974 | } | 1974 | } |
1975 | if (pci_set_consistent_dma_mask(pci, 0xFFFFFFFF) != 0) { | 1975 | if (pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK) != 0) { |
1976 | printk(KERN_WARNING DEV_LABEL | 1976 | printk(KERN_WARNING DEV_LABEL |
1977 | "(itf %d): No suitable DMA available.\n", lanai->number); | 1977 | "(itf %d): No suitable DMA available.\n", lanai->number); |
1978 | return -EBUSY; | 1978 | return -EBUSY; |
diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c index 49c7cd558ddf..45bcda544880 100644 --- a/drivers/block/DAC960.c +++ b/drivers/block/DAC960.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <linux/timer.h> | 41 | #include <linux/timer.h> |
42 | #include <linux/pci.h> | 42 | #include <linux/pci.h> |
43 | #include <linux/init.h> | 43 | #include <linux/init.h> |
44 | #include <linux/jiffies.h> | ||
44 | #include <linux/random.h> | 45 | #include <linux/random.h> |
45 | #include <asm/io.h> | 46 | #include <asm/io.h> |
46 | #include <asm/uaccess.h> | 47 | #include <asm/uaccess.h> |
@@ -3654,8 +3655,8 @@ static void DAC960_V1_ProcessCompletedCommand(DAC960_Command_T *Command) | |||
3654 | (NewEnquiry->EventLogSequenceNumber != | 3655 | (NewEnquiry->EventLogSequenceNumber != |
3655 | OldEnquiry->EventLogSequenceNumber) || | 3656 | OldEnquiry->EventLogSequenceNumber) || |
3656 | Controller->MonitoringTimerCount == 0 || | 3657 | Controller->MonitoringTimerCount == 0 || |
3657 | (jiffies - Controller->SecondaryMonitoringTime | 3658 | time_after_eq(jiffies, Controller->SecondaryMonitoringTime |
3658 | >= DAC960_SecondaryMonitoringInterval)) | 3659 | + DAC960_SecondaryMonitoringInterval)) |
3659 | { | 3660 | { |
3660 | Controller->V1.NeedLogicalDriveInformation = true; | 3661 | Controller->V1.NeedLogicalDriveInformation = true; |
3661 | Controller->V1.NewEventLogSequenceNumber = | 3662 | Controller->V1.NewEventLogSequenceNumber = |
@@ -5640,8 +5641,8 @@ static void DAC960_MonitoringTimerFunction(unsigned long TimerData) | |||
5640 | unsigned int StatusChangeCounter = | 5641 | unsigned int StatusChangeCounter = |
5641 | Controller->V2.HealthStatusBuffer->StatusChangeCounter; | 5642 | Controller->V2.HealthStatusBuffer->StatusChangeCounter; |
5642 | boolean ForceMonitoringCommand = false; | 5643 | boolean ForceMonitoringCommand = false; |
5643 | if (jiffies - Controller->SecondaryMonitoringTime | 5644 | if (time_after(jiffies, Controller->SecondaryMonitoringTime |
5644 | > DAC960_SecondaryMonitoringInterval) | 5645 | + DAC960_SecondaryMonitoringInterval)) |
5645 | { | 5646 | { |
5646 | int LogicalDriveNumber; | 5647 | int LogicalDriveNumber; |
5647 | for (LogicalDriveNumber = 0; | 5648 | for (LogicalDriveNumber = 0; |
@@ -5669,8 +5670,8 @@ static void DAC960_MonitoringTimerFunction(unsigned long TimerData) | |||
5669 | ControllerInfo->ConsistencyChecksActive + | 5670 | ControllerInfo->ConsistencyChecksActive + |
5670 | ControllerInfo->RebuildsActive + | 5671 | ControllerInfo->RebuildsActive + |
5671 | ControllerInfo->OnlineExpansionsActive == 0 || | 5672 | ControllerInfo->OnlineExpansionsActive == 0 || |
5672 | jiffies - Controller->PrimaryMonitoringTime | 5673 | time_before(jiffies, Controller->PrimaryMonitoringTime |
5673 | < DAC960_MonitoringTimerInterval) && | 5674 | + DAC960_MonitoringTimerInterval)) && |
5674 | !ForceMonitoringCommand) | 5675 | !ForceMonitoringCommand) |
5675 | { | 5676 | { |
5676 | Controller->MonitoringTimer.expires = | 5677 | Controller->MonitoringTimer.expires = |
@@ -5807,8 +5808,8 @@ static void DAC960_Message(DAC960_MessageLevel_T MessageLevel, | |||
5807 | Controller->ProgressBufferLength = Length; | 5808 | Controller->ProgressBufferLength = Length; |
5808 | if (Controller->EphemeralProgressMessage) | 5809 | if (Controller->EphemeralProgressMessage) |
5809 | { | 5810 | { |
5810 | if (jiffies - Controller->LastProgressReportTime | 5811 | if (time_after_eq(jiffies, Controller->LastProgressReportTime |
5811 | >= DAC960_ProgressReportingInterval) | 5812 | + DAC960_ProgressReportingInterval)) |
5812 | { | 5813 | { |
5813 | printk("%sDAC960#%d: %s", DAC960_MessageLevelMap[MessageLevel], | 5814 | printk("%sDAC960#%d: %s", DAC960_MessageLevelMap[MessageLevel], |
5814 | Controller->ControllerNumber, Buffer); | 5815 | Controller->ControllerNumber, Buffer); |
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index 875ae7699025..ae0949b3394f 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig | |||
@@ -383,8 +383,9 @@ config BLK_DEV_RAM | |||
383 | thus say N here. | 383 | thus say N here. |
384 | 384 | ||
385 | config BLK_DEV_RAM_COUNT | 385 | config BLK_DEV_RAM_COUNT |
386 | int "Default number of RAM disks" if BLK_DEV_RAM | 386 | int "Default number of RAM disks" |
387 | default "16" | 387 | default "16" |
388 | depends on BLK_DEV_RAM | ||
388 | help | 389 | help |
389 | The default value is 16 RAM disks. Change this if you know what | 390 | The default value is 16 RAM disks. Change this if you know what |
390 | are doing. If you boot from a filesystem that needs to be extracted | 391 | are doing. If you boot from a filesystem that needs to be extracted |
diff --git a/drivers/block/acsi_slm.c b/drivers/block/acsi_slm.c index a5c1c8e871ec..4cb9c1336287 100644 --- a/drivers/block/acsi_slm.c +++ b/drivers/block/acsi_slm.c | |||
@@ -369,8 +369,6 @@ static ssize_t slm_read( struct file *file, char *buf, size_t count, | |||
369 | int length; | 369 | int length; |
370 | int end; | 370 | int end; |
371 | 371 | ||
372 | if (count < 0) | ||
373 | return( -EINVAL ); | ||
374 | if (!(page = __get_free_page( GFP_KERNEL ))) | 372 | if (!(page = __get_free_page( GFP_KERNEL ))) |
375 | return( -ENOMEM ); | 373 | return( -ENOMEM ); |
376 | 374 | ||
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index d3ad9081697e..bedb689b051f 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c | |||
@@ -170,6 +170,7 @@ static int print_unex = 1; | |||
170 | #include <linux/mm.h> | 170 | #include <linux/mm.h> |
171 | #include <linux/bio.h> | 171 | #include <linux/bio.h> |
172 | #include <linux/string.h> | 172 | #include <linux/string.h> |
173 | #include <linux/jiffies.h> | ||
173 | #include <linux/fcntl.h> | 174 | #include <linux/fcntl.h> |
174 | #include <linux/delay.h> | 175 | #include <linux/delay.h> |
175 | #include <linux/mc146818rtc.h> /* CMOS defines */ | 176 | #include <linux/mc146818rtc.h> /* CMOS defines */ |
@@ -747,7 +748,7 @@ static int disk_change(int drive) | |||
747 | { | 748 | { |
748 | int fdc = FDC(drive); | 749 | int fdc = FDC(drive); |
749 | #ifdef FLOPPY_SANITY_CHECK | 750 | #ifdef FLOPPY_SANITY_CHECK |
750 | if (jiffies - UDRS->select_date < UDP->select_delay) | 751 | if (time_before(jiffies, UDRS->select_date + UDP->select_delay)) |
751 | DPRINT("WARNING disk change called early\n"); | 752 | DPRINT("WARNING disk change called early\n"); |
752 | if (!(FDCS->dor & (0x10 << UNIT(drive))) || | 753 | if (!(FDCS->dor & (0x10 << UNIT(drive))) || |
753 | (FDCS->dor & 3) != UNIT(drive) || fdc != FDC(drive)) { | 754 | (FDCS->dor & 3) != UNIT(drive) || fdc != FDC(drive)) { |
@@ -1075,7 +1076,7 @@ static int fd_wait_for_completion(unsigned long delay, timeout_fn function) | |||
1075 | return 1; | 1076 | return 1; |
1076 | } | 1077 | } |
1077 | 1078 | ||
1078 | if ((signed)(jiffies - delay) < 0) { | 1079 | if (time_before(jiffies, delay)) { |
1079 | del_timer(&fd_timer); | 1080 | del_timer(&fd_timer); |
1080 | fd_timer.function = function; | 1081 | fd_timer.function = function; |
1081 | fd_timer.expires = delay; | 1082 | fd_timer.expires = delay; |
@@ -1535,7 +1536,7 @@ static void setup_rw_floppy(void) | |||
1535 | * again just before spinup completion. Beware that | 1536 | * again just before spinup completion. Beware that |
1536 | * after scandrives, we must again wait for selection. | 1537 | * after scandrives, we must again wait for selection. |
1537 | */ | 1538 | */ |
1538 | if ((signed)(ready_date - jiffies) > DP->select_delay) { | 1539 | if (time_after(ready_date, jiffies + DP->select_delay)) { |
1539 | ready_date -= DP->select_delay; | 1540 | ready_date -= DP->select_delay; |
1540 | function = (timeout_fn) floppy_start; | 1541 | function = (timeout_fn) floppy_start; |
1541 | } else | 1542 | } else |
@@ -3823,7 +3824,7 @@ static int check_floppy_change(struct gendisk *disk) | |||
3823 | if (UTESTF(FD_DISK_CHANGED) || UTESTF(FD_VERIFY)) | 3824 | if (UTESTF(FD_DISK_CHANGED) || UTESTF(FD_VERIFY)) |
3824 | return 1; | 3825 | return 1; |
3825 | 3826 | ||
3826 | if (UDP->checkfreq < (int)(jiffies - UDRS->last_checked)) { | 3827 | if (time_after(jiffies, UDRS->last_checked + UDP->checkfreq)) { |
3827 | if (floppy_grab_irq_and_dma()) { | 3828 | if (floppy_grab_irq_and_dma()) { |
3828 | return 1; | 3829 | return 1; |
3829 | } | 3830 | } |
diff --git a/drivers/block/paride/pd.c b/drivers/block/paride/pd.c index 62d2464c12f2..2403721f9db1 100644 --- a/drivers/block/paride/pd.c +++ b/drivers/block/paride/pd.c | |||
@@ -151,6 +151,7 @@ enum {D_PRT, D_PRO, D_UNI, D_MOD, D_GEO, D_SBY, D_DLY, D_SLV}; | |||
151 | #include <linux/cdrom.h> /* for the eject ioctl */ | 151 | #include <linux/cdrom.h> /* for the eject ioctl */ |
152 | #include <linux/blkdev.h> | 152 | #include <linux/blkdev.h> |
153 | #include <linux/blkpg.h> | 153 | #include <linux/blkpg.h> |
154 | #include <linux/kernel.h> | ||
154 | #include <asm/uaccess.h> | 155 | #include <asm/uaccess.h> |
155 | #include <linux/sched.h> | 156 | #include <linux/sched.h> |
156 | #include <linux/workqueue.h> | 157 | #include <linux/workqueue.h> |
@@ -275,7 +276,7 @@ static void pd_print_error(struct pd_unit *disk, char *msg, int status) | |||
275 | int i; | 276 | int i; |
276 | 277 | ||
277 | printk("%s: %s: status = 0x%x =", disk->name, msg, status); | 278 | printk("%s: %s: status = 0x%x =", disk->name, msg, status); |
278 | for (i = 0; i < 18; i++) | 279 | for (i = 0; i < ARRAY_SIZE(pd_errs); i++) |
279 | if (status & (1 << i)) | 280 | if (status & (1 << i)) |
280 | printk(" %s", pd_errs[i]); | 281 | printk(" %s", pd_errs[i]); |
281 | printk("\n"); | 282 | printk("\n"); |
diff --git a/drivers/block/paride/pg.c b/drivers/block/paride/pg.c index 6f5df0fad703..79b868254032 100644 --- a/drivers/block/paride/pg.c +++ b/drivers/block/paride/pg.c | |||
@@ -643,7 +643,8 @@ static ssize_t pg_read(struct file *filp, char __user *buf, size_t count, loff_t | |||
643 | 643 | ||
644 | static int __init pg_init(void) | 644 | static int __init pg_init(void) |
645 | { | 645 | { |
646 | int unit, err = 0; | 646 | int unit; |
647 | int err; | ||
647 | 648 | ||
648 | if (disable){ | 649 | if (disable){ |
649 | err = -1; | 650 | err = -1; |
@@ -657,16 +658,17 @@ static int __init pg_init(void) | |||
657 | goto out; | 658 | goto out; |
658 | } | 659 | } |
659 | 660 | ||
660 | if (register_chrdev(major, name, &pg_fops)) { | 661 | err = register_chrdev(major, name, &pg_fops); |
662 | if (err < 0) { | ||
661 | printk("pg_init: unable to get major number %d\n", major); | 663 | printk("pg_init: unable to get major number %d\n", major); |
662 | for (unit = 0; unit < PG_UNITS; unit++) { | 664 | for (unit = 0; unit < PG_UNITS; unit++) { |
663 | struct pg *dev = &devices[unit]; | 665 | struct pg *dev = &devices[unit]; |
664 | if (dev->present) | 666 | if (dev->present) |
665 | pi_release(dev->pi); | 667 | pi_release(dev->pi); |
666 | } | 668 | } |
667 | err = -1; | ||
668 | goto out; | 669 | goto out; |
669 | } | 670 | } |
671 | major = err; /* In case the user specified `major=0' (dynamic) */ | ||
670 | pg_class = class_create(THIS_MODULE, "pg"); | 672 | pg_class = class_create(THIS_MODULE, "pg"); |
671 | if (IS_ERR(pg_class)) { | 673 | if (IS_ERR(pg_class)) { |
672 | err = PTR_ERR(pg_class); | 674 | err = PTR_ERR(pg_class); |
diff --git a/drivers/block/paride/pt.c b/drivers/block/paride/pt.c index 715ae5dc88fb..d2013d362403 100644 --- a/drivers/block/paride/pt.c +++ b/drivers/block/paride/pt.c | |||
@@ -943,7 +943,8 @@ static ssize_t pt_write(struct file *filp, const char __user *buf, size_t count, | |||
943 | 943 | ||
944 | static int __init pt_init(void) | 944 | static int __init pt_init(void) |
945 | { | 945 | { |
946 | int unit, err = 0; | 946 | int unit; |
947 | int err; | ||
947 | 948 | ||
948 | if (disable) { | 949 | if (disable) { |
949 | err = -1; | 950 | err = -1; |
@@ -955,14 +956,15 @@ static int __init pt_init(void) | |||
955 | goto out; | 956 | goto out; |
956 | } | 957 | } |
957 | 958 | ||
958 | if (register_chrdev(major, name, &pt_fops)) { | 959 | err = register_chrdev(major, name, &pt_fops); |
960 | if (err < 0) { | ||
959 | printk("pt_init: unable to get major number %d\n", major); | 961 | printk("pt_init: unable to get major number %d\n", major); |
960 | for (unit = 0; unit < PT_UNITS; unit++) | 962 | for (unit = 0; unit < PT_UNITS; unit++) |
961 | if (pt[unit].present) | 963 | if (pt[unit].present) |
962 | pi_release(pt[unit].pi); | 964 | pi_release(pt[unit].pi); |
963 | err = -1; | ||
964 | goto out; | 965 | goto out; |
965 | } | 966 | } |
967 | major = err; | ||
966 | pt_class = class_create(THIS_MODULE, "pt"); | 968 | pt_class = class_create(THIS_MODULE, "pt"); |
967 | if (IS_ERR(pt_class)) { | 969 | if (IS_ERR(pt_class)) { |
968 | err = PTR_ERR(pt_class); | 970 | err = PTR_ERR(pt_class); |
diff --git a/drivers/block/umem.c b/drivers/block/umem.c index c16e66b9c7a7..f7d4c65a7b8c 100644 --- a/drivers/block/umem.c +++ b/drivers/block/umem.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <linux/timer.h> | 50 | #include <linux/timer.h> |
51 | #include <linux/pci.h> | 51 | #include <linux/pci.h> |
52 | #include <linux/slab.h> | 52 | #include <linux/slab.h> |
53 | #include <linux/dma-mapping.h> | ||
53 | 54 | ||
54 | #include <linux/fcntl.h> /* O_ACCMODE */ | 55 | #include <linux/fcntl.h> /* O_ACCMODE */ |
55 | #include <linux/hdreg.h> /* HDIO_GETGEO */ | 56 | #include <linux/hdreg.h> /* HDIO_GETGEO */ |
@@ -881,8 +882,8 @@ static int __devinit mm_pci_probe(struct pci_dev *dev, const struct pci_device_i | |||
881 | printk(KERN_INFO "Micro Memory(tm) controller #%d found at %02x:%02x (PCI Mem Module (Battery Backup))\n", | 882 | printk(KERN_INFO "Micro Memory(tm) controller #%d found at %02x:%02x (PCI Mem Module (Battery Backup))\n", |
882 | card->card_number, dev->bus->number, dev->devfn); | 883 | card->card_number, dev->bus->number, dev->devfn); |
883 | 884 | ||
884 | if (pci_set_dma_mask(dev, 0xffffffffffffffffLL) && | 885 | if (pci_set_dma_mask(dev, DMA_64BIT_MASK) && |
885 | pci_set_dma_mask(dev, 0xffffffffLL)) { | 886 | pci_set_dma_mask(dev, DMA_32BIT_MASK)) { |
886 | printk(KERN_WARNING "MM%d: NO suitable DMA found\n",num_cards); | 887 | printk(KERN_WARNING "MM%d: NO suitable DMA found\n",num_cards); |
887 | return -ENOMEM; | 888 | return -ENOMEM; |
888 | } | 889 | } |
diff --git a/drivers/char/agp/nvidia-agp.c b/drivers/char/agp/nvidia-agp.c index 70b8ed9cd172..4c67135c12d8 100644 --- a/drivers/char/agp/nvidia-agp.c +++ b/drivers/char/agp/nvidia-agp.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/gfp.h> | 11 | #include <linux/gfp.h> |
12 | #include <linux/page-flags.h> | 12 | #include <linux/page-flags.h> |
13 | #include <linux/mm.h> | 13 | #include <linux/mm.h> |
14 | #include <linux/jiffies.h> | ||
14 | #include "agp.h" | 15 | #include "agp.h" |
15 | 16 | ||
16 | /* NVIDIA registers */ | 17 | /* NVIDIA registers */ |
@@ -256,7 +257,7 @@ static void nvidia_tlbflush(struct agp_memory *mem) | |||
256 | do { | 257 | do { |
257 | pci_read_config_dword(nvidia_private.dev_1, | 258 | pci_read_config_dword(nvidia_private.dev_1, |
258 | NVIDIA_1_WBC, &wbc_reg); | 259 | NVIDIA_1_WBC, &wbc_reg); |
259 | if ((signed)(end - jiffies) <= 0) { | 260 | if (time_before_eq(end, jiffies)) { |
260 | printk(KERN_ERR PFX | 261 | printk(KERN_ERR PFX |
261 | "TLB flush took more than 3 seconds.\n"); | 262 | "TLB flush took more than 3 seconds.\n"); |
262 | } | 263 | } |
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c index 641f7633878c..b7f7951c4587 100644 --- a/drivers/char/drm/drm_fops.c +++ b/drivers/char/drm/drm_fops.c | |||
@@ -175,7 +175,7 @@ int drm_stub_open(struct inode *inode, struct file *filp) | |||
175 | drm_device_t *dev = NULL; | 175 | drm_device_t *dev = NULL; |
176 | int minor = iminor(inode); | 176 | int minor = iminor(inode); |
177 | int err = -ENODEV; | 177 | int err = -ENODEV; |
178 | struct file_operations *old_fops; | 178 | const struct file_operations *old_fops; |
179 | 179 | ||
180 | DRM_DEBUG("\n"); | 180 | DRM_DEBUG("\n"); |
181 | 181 | ||
diff --git a/drivers/char/drm/i810_dma.c b/drivers/char/drm/i810_dma.c index ae0aa6d7e0bb..c658dde3633b 100644 --- a/drivers/char/drm/i810_dma.c +++ b/drivers/char/drm/i810_dma.c | |||
@@ -126,7 +126,7 @@ static int i810_map_buffer(drm_buf_t * buf, struct file *filp) | |||
126 | drm_device_t *dev = priv->head->dev; | 126 | drm_device_t *dev = priv->head->dev; |
127 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 127 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
128 | drm_i810_private_t *dev_priv = dev->dev_private; | 128 | drm_i810_private_t *dev_priv = dev->dev_private; |
129 | struct file_operations *old_fops; | 129 | const struct file_operations *old_fops; |
130 | int retcode = 0; | 130 | int retcode = 0; |
131 | 131 | ||
132 | if (buf_priv->currently_mapped == I810_BUF_MAPPED) | 132 | if (buf_priv->currently_mapped == I810_BUF_MAPPED) |
diff --git a/drivers/char/drm/i830_dma.c b/drivers/char/drm/i830_dma.c index 163f2cbfe60d..b0f815d8cea8 100644 --- a/drivers/char/drm/i830_dma.c +++ b/drivers/char/drm/i830_dma.c | |||
@@ -128,7 +128,7 @@ static int i830_map_buffer(drm_buf_t * buf, struct file *filp) | |||
128 | drm_device_t *dev = priv->head->dev; | 128 | drm_device_t *dev = priv->head->dev; |
129 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 129 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
130 | drm_i830_private_t *dev_priv = dev->dev_private; | 130 | drm_i830_private_t *dev_priv = dev->dev_private; |
131 | struct file_operations *old_fops; | 131 | const struct file_operations *old_fops; |
132 | unsigned long virtual; | 132 | unsigned long virtual; |
133 | int retcode = 0; | 133 | int retcode = 0; |
134 | 134 | ||
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 5245ba1649ed..66719f9d294c 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c | |||
@@ -899,7 +899,7 @@ static const struct { | |||
899 | unsigned int minor; | 899 | unsigned int minor; |
900 | char *name; | 900 | char *name; |
901 | umode_t mode; | 901 | umode_t mode; |
902 | struct file_operations *fops; | 902 | const struct file_operations *fops; |
903 | } devlist[] = { /* list of minor devices */ | 903 | } devlist[] = { /* list of minor devices */ |
904 | {1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops}, | 904 | {1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops}, |
905 | {2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops}, | 905 | {2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops}, |
diff --git a/drivers/char/misc.c b/drivers/char/misc.c index 3e4c0414a01a..96eb2a709e21 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c | |||
@@ -129,7 +129,7 @@ static int misc_open(struct inode * inode, struct file * file) | |||
129 | int minor = iminor(inode); | 129 | int minor = iminor(inode); |
130 | struct miscdevice *c; | 130 | struct miscdevice *c; |
131 | int err = -ENODEV; | 131 | int err = -ENODEV; |
132 | struct file_operations *old_fops, *new_fops = NULL; | 132 | const struct file_operations *old_fops, *new_fops = NULL; |
133 | 133 | ||
134 | down(&misc_sem); | 134 | down(&misc_sem); |
135 | 135 | ||
diff --git a/drivers/char/mxser.h b/drivers/char/mxser.h index e7fd0b08e0b7..7e188a4d602a 100644 --- a/drivers/char/mxser.h +++ b/drivers/char/mxser.h | |||
@@ -118,7 +118,7 @@ | |||
118 | 118 | ||
119 | // enable CTS interrupt | 119 | // enable CTS interrupt |
120 | #define MOXA_MUST_IER_ECTSI 0x80 | 120 | #define MOXA_MUST_IER_ECTSI 0x80 |
121 | // eanble RTS interrupt | 121 | // enable RTS interrupt |
122 | #define MOXA_MUST_IER_ERTSI 0x40 | 122 | #define MOXA_MUST_IER_ERTSI 0x40 |
123 | // enable Xon/Xoff interrupt | 123 | // enable Xon/Xoff interrupt |
124 | #define MOXA_MUST_IER_XINT 0x20 | 124 | #define MOXA_MUST_IER_XINT 0x20 |
diff --git a/drivers/char/synclink.c b/drivers/char/synclink.c index d68be61f0a49..fee2aca3f6a5 100644 --- a/drivers/char/synclink.c +++ b/drivers/char/synclink.c | |||
@@ -941,17 +941,6 @@ static void* mgsl_get_text_ptr(void) | |||
941 | return mgsl_get_text_ptr; | 941 | return mgsl_get_text_ptr; |
942 | } | 942 | } |
943 | 943 | ||
944 | /* | ||
945 | * tmp_buf is used as a temporary buffer by mgsl_write. We need to | ||
946 | * lock it in case the COPY_FROM_USER blocks while swapping in a page, | ||
947 | * and some other program tries to do a serial write at the same time. | ||
948 | * Since the lock will only come under contention when the system is | ||
949 | * swapping and available memory is low, it makes sense to share one | ||
950 | * buffer across all the serial ioports, since it significantly saves | ||
951 | * memory if large numbers of serial ports are open. | ||
952 | */ | ||
953 | static unsigned char *tmp_buf; | ||
954 | |||
955 | static inline int mgsl_paranoia_check(struct mgsl_struct *info, | 944 | static inline int mgsl_paranoia_check(struct mgsl_struct *info, |
956 | char *name, const char *routine) | 945 | char *name, const char *routine) |
957 | { | 946 | { |
@@ -2150,7 +2139,7 @@ static int mgsl_write(struct tty_struct * tty, | |||
2150 | if (mgsl_paranoia_check(info, tty->name, "mgsl_write")) | 2139 | if (mgsl_paranoia_check(info, tty->name, "mgsl_write")) |
2151 | goto cleanup; | 2140 | goto cleanup; |
2152 | 2141 | ||
2153 | if (!tty || !info->xmit_buf || !tmp_buf) | 2142 | if (!tty || !info->xmit_buf) |
2154 | goto cleanup; | 2143 | goto cleanup; |
2155 | 2144 | ||
2156 | if ( info->params.mode == MGSL_MODE_HDLC || | 2145 | if ( info->params.mode == MGSL_MODE_HDLC || |
@@ -3438,7 +3427,6 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp) | |||
3438 | { | 3427 | { |
3439 | struct mgsl_struct *info; | 3428 | struct mgsl_struct *info; |
3440 | int retval, line; | 3429 | int retval, line; |
3441 | unsigned long page; | ||
3442 | unsigned long flags; | 3430 | unsigned long flags; |
3443 | 3431 | ||
3444 | /* verify range of specified line number */ | 3432 | /* verify range of specified line number */ |
@@ -3472,18 +3460,6 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp) | |||
3472 | goto cleanup; | 3460 | goto cleanup; |
3473 | } | 3461 | } |
3474 | 3462 | ||
3475 | if (!tmp_buf) { | ||
3476 | page = get_zeroed_page(GFP_KERNEL); | ||
3477 | if (!page) { | ||
3478 | retval = -ENOMEM; | ||
3479 | goto cleanup; | ||
3480 | } | ||
3481 | if (tmp_buf) | ||
3482 | free_page(page); | ||
3483 | else | ||
3484 | tmp_buf = (unsigned char *) page; | ||
3485 | } | ||
3486 | |||
3487 | info->tty->low_latency = (info->flags & ASYNC_LOW_LATENCY) ? 1 : 0; | 3463 | info->tty->low_latency = (info->flags & ASYNC_LOW_LATENCY) ? 1 : 0; |
3488 | 3464 | ||
3489 | spin_lock_irqsave(&info->netlock, flags); | 3465 | spin_lock_irqsave(&info->netlock, flags); |
@@ -4502,11 +4478,6 @@ static void synclink_cleanup(void) | |||
4502 | kfree(tmp); | 4478 | kfree(tmp); |
4503 | } | 4479 | } |
4504 | 4480 | ||
4505 | if (tmp_buf) { | ||
4506 | free_page((unsigned long) tmp_buf); | ||
4507 | tmp_buf = NULL; | ||
4508 | } | ||
4509 | |||
4510 | if (pci_registered) | 4481 | if (pci_registered) |
4511 | pci_unregister_driver(&synclink_pci_driver); | 4482 | pci_unregister_driver(&synclink_pci_driver); |
4512 | } | 4483 | } |
@@ -6025,7 +5996,7 @@ static void usc_set_async_mode( struct mgsl_struct *info ) | |||
6025 | * <15..8> ? RxFIFO IRQ Request Level | 5996 | * <15..8> ? RxFIFO IRQ Request Level |
6026 | * | 5997 | * |
6027 | * Note: For async mode the receive FIFO level must be set | 5998 | * Note: For async mode the receive FIFO level must be set |
6028 | * to 0 to aviod the situation where the FIFO contains fewer bytes | 5999 | * to 0 to avoid the situation where the FIFO contains fewer bytes |
6029 | * than the trigger level and no more data is expected. | 6000 | * than the trigger level and no more data is expected. |
6030 | * | 6001 | * |
6031 | * <7> 0 Exited Hunt IA (Interrupt Arm) | 6002 | * <7> 0 Exited Hunt IA (Interrupt Arm) |
diff --git a/drivers/char/synclink_gt.c b/drivers/char/synclink_gt.c index 738ec2f4e563..b4d1f4eea435 100644 --- a/drivers/char/synclink_gt.c +++ b/drivers/char/synclink_gt.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * $Id: synclink_gt.c,v 4.22 2006/01/09 20:16:06 paulkf Exp $ | 2 | * $Id: synclink_gt.c,v 4.25 2006/02/06 21:20:33 paulkf Exp $ |
3 | * | 3 | * |
4 | * Device driver for Microgate SyncLink GT serial adapters. | 4 | * Device driver for Microgate SyncLink GT serial adapters. |
5 | * | 5 | * |
@@ -92,7 +92,7 @@ | |||
92 | * module identification | 92 | * module identification |
93 | */ | 93 | */ |
94 | static char *driver_name = "SyncLink GT"; | 94 | static char *driver_name = "SyncLink GT"; |
95 | static char *driver_version = "$Revision: 4.22 $"; | 95 | static char *driver_version = "$Revision: 4.25 $"; |
96 | static char *tty_driver_name = "synclink_gt"; | 96 | static char *tty_driver_name = "synclink_gt"; |
97 | static char *tty_dev_prefix = "ttySLG"; | 97 | static char *tty_dev_prefix = "ttySLG"; |
98 | MODULE_LICENSE("GPL"); | 98 | MODULE_LICENSE("GPL"); |
@@ -188,6 +188,20 @@ static void hdlcdev_exit(struct slgt_info *info); | |||
188 | #define SLGT_REG_SIZE 256 | 188 | #define SLGT_REG_SIZE 256 |
189 | 189 | ||
190 | /* | 190 | /* |
191 | * conditional wait facility | ||
192 | */ | ||
193 | struct cond_wait { | ||
194 | struct cond_wait *next; | ||
195 | wait_queue_head_t q; | ||
196 | wait_queue_t wait; | ||
197 | unsigned int data; | ||
198 | }; | ||
199 | static void init_cond_wait(struct cond_wait *w, unsigned int data); | ||
200 | static void add_cond_wait(struct cond_wait **head, struct cond_wait *w); | ||
201 | static void remove_cond_wait(struct cond_wait **head, struct cond_wait *w); | ||
202 | static void flush_cond_wait(struct cond_wait **head); | ||
203 | |||
204 | /* | ||
191 | * DMA buffer descriptor and access macros | 205 | * DMA buffer descriptor and access macros |
192 | */ | 206 | */ |
193 | struct slgt_desc | 207 | struct slgt_desc |
@@ -269,6 +283,9 @@ struct slgt_info { | |||
269 | struct timer_list tx_timer; | 283 | struct timer_list tx_timer; |
270 | struct timer_list rx_timer; | 284 | struct timer_list rx_timer; |
271 | 285 | ||
286 | unsigned int gpio_present; | ||
287 | struct cond_wait *gpio_wait_q; | ||
288 | |||
272 | spinlock_t lock; /* spinlock for synchronizing with ISR */ | 289 | spinlock_t lock; /* spinlock for synchronizing with ISR */ |
273 | 290 | ||
274 | struct work_struct task; | 291 | struct work_struct task; |
@@ -379,6 +396,11 @@ static MGSL_PARAMS default_params = { | |||
379 | #define MASK_OVERRUN BIT4 | 396 | #define MASK_OVERRUN BIT4 |
380 | 397 | ||
381 | #define GSR 0x00 /* global status */ | 398 | #define GSR 0x00 /* global status */ |
399 | #define JCR 0x04 /* JTAG control */ | ||
400 | #define IODR 0x08 /* GPIO direction */ | ||
401 | #define IOER 0x0c /* GPIO interrupt enable */ | ||
402 | #define IOVR 0x10 /* GPIO value */ | ||
403 | #define IOSR 0x14 /* GPIO interrupt status */ | ||
382 | #define TDR 0x80 /* tx data */ | 404 | #define TDR 0x80 /* tx data */ |
383 | #define RDR 0x80 /* rx data */ | 405 | #define RDR 0x80 /* rx data */ |
384 | #define TCR 0x82 /* tx control */ | 406 | #define TCR 0x82 /* tx control */ |
@@ -503,6 +525,9 @@ static int tiocmset(struct tty_struct *tty, struct file *file, | |||
503 | static void set_break(struct tty_struct *tty, int break_state); | 525 | static void set_break(struct tty_struct *tty, int break_state); |
504 | static int get_interface(struct slgt_info *info, int __user *if_mode); | 526 | static int get_interface(struct slgt_info *info, int __user *if_mode); |
505 | static int set_interface(struct slgt_info *info, int if_mode); | 527 | static int set_interface(struct slgt_info *info, int if_mode); |
528 | static int set_gpio(struct slgt_info *info, struct gpio_desc __user *gpio); | ||
529 | static int get_gpio(struct slgt_info *info, struct gpio_desc __user *gpio); | ||
530 | static int wait_gpio(struct slgt_info *info, struct gpio_desc __user *gpio); | ||
506 | 531 | ||
507 | /* | 532 | /* |
508 | * driver functions | 533 | * driver functions |
@@ -1112,6 +1137,12 @@ static int ioctl(struct tty_struct *tty, struct file *file, | |||
1112 | return get_interface(info, argp); | 1137 | return get_interface(info, argp); |
1113 | case MGSL_IOCSIF: | 1138 | case MGSL_IOCSIF: |
1114 | return set_interface(info,(int)arg); | 1139 | return set_interface(info,(int)arg); |
1140 | case MGSL_IOCSGPIO: | ||
1141 | return set_gpio(info, argp); | ||
1142 | case MGSL_IOCGGPIO: | ||
1143 | return get_gpio(info, argp); | ||
1144 | case MGSL_IOCWAITGPIO: | ||
1145 | return wait_gpio(info, argp); | ||
1115 | case TIOCGICOUNT: | 1146 | case TIOCGICOUNT: |
1116 | spin_lock_irqsave(&info->lock,flags); | 1147 | spin_lock_irqsave(&info->lock,flags); |
1117 | cnow = info->icount; | 1148 | cnow = info->icount; |
@@ -1762,10 +1793,6 @@ static void rx_async(struct slgt_info *info) | |||
1762 | DBGDATA(info, p, count, "rx"); | 1793 | DBGDATA(info, p, count, "rx"); |
1763 | 1794 | ||
1764 | for(i=0 ; i < count; i+=2, p+=2) { | 1795 | for(i=0 ; i < count; i+=2, p+=2) { |
1765 | if (tty && chars) { | ||
1766 | tty_flip_buffer_push(tty); | ||
1767 | chars = 0; | ||
1768 | } | ||
1769 | ch = *p; | 1796 | ch = *p; |
1770 | icount->rx++; | 1797 | icount->rx++; |
1771 | 1798 | ||
@@ -2158,6 +2185,24 @@ static void isr_txeom(struct slgt_info *info, unsigned short status) | |||
2158 | } | 2185 | } |
2159 | } | 2186 | } |
2160 | 2187 | ||
2188 | static void isr_gpio(struct slgt_info *info, unsigned int changed, unsigned int state) | ||
2189 | { | ||
2190 | struct cond_wait *w, *prev; | ||
2191 | |||
2192 | /* wake processes waiting for specific transitions */ | ||
2193 | for (w = info->gpio_wait_q, prev = NULL ; w != NULL ; w = w->next) { | ||
2194 | if (w->data & changed) { | ||
2195 | w->data = state; | ||
2196 | wake_up_interruptible(&w->q); | ||
2197 | if (prev != NULL) | ||
2198 | prev->next = w->next; | ||
2199 | else | ||
2200 | info->gpio_wait_q = w->next; | ||
2201 | } else | ||
2202 | prev = w; | ||
2203 | } | ||
2204 | } | ||
2205 | |||
2161 | /* interrupt service routine | 2206 | /* interrupt service routine |
2162 | * | 2207 | * |
2163 | * irq interrupt number | 2208 | * irq interrupt number |
@@ -2193,6 +2238,22 @@ static irqreturn_t slgt_interrupt(int irq, void *dev_id, struct pt_regs * regs) | |||
2193 | } | 2238 | } |
2194 | } | 2239 | } |
2195 | 2240 | ||
2241 | if (info->gpio_present) { | ||
2242 | unsigned int state; | ||
2243 | unsigned int changed; | ||
2244 | while ((changed = rd_reg32(info, IOSR)) != 0) { | ||
2245 | DBGISR(("%s iosr=%08x\n", info->device_name, changed)); | ||
2246 | /* read latched state of GPIO signals */ | ||
2247 | state = rd_reg32(info, IOVR); | ||
2248 | /* clear pending GPIO interrupt bits */ | ||
2249 | wr_reg32(info, IOSR, changed); | ||
2250 | for (i=0 ; i < info->port_count ; i++) { | ||
2251 | if (info->port_array[i] != NULL) | ||
2252 | isr_gpio(info->port_array[i], changed, state); | ||
2253 | } | ||
2254 | } | ||
2255 | } | ||
2256 | |||
2196 | for(i=0; i < info->port_count ; i++) { | 2257 | for(i=0; i < info->port_count ; i++) { |
2197 | struct slgt_info *port = info->port_array[i]; | 2258 | struct slgt_info *port = info->port_array[i]; |
2198 | 2259 | ||
@@ -2276,6 +2337,8 @@ static void shutdown(struct slgt_info *info) | |||
2276 | set_signals(info); | 2337 | set_signals(info); |
2277 | } | 2338 | } |
2278 | 2339 | ||
2340 | flush_cond_wait(&info->gpio_wait_q); | ||
2341 | |||
2279 | spin_unlock_irqrestore(&info->lock,flags); | 2342 | spin_unlock_irqrestore(&info->lock,flags); |
2280 | 2343 | ||
2281 | if (info->tty) | 2344 | if (info->tty) |
@@ -2650,6 +2713,175 @@ static int set_interface(struct slgt_info *info, int if_mode) | |||
2650 | return 0; | 2713 | return 0; |
2651 | } | 2714 | } |
2652 | 2715 | ||
2716 | /* | ||
2717 | * set general purpose IO pin state and direction | ||
2718 | * | ||
2719 | * user_gpio fields: | ||
2720 | * state each bit indicates a pin state | ||
2721 | * smask set bit indicates pin state to set | ||
2722 | * dir each bit indicates a pin direction (0=input, 1=output) | ||
2723 | * dmask set bit indicates pin direction to set | ||
2724 | */ | ||
2725 | static int set_gpio(struct slgt_info *info, struct gpio_desc __user *user_gpio) | ||
2726 | { | ||
2727 | unsigned long flags; | ||
2728 | struct gpio_desc gpio; | ||
2729 | __u32 data; | ||
2730 | |||
2731 | if (!info->gpio_present) | ||
2732 | return -EINVAL; | ||
2733 | if (copy_from_user(&gpio, user_gpio, sizeof(gpio))) | ||
2734 | return -EFAULT; | ||
2735 | DBGINFO(("%s set_gpio state=%08x smask=%08x dir=%08x dmask=%08x\n", | ||
2736 | info->device_name, gpio.state, gpio.smask, | ||
2737 | gpio.dir, gpio.dmask)); | ||
2738 | |||
2739 | spin_lock_irqsave(&info->lock,flags); | ||
2740 | if (gpio.dmask) { | ||
2741 | data = rd_reg32(info, IODR); | ||
2742 | data |= gpio.dmask & gpio.dir; | ||
2743 | data &= ~(gpio.dmask & ~gpio.dir); | ||
2744 | wr_reg32(info, IODR, data); | ||
2745 | } | ||
2746 | if (gpio.smask) { | ||
2747 | data = rd_reg32(info, IOVR); | ||
2748 | data |= gpio.smask & gpio.state; | ||
2749 | data &= ~(gpio.smask & ~gpio.state); | ||
2750 | wr_reg32(info, IOVR, data); | ||
2751 | } | ||
2752 | spin_unlock_irqrestore(&info->lock,flags); | ||
2753 | |||
2754 | return 0; | ||
2755 | } | ||
2756 | |||
2757 | /* | ||
2758 | * get general purpose IO pin state and direction | ||
2759 | */ | ||
2760 | static int get_gpio(struct slgt_info *info, struct gpio_desc __user *user_gpio) | ||
2761 | { | ||
2762 | struct gpio_desc gpio; | ||
2763 | if (!info->gpio_present) | ||
2764 | return -EINVAL; | ||
2765 | gpio.state = rd_reg32(info, IOVR); | ||
2766 | gpio.smask = 0xffffffff; | ||
2767 | gpio.dir = rd_reg32(info, IODR); | ||
2768 | gpio.dmask = 0xffffffff; | ||
2769 | if (copy_to_user(user_gpio, &gpio, sizeof(gpio))) | ||
2770 | return -EFAULT; | ||
2771 | DBGINFO(("%s get_gpio state=%08x dir=%08x\n", | ||
2772 | info->device_name, gpio.state, gpio.dir)); | ||
2773 | return 0; | ||
2774 | } | ||
2775 | |||
2776 | /* | ||
2777 | * conditional wait facility | ||
2778 | */ | ||
2779 | static void init_cond_wait(struct cond_wait *w, unsigned int data) | ||
2780 | { | ||
2781 | init_waitqueue_head(&w->q); | ||
2782 | init_waitqueue_entry(&w->wait, current); | ||
2783 | w->data = data; | ||
2784 | } | ||
2785 | |||
2786 | static void add_cond_wait(struct cond_wait **head, struct cond_wait *w) | ||
2787 | { | ||
2788 | set_current_state(TASK_INTERRUPTIBLE); | ||
2789 | add_wait_queue(&w->q, &w->wait); | ||
2790 | w->next = *head; | ||
2791 | *head = w; | ||
2792 | } | ||
2793 | |||
2794 | static void remove_cond_wait(struct cond_wait **head, struct cond_wait *cw) | ||
2795 | { | ||
2796 | struct cond_wait *w, *prev; | ||
2797 | remove_wait_queue(&cw->q, &cw->wait); | ||
2798 | set_current_state(TASK_RUNNING); | ||
2799 | for (w = *head, prev = NULL ; w != NULL ; prev = w, w = w->next) { | ||
2800 | if (w == cw) { | ||
2801 | if (prev != NULL) | ||
2802 | prev->next = w->next; | ||
2803 | else | ||
2804 | *head = w->next; | ||
2805 | break; | ||
2806 | } | ||
2807 | } | ||
2808 | } | ||
2809 | |||
2810 | static void flush_cond_wait(struct cond_wait **head) | ||
2811 | { | ||
2812 | while (*head != NULL) { | ||
2813 | wake_up_interruptible(&(*head)->q); | ||
2814 | *head = (*head)->next; | ||
2815 | } | ||
2816 | } | ||
2817 | |||
2818 | /* | ||
2819 | * wait for general purpose I/O pin(s) to enter specified state | ||
2820 | * | ||
2821 | * user_gpio fields: | ||
2822 | * state - bit indicates target pin state | ||
2823 | * smask - set bit indicates watched pin | ||
2824 | * | ||
2825 | * The wait ends when at least one watched pin enters the specified | ||
2826 | * state. When 0 (no error) is returned, user_gpio->state is set to the | ||
2827 | * state of all GPIO pins when the wait ends. | ||
2828 | * | ||
2829 | * Note: Each pin may be a dedicated input, dedicated output, or | ||
2830 | * configurable input/output. The number and configuration of pins | ||
2831 | * varies with the specific adapter model. Only input pins (dedicated | ||
2832 | * or configured) can be monitored with this function. | ||
2833 | */ | ||
2834 | static int wait_gpio(struct slgt_info *info, struct gpio_desc __user *user_gpio) | ||
2835 | { | ||
2836 | unsigned long flags; | ||
2837 | int rc = 0; | ||
2838 | struct gpio_desc gpio; | ||
2839 | struct cond_wait wait; | ||
2840 | u32 state; | ||
2841 | |||
2842 | if (!info->gpio_present) | ||
2843 | return -EINVAL; | ||
2844 | if (copy_from_user(&gpio, user_gpio, sizeof(gpio))) | ||
2845 | return -EFAULT; | ||
2846 | DBGINFO(("%s wait_gpio() state=%08x smask=%08x\n", | ||
2847 | info->device_name, gpio.state, gpio.smask)); | ||
2848 | /* ignore output pins identified by set IODR bit */ | ||
2849 | if ((gpio.smask &= ~rd_reg32(info, IODR)) == 0) | ||
2850 | return -EINVAL; | ||
2851 | init_cond_wait(&wait, gpio.smask); | ||
2852 | |||
2853 | spin_lock_irqsave(&info->lock, flags); | ||
2854 | /* enable interrupts for watched pins */ | ||
2855 | wr_reg32(info, IOER, rd_reg32(info, IOER) | gpio.smask); | ||
2856 | /* get current pin states */ | ||
2857 | state = rd_reg32(info, IOVR); | ||
2858 | |||
2859 | if (gpio.smask & ~(state ^ gpio.state)) { | ||
2860 | /* already in target state */ | ||
2861 | gpio.state = state; | ||
2862 | } else { | ||
2863 | /* wait for target state */ | ||
2864 | add_cond_wait(&info->gpio_wait_q, &wait); | ||
2865 | spin_unlock_irqrestore(&info->lock, flags); | ||
2866 | schedule(); | ||
2867 | if (signal_pending(current)) | ||
2868 | rc = -ERESTARTSYS; | ||
2869 | else | ||
2870 | gpio.state = wait.data; | ||
2871 | spin_lock_irqsave(&info->lock, flags); | ||
2872 | remove_cond_wait(&info->gpio_wait_q, &wait); | ||
2873 | } | ||
2874 | |||
2875 | /* disable all GPIO interrupts if no waiting processes */ | ||
2876 | if (info->gpio_wait_q == NULL) | ||
2877 | wr_reg32(info, IOER, 0); | ||
2878 | spin_unlock_irqrestore(&info->lock,flags); | ||
2879 | |||
2880 | if ((rc == 0) && copy_to_user(user_gpio, &gpio, sizeof(gpio))) | ||
2881 | rc = -EFAULT; | ||
2882 | return rc; | ||
2883 | } | ||
2884 | |||
2653 | static int modem_input_wait(struct slgt_info *info,int arg) | 2885 | static int modem_input_wait(struct slgt_info *info,int arg) |
2654 | { | 2886 | { |
2655 | unsigned long flags; | 2887 | unsigned long flags; |
@@ -3166,8 +3398,10 @@ static void device_init(int adapter_num, struct pci_dev *pdev) | |||
3166 | } else { | 3398 | } else { |
3167 | port_array[0]->irq_requested = 1; | 3399 | port_array[0]->irq_requested = 1; |
3168 | adapter_test(port_array[0]); | 3400 | adapter_test(port_array[0]); |
3169 | for (i=1 ; i < port_count ; i++) | 3401 | for (i=1 ; i < port_count ; i++) { |
3170 | port_array[i]->init_error = port_array[0]->init_error; | 3402 | port_array[i]->init_error = port_array[0]->init_error; |
3403 | port_array[i]->gpio_present = port_array[0]->gpio_present; | ||
3404 | } | ||
3171 | } | 3405 | } |
3172 | } | 3406 | } |
3173 | } | 3407 | } |
@@ -4301,7 +4535,7 @@ static int register_test(struct slgt_info *info) | |||
4301 | break; | 4535 | break; |
4302 | } | 4536 | } |
4303 | } | 4537 | } |
4304 | 4538 | info->gpio_present = (rd_reg32(info, JCR) & BIT5) ? 1 : 0; | |
4305 | info->init_error = rc ? 0 : DiagStatus_AddressFailure; | 4539 | info->init_error = rc ? 0 : DiagStatus_AddressFailure; |
4306 | return rc; | 4540 | return rc; |
4307 | } | 4541 | } |
diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c index 905f58ba8e16..ea06e3a4dc35 100644 --- a/drivers/edac/edac_mc.c +++ b/drivers/edac/edac_mc.c | |||
@@ -2044,7 +2044,7 @@ static int __init edac_mc_init(void) | |||
2044 | */ | 2044 | */ |
2045 | clear_pci_parity_errors(); | 2045 | clear_pci_parity_errors(); |
2046 | 2046 | ||
2047 | /* Create the MC sysfs entires */ | 2047 | /* Create the MC sysfs entries */ |
2048 | if (edac_sysfs_memctrl_setup()) { | 2048 | if (edac_sysfs_memctrl_setup()) { |
2049 | edac_printk(KERN_ERR, EDAC_MC, | 2049 | edac_printk(KERN_ERR, EDAC_MC, |
2050 | "Error initializing sysfs code\n"); | 2050 | "Error initializing sysfs code\n"); |
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index ebc59064b475..f04791a58df0 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c | |||
@@ -433,6 +433,7 @@ | |||
433 | #include <linux/timer.h> | 433 | #include <linux/timer.h> |
434 | #include <linux/mm.h> | 434 | #include <linux/mm.h> |
435 | #include <linux/interrupt.h> | 435 | #include <linux/interrupt.h> |
436 | #include <linux/jiffies.h> | ||
436 | #include <linux/major.h> | 437 | #include <linux/major.h> |
437 | #include <linux/devfs_fs_kernel.h> | 438 | #include <linux/devfs_fs_kernel.h> |
438 | #include <linux/errno.h> | 439 | #include <linux/errno.h> |
@@ -2336,7 +2337,7 @@ static ide_startstop_t idetape_rw_callback (ide_drive_t *drive) | |||
2336 | } | 2337 | } |
2337 | if (time_after(jiffies, tape->insert_time)) | 2338 | if (time_after(jiffies, tape->insert_time)) |
2338 | tape->insert_speed = tape->insert_size / 1024 * HZ / (jiffies - tape->insert_time); | 2339 | tape->insert_speed = tape->insert_size / 1024 * HZ / (jiffies - tape->insert_time); |
2339 | if (jiffies - tape->avg_time >= HZ) { | 2340 | if (time_after_eq(jiffies, tape->avg_time + HZ)) { |
2340 | tape->avg_speed = tape->avg_size * HZ / (jiffies - tape->avg_time) / 1024; | 2341 | tape->avg_speed = tape->avg_size * HZ / (jiffies - tape->avg_time) / 1024; |
2341 | tape->avg_size = 0; | 2342 | tape->avg_size = 0; |
2342 | tape->avg_time = jiffies; | 2343 | tape->avg_time = jiffies; |
@@ -2497,7 +2498,7 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive, | |||
2497 | } else { | 2498 | } else { |
2498 | return ide_do_reset(drive); | 2499 | return ide_do_reset(drive); |
2499 | } | 2500 | } |
2500 | } else if (jiffies - tape->dsc_polling_start > IDETAPE_DSC_MA_THRESHOLD) | 2501 | } else if (time_after(jiffies, tape->dsc_polling_start + IDETAPE_DSC_MA_THRESHOLD)) |
2501 | tape->dsc_polling_frequency = IDETAPE_DSC_MA_SLOW; | 2502 | tape->dsc_polling_frequency = IDETAPE_DSC_MA_SLOW; |
2502 | idetape_postpone_request(drive); | 2503 | idetape_postpone_request(drive); |
2503 | return ide_stopped; | 2504 | return ide_stopped; |
diff --git a/drivers/ide/pci/amd74xx.c b/drivers/ide/pci/amd74xx.c index 21965e5ef25e..b22ee5462318 100644 --- a/drivers/ide/pci/amd74xx.c +++ b/drivers/ide/pci/amd74xx.c | |||
@@ -347,10 +347,8 @@ static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const ch | |||
347 | break; | 347 | break; |
348 | 348 | ||
349 | case AMD_UDMA_66: | 349 | case AMD_UDMA_66: |
350 | pci_read_config_dword(dev, AMD_UDMA_TIMING, &u); | 350 | /* no host side cable detection */ |
351 | for (i = 24; i >= 0; i -= 8) | 351 | amd_80w = 0x03; |
352 | if ((u >> i) & 4) | ||
353 | amd_80w |= (1 << (1 - (i >> 4))); | ||
354 | break; | 352 | break; |
355 | } | 353 | } |
356 | 354 | ||
@@ -386,8 +384,6 @@ static unsigned int __devinit init_chipset_amd74xx(struct pci_dev *dev, const ch | |||
386 | if (amd_clock < 20000 || amd_clock > 50000) { | 384 | if (amd_clock < 20000 || amd_clock > 50000) { |
387 | printk(KERN_WARNING "%s: User given PCI clock speed impossible (%d), using 33 MHz instead.\n", | 385 | printk(KERN_WARNING "%s: User given PCI clock speed impossible (%d), using 33 MHz instead.\n", |
388 | amd_chipset->name, amd_clock); | 386 | amd_chipset->name, amd_clock); |
389 | printk(KERN_WARNING "%s: Use ide0=ata66 if you want to assume 80-wire cable\n", | ||
390 | amd_chipset->name); | ||
391 | amd_clock = 33333; | 387 | amd_clock = 33333; |
392 | } | 388 | } |
393 | 389 | ||
diff --git a/drivers/ide/pci/generic.c b/drivers/ide/pci/generic.c index 6e3ab0c38c4d..f82e82109728 100644 --- a/drivers/ide/pci/generic.c +++ b/drivers/ide/pci/generic.c | |||
@@ -41,14 +41,15 @@ | |||
41 | 41 | ||
42 | static int ide_generic_all; /* Set to claim all devices */ | 42 | static int ide_generic_all; /* Set to claim all devices */ |
43 | 43 | ||
44 | #ifndef MODULE | ||
44 | static int __init ide_generic_all_on(char *unused) | 45 | static int __init ide_generic_all_on(char *unused) |
45 | { | 46 | { |
46 | ide_generic_all = 1; | 47 | ide_generic_all = 1; |
47 | printk(KERN_INFO "IDE generic will claim all unknown PCI IDE storage controllers.\n"); | 48 | printk(KERN_INFO "IDE generic will claim all unknown PCI IDE storage controllers.\n"); |
48 | return 1; | 49 | return 1; |
49 | } | 50 | } |
50 | |||
51 | __setup("all-generic-ide", ide_generic_all_on); | 51 | __setup("all-generic-ide", ide_generic_all_on); |
52 | #endif | ||
52 | 53 | ||
53 | static void __devinit init_hwif_generic (ide_hwif_t *hwif) | 54 | static void __devinit init_hwif_generic (ide_hwif_t *hwif) |
54 | { | 55 | { |
diff --git a/drivers/ide/pci/sis5513.c b/drivers/ide/pci/sis5513.c index 75a2253a3e68..8e9d87701ce2 100644 --- a/drivers/ide/pci/sis5513.c +++ b/drivers/ide/pci/sis5513.c | |||
@@ -112,6 +112,7 @@ static const struct { | |||
112 | 112 | ||
113 | { "SiS5596", PCI_DEVICE_ID_SI_5596, ATA_16 }, | 113 | { "SiS5596", PCI_DEVICE_ID_SI_5596, ATA_16 }, |
114 | { "SiS5571", PCI_DEVICE_ID_SI_5571, ATA_16 }, | 114 | { "SiS5571", PCI_DEVICE_ID_SI_5571, ATA_16 }, |
115 | { "SiS5517", PCI_DEVICE_ID_SI_5517, ATA_16 }, | ||
115 | { "SiS551x", PCI_DEVICE_ID_SI_5511, ATA_16 }, | 116 | { "SiS551x", PCI_DEVICE_ID_SI_5511, ATA_16 }, |
116 | }; | 117 | }; |
117 | 118 | ||
@@ -524,6 +525,7 @@ static void config_art_rwp_pio (ide_drive_t *drive, u8 pio) | |||
524 | case 3: test1 = 0x30|0x03; break; | 525 | case 3: test1 = 0x30|0x03; break; |
525 | case 2: test1 = 0x40|0x04; break; | 526 | case 2: test1 = 0x40|0x04; break; |
526 | case 1: test1 = 0x60|0x07; break; | 527 | case 1: test1 = 0x60|0x07; break; |
528 | case 0: test1 = 0x00; break; | ||
527 | default: break; | 529 | default: break; |
528 | } | 530 | } |
529 | pci_write_config_byte(dev, drive_pci, test1); | 531 | pci_write_config_byte(dev, drive_pci, test1); |
diff --git a/drivers/input/input.c b/drivers/input/input.c index 4fe3da3c667a..f8af0945964e 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c | |||
@@ -923,7 +923,7 @@ void input_unregister_handler(struct input_handler *handler) | |||
923 | static int input_open_file(struct inode *inode, struct file *file) | 923 | static int input_open_file(struct inode *inode, struct file *file) |
924 | { | 924 | { |
925 | struct input_handler *handler = input_table[iminor(inode) >> 5]; | 925 | struct input_handler *handler = input_table[iminor(inode) >> 5]; |
926 | struct file_operations *old_fops, *new_fops = NULL; | 926 | const struct file_operations *old_fops, *new_fops = NULL; |
927 | int err; | 927 | int err; |
928 | 928 | ||
929 | /* No load-on-demand here? */ | 929 | /* No load-on-demand here? */ |
diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 623adbb0d13a..9b493f0becc4 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c | |||
@@ -1485,6 +1485,7 @@ static int __init capi_init(void) | |||
1485 | { | 1485 | { |
1486 | char *p; | 1486 | char *p; |
1487 | char *compileinfo; | 1487 | char *compileinfo; |
1488 | int major_ret; | ||
1488 | 1489 | ||
1489 | if ((p = strchr(revision, ':')) != 0 && p[1]) { | 1490 | if ((p = strchr(revision, ':')) != 0 && p[1]) { |
1490 | strlcpy(rev, p + 2, sizeof(rev)); | 1491 | strlcpy(rev, p + 2, sizeof(rev)); |
@@ -1493,11 +1494,12 @@ static int __init capi_init(void) | |||
1493 | } else | 1494 | } else |
1494 | strcpy(rev, "1.0"); | 1495 | strcpy(rev, "1.0"); |
1495 | 1496 | ||
1496 | if (register_chrdev(capi_major, "capi20", &capi_fops)) { | 1497 | major_ret = register_chrdev(capi_major, "capi20", &capi_fops); |
1498 | if (major_ret < 0) { | ||
1497 | printk(KERN_ERR "capi20: unable to get major %d\n", capi_major); | 1499 | printk(KERN_ERR "capi20: unable to get major %d\n", capi_major); |
1498 | return -EIO; | 1500 | return major_ret; |
1499 | } | 1501 | } |
1500 | 1502 | capi_major = major_ret; | |
1501 | capi_class = class_create(THIS_MODULE, "capi"); | 1503 | capi_class = class_create(THIS_MODULE, "capi"); |
1502 | if (IS_ERR(capi_class)) { | 1504 | if (IS_ERR(capi_class)) { |
1503 | unregister_chrdev(capi_major, "capi20"); | 1505 | unregister_chrdev(capi_major, "capi20"); |
diff --git a/drivers/isdn/capi/kcapi_proc.c b/drivers/isdn/capi/kcapi_proc.c index 2cc8b27e4c3b..ca9dc00a45c4 100644 --- a/drivers/isdn/capi/kcapi_proc.c +++ b/drivers/isdn/capi/kcapi_proc.c | |||
@@ -233,7 +233,7 @@ static struct file_operations proc_applstats_ops = { | |||
233 | }; | 233 | }; |
234 | 234 | ||
235 | static void | 235 | static void |
236 | create_seq_entry(char *name, mode_t mode, struct file_operations *f) | 236 | create_seq_entry(char *name, mode_t mode, const struct file_operations *f) |
237 | { | 237 | { |
238 | struct proc_dir_entry *entry; | 238 | struct proc_dir_entry *entry; |
239 | entry = create_proc_entry(name, mode, NULL); | 239 | entry = create_proc_entry(name, mode, NULL); |
diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c index 54f8b95717b0..96fe0ecae250 100644 --- a/drivers/media/dvb/dvb-core/dvbdev.c +++ b/drivers/media/dvb/dvb-core/dvbdev.c | |||
@@ -86,7 +86,7 @@ static int dvb_device_open(struct inode *inode, struct file *file) | |||
86 | 86 | ||
87 | if (dvbdev && dvbdev->fops) { | 87 | if (dvbdev && dvbdev->fops) { |
88 | int err = 0; | 88 | int err = 0; |
89 | struct file_operations *old_fops; | 89 | const struct file_operations *old_fops; |
90 | 90 | ||
91 | file->private_data = dvbdev; | 91 | file->private_data = dvbdev; |
92 | old_fops = file->f_op; | 92 | old_fops = file->f_op; |
diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index 75e3d41382f2..5f87dd5f1d0b 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c | |||
@@ -97,7 +97,7 @@ static int video_open(struct inode *inode, struct file *file) | |||
97 | unsigned int minor = iminor(inode); | 97 | unsigned int minor = iminor(inode); |
98 | int err = 0; | 98 | int err = 0; |
99 | struct video_device *vfl; | 99 | struct video_device *vfl; |
100 | struct file_operations *old_fops; | 100 | const struct file_operations *old_fops; |
101 | 101 | ||
102 | if(minor>=VIDEO_NUM_DEVICES) | 102 | if(minor>=VIDEO_NUM_DEVICES) |
103 | return -ENODEV; | 103 | return -ENODEV; |
diff --git a/drivers/message/i2o/i2o_proc.c b/drivers/message/i2o/i2o_proc.c index 2a0c42b8cda5..3d2e76eea93e 100644 --- a/drivers/message/i2o/i2o_proc.c +++ b/drivers/message/i2o/i2o_proc.c | |||
@@ -56,7 +56,7 @@ | |||
56 | typedef struct _i2o_proc_entry_t { | 56 | typedef struct _i2o_proc_entry_t { |
57 | char *name; /* entry name */ | 57 | char *name; /* entry name */ |
58 | mode_t mode; /* mode */ | 58 | mode_t mode; /* mode */ |
59 | struct file_operations *fops; /* open function */ | 59 | const struct file_operations *fops; /* open function */ |
60 | } i2o_proc_entry; | 60 | } i2o_proc_entry; |
61 | 61 | ||
62 | /* global I2O /proc/i2o entry */ | 62 | /* global I2O /proc/i2o entry */ |
diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c index 5c550fcac2c4..26a230b6ff80 100644 --- a/drivers/misc/ibmasm/ibmasmfs.c +++ b/drivers/misc/ibmasm/ibmasmfs.c | |||
@@ -101,7 +101,7 @@ static struct super_operations ibmasmfs_s_ops = { | |||
101 | .drop_inode = generic_delete_inode, | 101 | .drop_inode = generic_delete_inode, |
102 | }; | 102 | }; |
103 | 103 | ||
104 | static struct file_operations *ibmasmfs_dir_ops = &simple_dir_operations; | 104 | static const struct file_operations *ibmasmfs_dir_ops = &simple_dir_operations; |
105 | 105 | ||
106 | static struct file_system_type ibmasmfs_type = { | 106 | static struct file_system_type ibmasmfs_type = { |
107 | .owner = THIS_MODULE, | 107 | .owner = THIS_MODULE, |
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c index e7fc28b07e5a..7627a75f4f7c 100644 --- a/drivers/net/forcedeth.c +++ b/drivers/net/forcedeth.c | |||
@@ -134,6 +134,7 @@ | |||
134 | #include <linux/random.h> | 134 | #include <linux/random.h> |
135 | #include <linux/init.h> | 135 | #include <linux/init.h> |
136 | #include <linux/if_vlan.h> | 136 | #include <linux/if_vlan.h> |
137 | #include <linux/dma-mapping.h> | ||
137 | 138 | ||
138 | #include <asm/irq.h> | 139 | #include <asm/irq.h> |
139 | #include <asm/io.h> | 140 | #include <asm/io.h> |
@@ -2932,7 +2933,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i | |||
2932 | if (id->driver_data & DEV_HAS_HIGH_DMA) { | 2933 | if (id->driver_data & DEV_HAS_HIGH_DMA) { |
2933 | /* packet format 3: supports 40-bit addressing */ | 2934 | /* packet format 3: supports 40-bit addressing */ |
2934 | np->desc_ver = DESC_VER_3; | 2935 | np->desc_ver = DESC_VER_3; |
2935 | if (pci_set_dma_mask(pci_dev, 0x0000007fffffffffULL)) { | 2936 | if (pci_set_dma_mask(pci_dev, DMA_39BIT_MASK)) { |
2936 | printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit addressing for device %s.\n", | 2937 | printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit addressing for device %s.\n", |
2937 | pci_name(pci_dev)); | 2938 | pci_name(pci_dev)); |
2938 | } else { | 2939 | } else { |
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c index 9b8295ee06ef..ae71ed57c12d 100644 --- a/drivers/net/ioc3-eth.c +++ b/drivers/net/ioc3-eth.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <linux/ip.h> | 44 | #include <linux/ip.h> |
45 | #include <linux/tcp.h> | 45 | #include <linux/tcp.h> |
46 | #include <linux/udp.h> | 46 | #include <linux/udp.h> |
47 | #include <linux/dma-mapping.h> | ||
47 | 48 | ||
48 | #ifdef CONFIG_SERIAL_8250 | 49 | #ifdef CONFIG_SERIAL_8250 |
49 | #include <linux/serial_core.h> | 50 | #include <linux/serial_core.h> |
@@ -1195,17 +1196,17 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
1195 | int err, pci_using_dac; | 1196 | int err, pci_using_dac; |
1196 | 1197 | ||
1197 | /* Configure DMA attributes. */ | 1198 | /* Configure DMA attributes. */ |
1198 | err = pci_set_dma_mask(pdev, 0xffffffffffffffffULL); | 1199 | err = pci_set_dma_mask(pdev, DMA_64BIT_MASK); |
1199 | if (!err) { | 1200 | if (!err) { |
1200 | pci_using_dac = 1; | 1201 | pci_using_dac = 1; |
1201 | err = pci_set_consistent_dma_mask(pdev, 0xffffffffffffffffULL); | 1202 | err = pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK); |
1202 | if (err < 0) { | 1203 | if (err < 0) { |
1203 | printk(KERN_ERR "%s: Unable to obtain 64 bit DMA " | 1204 | printk(KERN_ERR "%s: Unable to obtain 64 bit DMA " |
1204 | "for consistent allocations\n", pci_name(pdev)); | 1205 | "for consistent allocations\n", pci_name(pdev)); |
1205 | goto out; | 1206 | goto out; |
1206 | } | 1207 | } |
1207 | } else { | 1208 | } else { |
1208 | err = pci_set_dma_mask(pdev, 0xffffffffULL); | 1209 | err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); |
1209 | if (err) { | 1210 | if (err) { |
1210 | printk(KERN_ERR "%s: No usable DMA configuration, " | 1211 | printk(KERN_ERR "%s: No usable DMA configuration, " |
1211 | "aborting.\n", pci_name(pdev)); | 1212 | "aborting.\n", pci_name(pdev)); |
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/net/irda/nsc-ircc.c index 9aa074b44dd3..cc7ff8f00e42 100644 --- a/drivers/net/irda/nsc-ircc.c +++ b/drivers/net/irda/nsc-ircc.c | |||
@@ -812,7 +812,7 @@ static int nsc_ircc_init_39x(nsc_chip_t *chip, chipio_t *info) | |||
812 | int cfg_base = info->cfg_base; | 812 | int cfg_base = info->cfg_base; |
813 | int enabled; | 813 | int enabled; |
814 | 814 | ||
815 | /* User is shure about his config... accept it. */ | 815 | /* User is sure about his config... accept it. */ |
816 | IRDA_DEBUG(2, "%s(): nsc_ircc_init_39x (user settings): " | 816 | IRDA_DEBUG(2, "%s(): nsc_ircc_init_39x (user settings): " |
817 | "io=0x%04x, irq=%d, dma=%d\n", | 817 | "io=0x%04x, irq=%d, dma=%d\n", |
818 | __FUNCTION__, info->fir_base, info->irq, info->dma); | 818 | __FUNCTION__, info->fir_base, info->irq, info->dma); |
diff --git a/drivers/net/loopback.c b/drivers/net/loopback.c index 0c13795dca38..b79d6e8d3045 100644 --- a/drivers/net/loopback.c +++ b/drivers/net/loopback.c | |||
@@ -172,7 +172,7 @@ static struct net_device_stats *get_stats(struct net_device *dev) | |||
172 | 172 | ||
173 | memset(stats, 0, sizeof(struct net_device_stats)); | 173 | memset(stats, 0, sizeof(struct net_device_stats)); |
174 | 174 | ||
175 | for_each_cpu(i) { | 175 | for_each_possible_cpu(i) { |
176 | struct net_device_stats *lb_stats; | 176 | struct net_device_stats *lb_stats; |
177 | 177 | ||
178 | lb_stats = &per_cpu(loopback_stats, i); | 178 | lb_stats = &per_cpu(loopback_stats, i); |
diff --git a/drivers/net/ns83820.c b/drivers/net/ns83820.c index 0fede50abd3e..8e9b1a537dee 100644 --- a/drivers/net/ns83820.c +++ b/drivers/net/ns83820.c | |||
@@ -1828,10 +1828,10 @@ static int __devinit ns83820_init_one(struct pci_dev *pci_dev, const struct pci_ | |||
1828 | int using_dac = 0; | 1828 | int using_dac = 0; |
1829 | 1829 | ||
1830 | /* See if we can set the dma mask early on; failure is fatal. */ | 1830 | /* See if we can set the dma mask early on; failure is fatal. */ |
1831 | if (sizeof(dma_addr_t) == 8 && | 1831 | if (sizeof(dma_addr_t) == 8 && |
1832 | !pci_set_dma_mask(pci_dev, 0xffffffffffffffffULL)) { | 1832 | !pci_set_dma_mask(pci_dev, DMA_64BIT_MASK)) { |
1833 | using_dac = 1; | 1833 | using_dac = 1; |
1834 | } else if (!pci_set_dma_mask(pci_dev, 0xffffffff)) { | 1834 | } else if (!pci_set_dma_mask(pci_dev, DMA_32BIT_MASK)) { |
1835 | using_dac = 0; | 1835 | using_dac = 0; |
1836 | } else { | 1836 | } else { |
1837 | printk(KERN_WARNING "ns83820.c: pci_set_dma_mask failed!\n"); | 1837 | printk(KERN_WARNING "ns83820.c: pci_set_dma_mask failed!\n"); |
diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c index 8429ceb01389..b82191d2bee1 100644 --- a/drivers/net/sis900.c +++ b/drivers/net/sis900.c | |||
@@ -2283,7 +2283,7 @@ static void set_rx_mode(struct net_device *net_dev) | |||
2283 | int i, table_entries; | 2283 | int i, table_entries; |
2284 | u32 rx_mode; | 2284 | u32 rx_mode; |
2285 | 2285 | ||
2286 | /* 635 Hash Table entires = 256(2^16) */ | 2286 | /* 635 Hash Table entries = 256(2^16) */ |
2287 | if((sis_priv->chipset_rev >= SIS635A_900_REV) || | 2287 | if((sis_priv->chipset_rev >= SIS635A_900_REV) || |
2288 | (sis_priv->chipset_rev == SIS900B_900_REV)) | 2288 | (sis_priv->chipset_rev == SIS900B_900_REV)) |
2289 | table_entries = 16; | 2289 | table_entries = 16; |
diff --git a/drivers/net/tulip/de4x5.c b/drivers/net/tulip/de4x5.c index ee48bfd67349..d1a86a080a65 100644 --- a/drivers/net/tulip/de4x5.c +++ b/drivers/net/tulip/de4x5.c | |||
@@ -513,7 +513,7 @@ struct mii_phy { | |||
513 | u_char *rst; /* Start of reset sequence in SROM */ | 513 | u_char *rst; /* Start of reset sequence in SROM */ |
514 | u_int mc; /* Media Capabilities */ | 514 | u_int mc; /* Media Capabilities */ |
515 | u_int ana; /* NWay Advertisement */ | 515 | u_int ana; /* NWay Advertisement */ |
516 | u_int fdx; /* Full DupleX capabilites for each media */ | 516 | u_int fdx; /* Full DupleX capabilities for each media */ |
517 | u_int ttm; /* Transmit Threshold Mode for each media */ | 517 | u_int ttm; /* Transmit Threshold Mode for each media */ |
518 | u_int mci; /* 21142 MII Connector Interrupt info */ | 518 | u_int mci; /* 21142 MII Connector Interrupt info */ |
519 | }; | 519 | }; |
diff --git a/drivers/net/tulip/pnic2.c b/drivers/net/tulip/pnic2.c index 55f4a9a631bc..ab985023fcca 100644 --- a/drivers/net/tulip/pnic2.c +++ b/drivers/net/tulip/pnic2.c | |||
@@ -199,7 +199,7 @@ void pnic2_lnk_change(struct net_device *dev, int csr5) | |||
199 | /* negotiation ended successfully */ | 199 | /* negotiation ended successfully */ |
200 | 200 | ||
201 | /* get the link partners reply and mask out all but | 201 | /* get the link partners reply and mask out all but |
202 | * bits 24-21 which show the partners capabilites | 202 | * bits 24-21 which show the partners capabilities |
203 | * and match those to what we advertised | 203 | * and match those to what we advertised |
204 | * | 204 | * |
205 | * then begin to interpret the results of the negotiation. | 205 | * then begin to interpret the results of the negotiation. |
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c index cde35dd87906..c1ce87a5f8d3 100644 --- a/drivers/net/typhoon.c +++ b/drivers/net/typhoon.c | |||
@@ -208,7 +208,7 @@ static const struct typhoon_card_info typhoon_card_info[] __devinitdata = { | |||
208 | }; | 208 | }; |
209 | 209 | ||
210 | /* Notes on the new subsystem numbering scheme: | 210 | /* Notes on the new subsystem numbering scheme: |
211 | * bits 0-1 indicate crypto capabilites: (0) variable, (1) DES, or (2) 3DES | 211 | * bits 0-1 indicate crypto capabilities: (0) variable, (1) DES, or (2) 3DES |
212 | * bit 4 indicates if this card has secured firmware (we don't support it) | 212 | * bit 4 indicates if this card has secured firmware (we don't support it) |
213 | * bit 8 indicates if this is a (0) copper or (1) fiber card | 213 | * bit 8 indicates if this is a (0) copper or (1) fiber card |
214 | * bits 12-16 indicate card type: (0) client and (1) server | 214 | * bits 12-16 indicate card type: (0) client and (1) server |
@@ -788,7 +788,7 @@ typhoon_start_tx(struct sk_buff *skb, struct net_device *dev) | |||
788 | /* we have two rings to choose from, but we only use txLo for now | 788 | /* we have two rings to choose from, but we only use txLo for now |
789 | * If we start using the Hi ring as well, we'll need to update | 789 | * If we start using the Hi ring as well, we'll need to update |
790 | * typhoon_stop_runtime(), typhoon_interrupt(), typhoon_num_free_tx(), | 790 | * typhoon_stop_runtime(), typhoon_interrupt(), typhoon_num_free_tx(), |
791 | * and TXHI_ENTIRES to match, as well as update the TSO code below | 791 | * and TXHI_ENTRIES to match, as well as update the TSO code below |
792 | * to get the right DMA address | 792 | * to get the right DMA address |
793 | */ | 793 | */ |
794 | txRing = &tp->txLoRing; | 794 | txRing = &tp->txLoRing; |
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c index 9d3b51c3ef54..29a756dd979b 100644 --- a/drivers/net/wan/wanxl.c +++ b/drivers/net/wan/wanxl.c | |||
@@ -577,8 +577,8 @@ static int __devinit wanxl_pci_init_one(struct pci_dev *pdev, | |||
577 | We set both dma_mask and consistent_dma_mask to 28 bits | 577 | We set both dma_mask and consistent_dma_mask to 28 bits |
578 | and pray pci_alloc_consistent() will use this info. It should | 578 | and pray pci_alloc_consistent() will use this info. It should |
579 | work on most platforms */ | 579 | work on most platforms */ |
580 | if (pci_set_consistent_dma_mask(pdev, 0x0FFFFFFF) || | 580 | if (pci_set_consistent_dma_mask(pdev, DMA_28BIT_MASK) || |
581 | pci_set_dma_mask(pdev, 0x0FFFFFFF)) { | 581 | pci_set_dma_mask(pdev, DMA_28BIT_MASK)) { |
582 | printk(KERN_ERR "wanXL: No usable DMA configuration\n"); | 582 | printk(KERN_ERR "wanXL: No usable DMA configuration\n"); |
583 | return -EIO; | 583 | return -EIO; |
584 | } | 584 | } |
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c index 6fd0bf736830..8dfdfbd5966c 100644 --- a/drivers/net/wireless/orinoco.c +++ b/drivers/net/wireless/orinoco.c | |||
@@ -3858,7 +3858,7 @@ static int orinoco_ioctl_setscan(struct net_device *dev, | |||
3858 | unsigned long flags; | 3858 | unsigned long flags; |
3859 | 3859 | ||
3860 | /* Note : you may have realised that, as this is a SET operation, | 3860 | /* Note : you may have realised that, as this is a SET operation, |
3861 | * this is priviledged and therefore a normal user can't | 3861 | * this is privileged and therefore a normal user can't |
3862 | * perform scanning. | 3862 | * perform scanning. |
3863 | * This is not an error, while the device perform scanning, | 3863 | * This is not an error, while the device perform scanning, |
3864 | * traffic doesn't flow, so it's a perfect DoS... | 3864 | * traffic doesn't flow, so it's a perfect DoS... |
diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index e5bb9f5ae429..989599ad33ef 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c | |||
@@ -747,7 +747,7 @@ prism54_get_essid(struct net_device *ndev, struct iw_request_info *info, | |||
747 | 747 | ||
748 | if (essid->length) { | 748 | if (essid->length) { |
749 | dwrq->flags = 1; /* set ESSID to ON for Wireless Extensions */ | 749 | dwrq->flags = 1; /* set ESSID to ON for Wireless Extensions */ |
750 | /* if it is to big, trunk it */ | 750 | /* if it is too big, trunk it */ |
751 | dwrq->length = min((u8)IW_ESSID_MAX_SIZE, essid->length); | 751 | dwrq->length = min((u8)IW_ESSID_MAX_SIZE, essid->length); |
752 | } else { | 752 | } else { |
753 | dwrq->flags = 0; | 753 | dwrq->flags = 0; |
diff --git a/drivers/net/wireless/prism54/islpci_hotplug.c b/drivers/net/wireless/prism54/islpci_hotplug.c index b41d666fea3c..bfa0cc319a09 100644 --- a/drivers/net/wireless/prism54/islpci_hotplug.c +++ b/drivers/net/wireless/prism54/islpci_hotplug.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/pci.h> | 22 | #include <linux/pci.h> |
23 | #include <linux/delay.h> | 23 | #include <linux/delay.h> |
24 | #include <linux/init.h> /* For __init, __exit */ | 24 | #include <linux/init.h> /* For __init, __exit */ |
25 | #include <linux/dma-mapping.h> | ||
25 | 26 | ||
26 | #include "prismcompat.h" | 27 | #include "prismcompat.h" |
27 | #include "islpci_dev.h" | 28 | #include "islpci_dev.h" |
@@ -124,7 +125,7 @@ prism54_probe(struct pci_dev *pdev, const struct pci_device_id *id) | |||
124 | } | 125 | } |
125 | 126 | ||
126 | /* enable PCI DMA */ | 127 | /* enable PCI DMA */ |
127 | if (pci_set_dma_mask(pdev, 0xffffffff)) { | 128 | if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) { |
128 | printk(KERN_ERR "%s: 32-bit PCI DMA not supported", DRV_NAME); | 129 | printk(KERN_ERR "%s: 32-bit PCI DMA not supported", DRV_NAME); |
129 | goto do_pci_disable_device; | 130 | goto do_pci_disable_device; |
130 | } | 131 | } |
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c index 330d3869b41e..fc4bc9b94c74 100644 --- a/drivers/oprofile/cpu_buffer.c +++ b/drivers/oprofile/cpu_buffer.c | |||
@@ -217,11 +217,10 @@ static void oprofile_end_trace(struct oprofile_cpu_buffer * cpu_buf) | |||
217 | cpu_buf->tracing = 0; | 217 | cpu_buf->tracing = 0; |
218 | } | 218 | } |
219 | 219 | ||
220 | void oprofile_add_sample(struct pt_regs * const regs, unsigned long event) | 220 | void oprofile_add_ext_sample(unsigned long pc, struct pt_regs * const regs, |
221 | unsigned long event, int is_kernel) | ||
221 | { | 222 | { |
222 | struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[smp_processor_id()]; | 223 | struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[smp_processor_id()]; |
223 | unsigned long pc = profile_pc(regs); | ||
224 | int is_kernel = !user_mode(regs); | ||
225 | 224 | ||
226 | if (!backtrace_depth) { | 225 | if (!backtrace_depth) { |
227 | log_sample(cpu_buf, pc, is_kernel, event); | 226 | log_sample(cpu_buf, pc, is_kernel, event); |
@@ -238,6 +237,14 @@ void oprofile_add_sample(struct pt_regs * const regs, unsigned long event) | |||
238 | oprofile_end_trace(cpu_buf); | 237 | oprofile_end_trace(cpu_buf); |
239 | } | 238 | } |
240 | 239 | ||
240 | void oprofile_add_sample(struct pt_regs * const regs, unsigned long event) | ||
241 | { | ||
242 | int is_kernel = !user_mode(regs); | ||
243 | unsigned long pc = profile_pc(regs); | ||
244 | |||
245 | oprofile_add_ext_sample(pc, regs, event, is_kernel); | ||
246 | } | ||
247 | |||
241 | void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event) | 248 | void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event) |
242 | { | 249 | { |
243 | struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[smp_processor_id()]; | 250 | struct oprofile_cpu_buffer * cpu_buf = &cpu_buffer[smp_processor_id()]; |
diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c index e94b1e4a2a84..f0acb661c253 100644 --- a/drivers/oprofile/oprofile_stats.c +++ b/drivers/oprofile/oprofile_stats.c | |||
@@ -22,7 +22,7 @@ void oprofile_reset_stats(void) | |||
22 | struct oprofile_cpu_buffer * cpu_buf; | 22 | struct oprofile_cpu_buffer * cpu_buf; |
23 | int i; | 23 | int i; |
24 | 24 | ||
25 | for_each_cpu(i) { | 25 | for_each_possible_cpu(i) { |
26 | cpu_buf = &cpu_buffer[i]; | 26 | cpu_buf = &cpu_buffer[i]; |
27 | cpu_buf->sample_received = 0; | 27 | cpu_buf->sample_received = 0; |
28 | cpu_buf->sample_lost_overflow = 0; | 28 | cpu_buf->sample_lost_overflow = 0; |
@@ -46,7 +46,7 @@ void oprofile_create_stats_files(struct super_block * sb, struct dentry * root) | |||
46 | if (!dir) | 46 | if (!dir) |
47 | return; | 47 | return; |
48 | 48 | ||
49 | for_each_cpu(i) { | 49 | for_each_possible_cpu(i) { |
50 | cpu_buf = &cpu_buffer[i]; | 50 | cpu_buf = &cpu_buffer[i]; |
51 | snprintf(buf, 10, "cpu%d", i); | 51 | snprintf(buf, 10, "cpu%d", i); |
52 | cpudir = oprofilefs_mkdir(sb, dir, buf); | 52 | cpudir = oprofilefs_mkdir(sb, dir, buf); |
diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c index d6bae699749a..b62da9b0cbf0 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c | |||
@@ -130,7 +130,7 @@ static struct file_operations ulong_ro_fops = { | |||
130 | 130 | ||
131 | 131 | ||
132 | static struct dentry * __oprofilefs_create_file(struct super_block * sb, | 132 | static struct dentry * __oprofilefs_create_file(struct super_block * sb, |
133 | struct dentry * root, char const * name, struct file_operations * fops, | 133 | struct dentry * root, char const * name, const struct file_operations * fops, |
134 | int perm) | 134 | int perm) |
135 | { | 135 | { |
136 | struct dentry * dentry; | 136 | struct dentry * dentry; |
@@ -203,7 +203,7 @@ int oprofilefs_create_ro_atomic(struct super_block * sb, struct dentry * root, | |||
203 | 203 | ||
204 | 204 | ||
205 | int oprofilefs_create_file(struct super_block * sb, struct dentry * root, | 205 | int oprofilefs_create_file(struct super_block * sb, struct dentry * root, |
206 | char const * name, struct file_operations * fops) | 206 | char const * name, const struct file_operations * fops) |
207 | { | 207 | { |
208 | if (!__oprofilefs_create_file(sb, root, name, fops, 0644)) | 208 | if (!__oprofilefs_create_file(sb, root, name, fops, 0644)) |
209 | return -EFAULT; | 209 | return -EFAULT; |
@@ -212,7 +212,7 @@ int oprofilefs_create_file(struct super_block * sb, struct dentry * root, | |||
212 | 212 | ||
213 | 213 | ||
214 | int oprofilefs_create_file_perm(struct super_block * sb, struct dentry * root, | 214 | int oprofilefs_create_file_perm(struct super_block * sb, struct dentry * root, |
215 | char const * name, struct file_operations * fops, int perm) | 215 | char const * name, const struct file_operations * fops, int perm) |
216 | { | 216 | { |
217 | if (!__oprofilefs_create_file(sb, root, name, fops, perm)) | 217 | if (!__oprofilefs_create_file(sb, root, name, fops, perm)) |
218 | return -EFAULT; | 218 | return -EFAULT; |
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c index 0ab26d01877b..0d2b447c50ed 100644 --- a/drivers/scsi/3w-9xxx.c +++ b/drivers/scsi/3w-9xxx.c | |||
@@ -1026,7 +1026,7 @@ static void twa_free_request_id(TW_Device_Extension *tw_dev, int request_id) | |||
1026 | tw_dev->free_tail = (tw_dev->free_tail + 1) % TW_Q_LENGTH; | 1026 | tw_dev->free_tail = (tw_dev->free_tail + 1) % TW_Q_LENGTH; |
1027 | } /* End twa_free_request_id() */ | 1027 | } /* End twa_free_request_id() */ |
1028 | 1028 | ||
1029 | /* This function will get parameter table entires from the firmware */ | 1029 | /* This function will get parameter table entries from the firmware */ |
1030 | static void *twa_get_param(TW_Device_Extension *tw_dev, int request_id, int table_id, int parameter_id, int parameter_size_bytes) | 1030 | static void *twa_get_param(TW_Device_Extension *tw_dev, int request_id, int table_id, int parameter_id, int parameter_size_bytes) |
1031 | { | 1031 | { |
1032 | TW_Command_Full *full_command_packet; | 1032 | TW_Command_Full *full_command_packet; |
diff --git a/drivers/scsi/BusLogic.c b/drivers/scsi/BusLogic.c index 1c459343292b..bde3d5834ade 100644 --- a/drivers/scsi/BusLogic.c +++ b/drivers/scsi/BusLogic.c | |||
@@ -41,6 +41,8 @@ | |||
41 | #include <linux/stat.h> | 41 | #include <linux/stat.h> |
42 | #include <linux/pci.h> | 42 | #include <linux/pci.h> |
43 | #include <linux/spinlock.h> | 43 | #include <linux/spinlock.h> |
44 | #include <linux/jiffies.h> | ||
45 | #include <linux/dma-mapping.h> | ||
44 | #include <scsi/scsicam.h> | 46 | #include <scsi/scsicam.h> |
45 | 47 | ||
46 | #include <asm/dma.h> | 48 | #include <asm/dma.h> |
@@ -676,7 +678,7 @@ static int __init BusLogic_InitializeMultiMasterProbeInfo(struct BusLogic_HostAd | |||
676 | if (pci_enable_device(PCI_Device)) | 678 | if (pci_enable_device(PCI_Device)) |
677 | continue; | 679 | continue; |
678 | 680 | ||
679 | if (pci_set_dma_mask(PCI_Device, (u64) 0xffffffff)) | 681 | if (pci_set_dma_mask(PCI_Device, DMA_32BIT_MASK )) |
680 | continue; | 682 | continue; |
681 | 683 | ||
682 | Bus = PCI_Device->bus->number; | 684 | Bus = PCI_Device->bus->number; |
@@ -831,7 +833,7 @@ static int __init BusLogic_InitializeMultiMasterProbeInfo(struct BusLogic_HostAd | |||
831 | if (pci_enable_device(PCI_Device)) | 833 | if (pci_enable_device(PCI_Device)) |
832 | continue; | 834 | continue; |
833 | 835 | ||
834 | if (pci_set_dma_mask(PCI_Device, (u64) 0xffffffff)) | 836 | if (pci_set_dma_mask(PCI_Device, DMA_32BIT_MASK)) |
835 | continue; | 837 | continue; |
836 | 838 | ||
837 | Bus = PCI_Device->bus->number; | 839 | Bus = PCI_Device->bus->number; |
@@ -885,7 +887,7 @@ static int __init BusLogic_InitializeFlashPointProbeInfo(struct BusLogic_HostAda | |||
885 | if (pci_enable_device(PCI_Device)) | 887 | if (pci_enable_device(PCI_Device)) |
886 | continue; | 888 | continue; |
887 | 889 | ||
888 | if (pci_set_dma_mask(PCI_Device, (u64) 0xffffffff)) | 890 | if (pci_set_dma_mask(PCI_Device, DMA_32BIT_MASK)) |
889 | continue; | 891 | continue; |
890 | 892 | ||
891 | Bus = PCI_Device->bus->number; | 893 | Bus = PCI_Device->bus->number; |
@@ -2896,7 +2898,7 @@ static int BusLogic_QueueCommand(struct scsi_cmnd *Command, void (*CompletionRou | |||
2896 | */ | 2898 | */ |
2897 | if (HostAdapter->ActiveCommands[TargetID] == 0) | 2899 | if (HostAdapter->ActiveCommands[TargetID] == 0) |
2898 | HostAdapter->LastSequencePoint[TargetID] = jiffies; | 2900 | HostAdapter->LastSequencePoint[TargetID] = jiffies; |
2899 | else if (jiffies - HostAdapter->LastSequencePoint[TargetID] > 4 * HZ) { | 2901 | else if (time_after(jiffies, HostAdapter->LastSequencePoint[TargetID] + 4 * HZ)) { |
2900 | HostAdapter->LastSequencePoint[TargetID] = jiffies; | 2902 | HostAdapter->LastSequencePoint[TargetID] = jiffies; |
2901 | QueueTag = BusLogic_OrderedQueueTag; | 2903 | QueueTag = BusLogic_OrderedQueueTag; |
2902 | } | 2904 | } |
diff --git a/drivers/scsi/a100u2w.c b/drivers/scsi/a100u2w.c index 9f45ae1745da..3dce21c78737 100644 --- a/drivers/scsi/a100u2w.c +++ b/drivers/scsi/a100u2w.c | |||
@@ -89,6 +89,7 @@ | |||
89 | #include <linux/string.h> | 89 | #include <linux/string.h> |
90 | #include <linux/ioport.h> | 90 | #include <linux/ioport.h> |
91 | #include <linux/slab.h> | 91 | #include <linux/slab.h> |
92 | #include <linux/dma-mapping.h> | ||
92 | 93 | ||
93 | #include <asm/io.h> | 94 | #include <asm/io.h> |
94 | #include <asm/irq.h> | 95 | #include <asm/irq.h> |
@@ -1052,7 +1053,7 @@ static int __devinit inia100_probe_one(struct pci_dev *pdev, | |||
1052 | 1053 | ||
1053 | if (pci_enable_device(pdev)) | 1054 | if (pci_enable_device(pdev)) |
1054 | goto out; | 1055 | goto out; |
1055 | if (pci_set_dma_mask(pdev, 0xffffffffULL)) { | 1056 | if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) { |
1056 | printk(KERN_WARNING "Unable to set 32bit DMA " | 1057 | printk(KERN_WARNING "Unable to set 32bit DMA " |
1057 | "on inia100 adapter, ignoring.\n"); | 1058 | "on inia100 adapter, ignoring.\n"); |
1058 | goto out_disable_device; | 1059 | goto out_disable_device; |
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c index a16f8ded8f1d..8df4a0ea3761 100644 --- a/drivers/scsi/aacraid/aachba.c +++ b/drivers/scsi/aacraid/aachba.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
33 | #include <linux/completion.h> | 33 | #include <linux/completion.h> |
34 | #include <linux/blkdev.h> | 34 | #include <linux/blkdev.h> |
35 | #include <linux/dma-mapping.h> | ||
35 | #include <asm/semaphore.h> | 36 | #include <asm/semaphore.h> |
36 | #include <asm/uaccess.h> | 37 | #include <asm/uaccess.h> |
37 | 38 | ||
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index c2596335549d..720330778648 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <linux/pci.h> | 45 | #include <linux/pci.h> |
46 | #include <linux/slab.h> | 46 | #include <linux/slab.h> |
47 | #include <linux/spinlock.h> | 47 | #include <linux/spinlock.h> |
48 | #include <linux/dma-mapping.h> | ||
48 | #include <linux/syscalls.h> | 49 | #include <linux/syscalls.h> |
49 | #include <linux/delay.h> | 50 | #include <linux/delay.h> |
50 | #include <linux/smp_lock.h> | 51 | #include <linux/smp_lock.h> |
@@ -806,8 +807,8 @@ static int __devinit aac_probe_one(struct pci_dev *pdev, | |||
806 | * to driver communication memory to be allocated below 2gig | 807 | * to driver communication memory to be allocated below 2gig |
807 | */ | 808 | */ |
808 | if (aac_drivers[index].quirks & AAC_QUIRK_31BIT) | 809 | if (aac_drivers[index].quirks & AAC_QUIRK_31BIT) |
809 | if (pci_set_dma_mask(pdev, 0x7FFFFFFFULL) || | 810 | if (pci_set_dma_mask(pdev, DMA_31BIT_MASK) || |
810 | pci_set_consistent_dma_mask(pdev, 0x7FFFFFFFULL)) | 811 | pci_set_consistent_dma_mask(pdev, DMA_31BIT_MASK)) |
811 | goto out; | 812 | goto out; |
812 | 813 | ||
813 | pci_set_master(pdev); | 814 | pci_set_master(pdev); |
diff --git a/drivers/scsi/atp870u.c b/drivers/scsi/atp870u.c index 5227a779c05c..a198d86667e9 100644 --- a/drivers/scsi/atp870u.c +++ b/drivers/scsi/atp870u.c | |||
@@ -28,6 +28,7 @@ | |||
28 | #include <linux/spinlock.h> | 28 | #include <linux/spinlock.h> |
29 | #include <linux/pci.h> | 29 | #include <linux/pci.h> |
30 | #include <linux/blkdev.h> | 30 | #include <linux/blkdev.h> |
31 | #include <linux/dma-mapping.h> | ||
31 | #include <asm/system.h> | 32 | #include <asm/system.h> |
32 | #include <asm/io.h> | 33 | #include <asm/io.h> |
33 | 34 | ||
@@ -2631,7 +2632,7 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
2631 | if (pci_enable_device(pdev)) | 2632 | if (pci_enable_device(pdev)) |
2632 | return -EIO; | 2633 | return -EIO; |
2633 | 2634 | ||
2634 | if (!pci_set_dma_mask(pdev, 0xFFFFFFFFUL)) { | 2635 | if (!pci_set_dma_mask(pdev, DMA_32BIT_MASK)) { |
2635 | printk(KERN_INFO "atp870u: use 32bit DMA mask.\n"); | 2636 | printk(KERN_INFO "atp870u: use 32bit DMA mask.\n"); |
2636 | } else { | 2637 | } else { |
2637 | printk(KERN_ERR "atp870u: DMA mask required but not available.\n"); | 2638 | printk(KERN_ERR "atp870u: DMA mask required but not available.\n"); |
diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c index 6e6b293dcb28..b1b704a42efd 100644 --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c | |||
@@ -57,6 +57,7 @@ MODULE_DESCRIPTION("Adaptec I2O RAID Driver"); | |||
57 | #include <linux/reboot.h> | 57 | #include <linux/reboot.h> |
58 | #include <linux/spinlock.h> | 58 | #include <linux/spinlock.h> |
59 | #include <linux/smp_lock.h> | 59 | #include <linux/smp_lock.h> |
60 | #include <linux/dma-mapping.h> | ||
60 | 61 | ||
61 | #include <linux/timer.h> | 62 | #include <linux/timer.h> |
62 | #include <linux/string.h> | 63 | #include <linux/string.h> |
@@ -906,8 +907,8 @@ static int adpt_install_hba(struct scsi_host_template* sht, struct pci_dev* pDev | |||
906 | } | 907 | } |
907 | 908 | ||
908 | pci_set_master(pDev); | 909 | pci_set_master(pDev); |
909 | if (pci_set_dma_mask(pDev, 0xffffffffffffffffULL) && | 910 | if (pci_set_dma_mask(pDev, DMA_64BIT_MASK) && |
910 | pci_set_dma_mask(pDev, 0xffffffffULL)) | 911 | pci_set_dma_mask(pDev, DMA_32BIT_MASK)) |
911 | return -EINVAL; | 912 | return -EINVAL; |
912 | 913 | ||
913 | base_addr0_phys = pci_resource_start(pDev,0); | 914 | base_addr0_phys = pci_resource_start(pDev,0); |
diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c index b3f9de8f7595..059eeee4b554 100644 --- a/drivers/scsi/eata.c +++ b/drivers/scsi/eata.c | |||
@@ -490,6 +490,7 @@ | |||
490 | #include <linux/init.h> | 490 | #include <linux/init.h> |
491 | #include <linux/ctype.h> | 491 | #include <linux/ctype.h> |
492 | #include <linux/spinlock.h> | 492 | #include <linux/spinlock.h> |
493 | #include <linux/dma-mapping.h> | ||
493 | #include <asm/byteorder.h> | 494 | #include <asm/byteorder.h> |
494 | #include <asm/dma.h> | 495 | #include <asm/dma.h> |
495 | #include <asm/io.h> | 496 | #include <asm/io.h> |
@@ -1426,7 +1427,7 @@ static int port_detect(unsigned long port_base, unsigned int j, | |||
1426 | 1427 | ||
1427 | if (ha->pdev) { | 1428 | if (ha->pdev) { |
1428 | pci_set_master(ha->pdev); | 1429 | pci_set_master(ha->pdev); |
1429 | if (pci_set_dma_mask(ha->pdev, 0xffffffff)) | 1430 | if (pci_set_dma_mask(ha->pdev, DMA_32BIT_MASK)) |
1430 | printk("%s: warning, pci_set_dma_mask failed.\n", | 1431 | printk("%s: warning, pci_set_dma_mask failed.\n", |
1431 | ha->board_name); | 1432 | ha->board_name); |
1432 | } | 1433 | } |
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index 7f7013e80a88..d5740bbdef3e 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c | |||
@@ -388,6 +388,7 @@ | |||
388 | #include <linux/proc_fs.h> | 388 | #include <linux/proc_fs.h> |
389 | #include <linux/time.h> | 389 | #include <linux/time.h> |
390 | #include <linux/timer.h> | 390 | #include <linux/timer.h> |
391 | #include <linux/dma-mapping.h> | ||
391 | #ifdef GDTH_RTC | 392 | #ifdef GDTH_RTC |
392 | #include <linux/mc146818rtc.h> | 393 | #include <linux/mc146818rtc.h> |
393 | #endif | 394 | #endif |
@@ -4527,15 +4528,15 @@ static int __init gdth_detect(struct scsi_host_template *shtp) | |||
4527 | if (!(ha->cache_feat & ha->raw_feat & ha->screen_feat &GDT_64BIT)|| | 4528 | if (!(ha->cache_feat & ha->raw_feat & ha->screen_feat &GDT_64BIT)|| |
4528 | /* 64-bit DMA only supported from FW >= x.43 */ | 4529 | /* 64-bit DMA only supported from FW >= x.43 */ |
4529 | (!ha->dma64_support)) { | 4530 | (!ha->dma64_support)) { |
4530 | if (pci_set_dma_mask(pcistr[ctr].pdev, 0xffffffff)) { | 4531 | if (pci_set_dma_mask(pcistr[ctr].pdev, DMA_32BIT_MASK)) { |
4531 | printk(KERN_WARNING "GDT-PCI %d: Unable to set 32-bit DMA\n", hanum); | 4532 | printk(KERN_WARNING "GDT-PCI %d: Unable to set 32-bit DMA\n", hanum); |
4532 | err = TRUE; | 4533 | err = TRUE; |
4533 | } | 4534 | } |
4534 | } else { | 4535 | } else { |
4535 | shp->max_cmd_len = 16; | 4536 | shp->max_cmd_len = 16; |
4536 | if (!pci_set_dma_mask(pcistr[ctr].pdev, 0xffffffffffffffffULL)) { | 4537 | if (!pci_set_dma_mask(pcistr[ctr].pdev, DMA_64BIT_MASK)) { |
4537 | printk("GDT-PCI %d: 64-bit DMA enabled\n", hanum); | 4538 | printk("GDT-PCI %d: 64-bit DMA enabled\n", hanum); |
4538 | } else if (pci_set_dma_mask(pcistr[ctr].pdev, 0xffffffff)) { | 4539 | } else if (pci_set_dma_mask(pcistr[ctr].pdev, DMA_32BIT_MASK)) { |
4539 | printk(KERN_WARNING "GDT-PCI %d: Unable to set 64/32-bit DMA\n", hanum); | 4540 | printk(KERN_WARNING "GDT-PCI %d: Unable to set 64/32-bit DMA\n", hanum); |
4540 | err = TRUE; | 4541 | err = TRUE; |
4541 | } | 4542 | } |
diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c index ea6f3c0e05d9..0cc7f65b584f 100644 --- a/drivers/scsi/initio.c +++ b/drivers/scsi/initio.c | |||
@@ -127,6 +127,7 @@ | |||
127 | #include <linux/sched.h> | 127 | #include <linux/sched.h> |
128 | #include <linux/slab.h> | 128 | #include <linux/slab.h> |
129 | #include <linux/jiffies.h> | 129 | #include <linux/jiffies.h> |
130 | #include <linux/dma-mapping.h> | ||
130 | #include <asm/io.h> | 131 | #include <asm/io.h> |
131 | 132 | ||
132 | #include <scsi/scsi.h> | 133 | #include <scsi/scsi.h> |
@@ -2780,7 +2781,7 @@ static int tul_NewReturnNumberOfAdapters(void) | |||
2780 | if (((dRegValue & 0xFF00) >> 8) == 0xFF) | 2781 | if (((dRegValue & 0xFF00) >> 8) == 0xFF) |
2781 | dRegValue = 0; | 2782 | dRegValue = 0; |
2782 | wBIOS = (wBIOS << 8) + ((UWORD) ((dRegValue & 0xFF00) >> 8)); | 2783 | wBIOS = (wBIOS << 8) + ((UWORD) ((dRegValue & 0xFF00) >> 8)); |
2783 | if (pci_set_dma_mask(pDev, 0xffffffff)) { | 2784 | if (pci_set_dma_mask(pDev, DMA_32BIT_MASK)) { |
2784 | printk(KERN_WARNING | 2785 | printk(KERN_WARNING |
2785 | "i91u: Could not set 32 bit DMA mask\n"); | 2786 | "i91u: Could not set 32 bit DMA mask\n"); |
2786 | continue; | 2787 | continue; |
diff --git a/drivers/scsi/ips.c b/drivers/scsi/ips.c index 481708d527ae..a4c0b04cfdbd 100644 --- a/drivers/scsi/ips.c +++ b/drivers/scsi/ips.c | |||
@@ -179,6 +179,7 @@ | |||
179 | 179 | ||
180 | #include <linux/blkdev.h> | 180 | #include <linux/blkdev.h> |
181 | #include <linux/types.h> | 181 | #include <linux/types.h> |
182 | #include <linux/dma-mapping.h> | ||
182 | 183 | ||
183 | #include <scsi/sg.h> | 184 | #include <scsi/sg.h> |
184 | 185 | ||
@@ -7284,10 +7285,10 @@ ips_init_phase1(struct pci_dev *pci_dev, int *indexPtr) | |||
7284 | * are guaranteed to be < 4G. | 7285 | * are guaranteed to be < 4G. |
7285 | */ | 7286 | */ |
7286 | if (IPS_ENABLE_DMA64 && IPS_HAS_ENH_SGLIST(ha) && | 7287 | if (IPS_ENABLE_DMA64 && IPS_HAS_ENH_SGLIST(ha) && |
7287 | !pci_set_dma_mask(ha->pcidev, 0xffffffffffffffffULL)) { | 7288 | !pci_set_dma_mask(ha->pcidev, DMA_64BIT_MASK)) { |
7288 | (ha)->flags |= IPS_HA_ENH_SG; | 7289 | (ha)->flags |= IPS_HA_ENH_SG; |
7289 | } else { | 7290 | } else { |
7290 | if (pci_set_dma_mask(ha->pcidev, 0xffffffffULL) != 0) { | 7291 | if (pci_set_dma_mask(ha->pcidev, DMA_32BIT_MASK) != 0) { |
7291 | printk(KERN_WARNING "Unable to set DMA Mask\n"); | 7292 | printk(KERN_WARNING "Unable to set DMA Mask\n"); |
7292 | return ips_abort_init(ha, index); | 7293 | return ips_abort_init(ha, index); |
7293 | } | 7294 | } |
diff --git a/drivers/scsi/megaraid.c b/drivers/scsi/megaraid.c index 7144674bc8e6..80b68a2481b3 100644 --- a/drivers/scsi/megaraid.c +++ b/drivers/scsi/megaraid.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <linux/interrupt.h> | 45 | #include <linux/interrupt.h> |
46 | #include <linux/pci.h> | 46 | #include <linux/pci.h> |
47 | #include <linux/init.h> | 47 | #include <linux/init.h> |
48 | #include <linux/dma-mapping.h> | ||
48 | #include <scsi/scsicam.h> | 49 | #include <scsi/scsicam.h> |
49 | 50 | ||
50 | #include "scsi.h" | 51 | #include "scsi.h" |
@@ -2094,7 +2095,7 @@ make_local_pdev(adapter_t *adapter, struct pci_dev **pdev) | |||
2094 | 2095 | ||
2095 | memcpy(*pdev, adapter->dev, sizeof(struct pci_dev)); | 2096 | memcpy(*pdev, adapter->dev, sizeof(struct pci_dev)); |
2096 | 2097 | ||
2097 | if( pci_set_dma_mask(*pdev, 0xffffffff) != 0 ) { | 2098 | if( pci_set_dma_mask(*pdev, DMA_32BIT_MASK) != 0 ) { |
2098 | kfree(*pdev); | 2099 | kfree(*pdev); |
2099 | return -1; | 2100 | return -1; |
2100 | } | 2101 | } |
@@ -4859,10 +4860,10 @@ megaraid_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
4859 | 4860 | ||
4860 | /* Set the Mode of addressing to 64 bit if we can */ | 4861 | /* Set the Mode of addressing to 64 bit if we can */ |
4861 | if ((adapter->flag & BOARD_64BIT) && (sizeof(dma_addr_t) == 8)) { | 4862 | if ((adapter->flag & BOARD_64BIT) && (sizeof(dma_addr_t) == 8)) { |
4862 | pci_set_dma_mask(pdev, 0xffffffffffffffffULL); | 4863 | pci_set_dma_mask(pdev, DMA_64BIT_MASK); |
4863 | adapter->has_64bit_addr = 1; | 4864 | adapter->has_64bit_addr = 1; |
4864 | } else { | 4865 | } else { |
4865 | pci_set_dma_mask(pdev, 0xffffffff); | 4866 | pci_set_dma_mask(pdev, DMA_32BIT_MASK); |
4866 | adapter->has_64bit_addr = 0; | 4867 | adapter->has_64bit_addr = 0; |
4867 | } | 4868 | } |
4868 | 4869 | ||
diff --git a/drivers/scsi/nsp32.c b/drivers/scsi/nsp32.c index a279ebb61447..30ee0ef4b459 100644 --- a/drivers/scsi/nsp32.c +++ b/drivers/scsi/nsp32.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/pci.h> | 38 | #include <linux/pci.h> |
39 | #include <linux/delay.h> | 39 | #include <linux/delay.h> |
40 | #include <linux/ctype.h> | 40 | #include <linux/ctype.h> |
41 | #include <linux/dma-mapping.h> | ||
41 | 42 | ||
42 | #include <asm/dma.h> | 43 | #include <asm/dma.h> |
43 | #include <asm/system.h> | 44 | #include <asm/system.h> |
@@ -2776,7 +2777,7 @@ static int nsp32_detect(struct scsi_host_template *sht) | |||
2776 | /* | 2777 | /* |
2777 | * setup DMA | 2778 | * setup DMA |
2778 | */ | 2779 | */ |
2779 | if (pci_set_dma_mask(PCIDEV, 0xffffffffUL) != 0) { | 2780 | if (pci_set_dma_mask(PCIDEV, DMA_32BIT_MASK) != 0) { |
2780 | nsp32_msg (KERN_ERR, "failed to set PCI DMA mask"); | 2781 | nsp32_msg (KERN_ERR, "failed to set PCI DMA mask"); |
2781 | goto scsi_unregister; | 2782 | goto scsi_unregister; |
2782 | } | 2783 | } |
diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c index 66ea47a9c53c..e3bd4bc339f4 100644 --- a/drivers/scsi/osst.c +++ b/drivers/scsi/osst.c | |||
@@ -49,6 +49,7 @@ static const char * osst_version = "0.99.4"; | |||
49 | #include <linux/blkdev.h> | 49 | #include <linux/blkdev.h> |
50 | #include <linux/moduleparam.h> | 50 | #include <linux/moduleparam.h> |
51 | #include <linux/delay.h> | 51 | #include <linux/delay.h> |
52 | #include <linux/jiffies.h> | ||
52 | #include <asm/uaccess.h> | 53 | #include <asm/uaccess.h> |
53 | #include <asm/dma.h> | 54 | #include <asm/dma.h> |
54 | #include <asm/system.h> | 55 | #include <asm/system.h> |
@@ -856,7 +857,7 @@ static int osst_wait_frame(struct osst_tape * STp, struct osst_request ** aSRpnt | |||
856 | ) && result >= 0) | 857 | ) && result >= 0) |
857 | { | 858 | { |
858 | #if DEBUG | 859 | #if DEBUG |
859 | if (debugging || jiffies - startwait >= 2*HZ/OSST_POLL_PER_SEC) | 860 | if (debugging || time_after_eq(jiffies, startwait + 2*HZ/OSST_POLL_PER_SEC)) |
860 | printk (OSST_DEB_MSG | 861 | printk (OSST_DEB_MSG |
861 | "%s:D: Succ wait f fr %i (>%i): %i-%i %i (%i): %3li.%li s\n", | 862 | "%s:D: Succ wait f fr %i (>%i): %i-%i %i (%i): %3li.%li s\n", |
862 | name, curr, curr+minlast, STp->first_frame_position, | 863 | name, curr, curr+minlast, STp->first_frame_position, |
@@ -867,7 +868,7 @@ static int osst_wait_frame(struct osst_tape * STp, struct osst_request ** aSRpnt | |||
867 | return 0; | 868 | return 0; |
868 | } | 869 | } |
869 | #if DEBUG | 870 | #if DEBUG |
870 | if (jiffies - startwait >= 2*HZ/OSST_POLL_PER_SEC && notyetprinted) | 871 | if (time_after_eq(jiffies, startwait + 2*HZ/OSST_POLL_PER_SEC) && notyetprinted) |
871 | { | 872 | { |
872 | printk (OSST_DEB_MSG "%s:D: Wait for frame %i (>%i): %i-%i %i (%i)\n", | 873 | printk (OSST_DEB_MSG "%s:D: Wait for frame %i (>%i): %i-%i %i (%i)\n", |
873 | name, curr, curr+minlast, STp->first_frame_position, | 874 | name, curr, curr+minlast, STp->first_frame_position, |
diff --git a/drivers/scsi/ppa.c b/drivers/scsi/ppa.c index 05347eed9dd5..fee843fab1c7 100644 --- a/drivers/scsi/ppa.c +++ b/drivers/scsi/ppa.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/parport.h> | 18 | #include <linux/parport.h> |
19 | #include <linux/workqueue.h> | 19 | #include <linux/workqueue.h> |
20 | #include <linux/delay.h> | 20 | #include <linux/delay.h> |
21 | #include <linux/jiffies.h> | ||
21 | #include <asm/io.h> | 22 | #include <asm/io.h> |
22 | 23 | ||
23 | #include <scsi/scsi.h> | 24 | #include <scsi/scsi.h> |
@@ -726,7 +727,7 @@ static int ppa_engine(ppa_struct *dev, struct scsi_cmnd *cmd) | |||
726 | retv--; | 727 | retv--; |
727 | 728 | ||
728 | if (retv) { | 729 | if (retv) { |
729 | if ((jiffies - dev->jstart) > (1 * HZ)) { | 730 | if (time_after(jiffies, dev->jstart + (1 * HZ))) { |
730 | printk | 731 | printk |
731 | ("ppa: Parallel port cable is unplugged!!\n"); | 732 | ("ppa: Parallel port cable is unplugged!!\n"); |
732 | ppa_fail(dev, DID_BUS_BUSY); | 733 | ppa_fail(dev, DID_BUS_BUSY); |
diff --git a/drivers/scsi/qla1280.c b/drivers/scsi/qla1280.c index e0230249fa0f..5a48e55f9418 100644 --- a/drivers/scsi/qla1280.c +++ b/drivers/scsi/qla1280.c | |||
@@ -350,6 +350,7 @@ | |||
350 | #include <linux/pci_ids.h> | 350 | #include <linux/pci_ids.h> |
351 | #include <linux/interrupt.h> | 351 | #include <linux/interrupt.h> |
352 | #include <linux/init.h> | 352 | #include <linux/init.h> |
353 | #include <linux/dma-mapping.h> | ||
353 | 354 | ||
354 | #include <asm/io.h> | 355 | #include <asm/io.h> |
355 | #include <asm/irq.h> | 356 | #include <asm/irq.h> |
@@ -4321,7 +4322,7 @@ qla1280_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
4321 | 4322 | ||
4322 | #ifdef QLA_64BIT_PTR | 4323 | #ifdef QLA_64BIT_PTR |
4323 | if (pci_set_dma_mask(ha->pdev, (dma_addr_t) ~ 0ULL)) { | 4324 | if (pci_set_dma_mask(ha->pdev, (dma_addr_t) ~ 0ULL)) { |
4324 | if (pci_set_dma_mask(ha->pdev, 0xffffffff)) { | 4325 | if (pci_set_dma_mask(ha->pdev, DMA_32BIT_MASK)) { |
4325 | printk(KERN_WARNING "scsi(%li): Unable to set a " | 4326 | printk(KERN_WARNING "scsi(%li): Unable to set a " |
4326 | "suitable DMA mask - aborting\n", ha->host_no); | 4327 | "suitable DMA mask - aborting\n", ha->host_no); |
4327 | error = -ENODEV; | 4328 | error = -ENODEV; |
@@ -4331,7 +4332,7 @@ qla1280_probe_one(struct pci_dev *pdev, const struct pci_device_id *id) | |||
4331 | dprintk(2, "scsi(%li): 64 Bit PCI Addressing Enabled\n", | 4332 | dprintk(2, "scsi(%li): 64 Bit PCI Addressing Enabled\n", |
4332 | ha->host_no); | 4333 | ha->host_no); |
4333 | #else | 4334 | #else |
4334 | if (pci_set_dma_mask(ha->pdev, 0xffffffff)) { | 4335 | if (pci_set_dma_mask(ha->pdev, DMA_32BIT_MASK)) { |
4335 | printk(KERN_WARNING "scsi(%li): Unable to set a " | 4336 | printk(KERN_WARNING "scsi(%li): Unable to set a " |
4336 | "suitable DMA mask - aborting\n", ha->host_no); | 4337 | "suitable DMA mask - aborting\n", ha->host_no); |
4337 | error = -ENODEV; | 4338 | error = -ENODEV; |
diff --git a/drivers/scsi/qlogicfc.c b/drivers/scsi/qlogicfc.c index 94ef3f08d378..52b224a5d6fd 100644 --- a/drivers/scsi/qlogicfc.c +++ b/drivers/scsi/qlogicfc.c | |||
@@ -61,6 +61,8 @@ | |||
61 | #include <linux/unistd.h> | 61 | #include <linux/unistd.h> |
62 | #include <linux/spinlock.h> | 62 | #include <linux/spinlock.h> |
63 | #include <linux/interrupt.h> | 63 | #include <linux/interrupt.h> |
64 | #include <linux/dma-mapping.h> | ||
65 | #include <linux/jiffies.h> | ||
64 | #include <asm/io.h> | 66 | #include <asm/io.h> |
65 | #include <asm/irq.h> | 67 | #include <asm/irq.h> |
66 | #include "scsi.h" | 68 | #include "scsi.h" |
@@ -737,8 +739,8 @@ static int isp2x00_detect(struct scsi_host_template * tmpt) | |||
737 | continue; | 739 | continue; |
738 | 740 | ||
739 | /* Try to configure DMA attributes. */ | 741 | /* Try to configure DMA attributes. */ |
740 | if (pci_set_dma_mask(pdev, 0xffffffffffffffffULL) && | 742 | if (pci_set_dma_mask(pdev, DMA_64BIT_MASK) && |
741 | pci_set_dma_mask(pdev, 0xffffffffULL)) | 743 | pci_set_dma_mask(pdev, DMA_32BIT_MASK)) |
742 | continue; | 744 | continue; |
743 | 745 | ||
744 | host = scsi_register(tmpt, sizeof(struct isp2x00_hostdata)); | 746 | host = scsi_register(tmpt, sizeof(struct isp2x00_hostdata)); |
@@ -1325,7 +1327,7 @@ static int isp2x00_queuecommand(Scsi_Cmnd * Cmnd, void (*done) (Scsi_Cmnd *)) | |||
1325 | cmd->control_flags = cpu_to_le16(CFLAG_READ); | 1327 | cmd->control_flags = cpu_to_le16(CFLAG_READ); |
1326 | 1328 | ||
1327 | if (Cmnd->device->tagged_supported) { | 1329 | if (Cmnd->device->tagged_supported) { |
1328 | if ((jiffies - hostdata->tag_ages[Cmnd->device->id]) > (2 * ISP_TIMEOUT)) { | 1330 | if (time_after(jiffies, hostdata->tag_ages[Cmnd->device->id] + (2 * ISP_TIMEOUT))) { |
1329 | cmd->control_flags |= cpu_to_le16(CFLAG_ORDERED_TAG); | 1331 | cmd->control_flags |= cpu_to_le16(CFLAG_ORDERED_TAG); |
1330 | hostdata->tag_ages[Cmnd->device->id] = jiffies; | 1332 | hostdata->tag_ages[Cmnd->device->id] = jiffies; |
1331 | } else | 1333 | } else |
diff --git a/drivers/scsi/qlogicpti.c b/drivers/scsi/qlogicpti.c index 1fd5fc6d0fe3..c7e78dcf09df 100644 --- a/drivers/scsi/qlogicpti.c +++ b/drivers/scsi/qlogicpti.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/spinlock.h> | 24 | #include <linux/spinlock.h> |
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/module.h> | 26 | #include <linux/module.h> |
27 | #include <linux/jiffies.h> | ||
27 | 28 | ||
28 | #include <asm/byteorder.h> | 29 | #include <asm/byteorder.h> |
29 | 30 | ||
@@ -1017,7 +1018,7 @@ static inline void cmd_frob(struct Command_Entry *cmd, struct scsi_cmnd *Cmnd, | |||
1017 | if (Cmnd->device->tagged_supported) { | 1018 | if (Cmnd->device->tagged_supported) { |
1018 | if (qpti->cmd_count[Cmnd->device->id] == 0) | 1019 | if (qpti->cmd_count[Cmnd->device->id] == 0) |
1019 | qpti->tag_ages[Cmnd->device->id] = jiffies; | 1020 | qpti->tag_ages[Cmnd->device->id] = jiffies; |
1020 | if ((jiffies - qpti->tag_ages[Cmnd->device->id]) > (5*HZ)) { | 1021 | if (time_after(jiffies, qpti->tag_ages[Cmnd->device->id] + (5*HZ))) { |
1021 | cmd->control_flags = CFLAG_ORDERED_TAG; | 1022 | cmd->control_flags = CFLAG_ORDERED_TAG; |
1022 | qpti->tag_ages[Cmnd->device->id] = jiffies; | 1023 | qpti->tag_ages[Cmnd->device->id] = jiffies; |
1023 | } else | 1024 | } else |
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 5996d3cd0ed8..674b15c78f68 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -1528,7 +1528,7 @@ static int serial8250_startup(struct uart_port *port) | |||
1528 | 1528 | ||
1529 | /* | 1529 | /* |
1530 | * Clear the FIFO buffers and disable them. | 1530 | * Clear the FIFO buffers and disable them. |
1531 | * (they will be reeanbled in set_termios()) | 1531 | * (they will be reenabled in set_termios()) |
1532 | */ | 1532 | */ |
1533 | serial8250_clear_fifos(up); | 1533 | serial8250_clear_fifos(up); |
1534 | 1534 | ||
diff --git a/drivers/serial/serial_txx9.c b/drivers/serial/serial_txx9.c index b848b7d94412..3bdee64d1a99 100644 --- a/drivers/serial/serial_txx9.c +++ b/drivers/serial/serial_txx9.c | |||
@@ -483,7 +483,7 @@ static int serial_txx9_startup(struct uart_port *port) | |||
483 | 483 | ||
484 | /* | 484 | /* |
485 | * Clear the FIFO buffers and disable them. | 485 | * Clear the FIFO buffers and disable them. |
486 | * (they will be reeanbled in set_termios()) | 486 | * (they will be reenabled in set_termios()) |
487 | */ | 487 | */ |
488 | sio_set(up, TXX9_SIFCR, | 488 | sio_set(up, TXX9_SIFCR, |
489 | TXX9_SIFCR_TFRST | TXX9_SIFCR_RFRST | TXX9_SIFCR_FRSTE); | 489 | TXX9_SIFCR_TFRST | TXX9_SIFCR_RFRST | TXX9_SIFCR_FRSTE); |
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c index 9fe2283d91e5..1c4396c2962d 100644 --- a/drivers/serial/sunsu.c +++ b/drivers/serial/sunsu.c | |||
@@ -641,7 +641,7 @@ static int sunsu_startup(struct uart_port *port) | |||
641 | 641 | ||
642 | /* | 642 | /* |
643 | * Clear the FIFO buffers and disable them. | 643 | * Clear the FIFO buffers and disable them. |
644 | * (they will be reeanbled in set_termios()) | 644 | * (they will be reenabled in set_termios()) |
645 | */ | 645 | */ |
646 | if (uart_config[up->port.type].flags & UART_CLEAR_FIFO) { | 646 | if (uart_config[up->port.type].flags & UART_CLEAR_FIFO) { |
647 | serial_outp(up, UART_FCR, UART_FCR_ENABLE_FIFO); | 647 | serial_outp(up, UART_FCR, UART_FCR_ENABLE_FIFO); |
diff --git a/drivers/telephony/phonedev.c b/drivers/telephony/phonedev.c index 7a6db1c5c8c5..e166fffea86b 100644 --- a/drivers/telephony/phonedev.c +++ b/drivers/telephony/phonedev.c | |||
@@ -49,7 +49,7 @@ static int phone_open(struct inode *inode, struct file *file) | |||
49 | unsigned int minor = iminor(inode); | 49 | unsigned int minor = iminor(inode); |
50 | int err = 0; | 50 | int err = 0; |
51 | struct phone_device *p; | 51 | struct phone_device *p; |
52 | struct file_operations *old_fops, *new_fops = NULL; | 52 | const struct file_operations *old_fops, *new_fops = NULL; |
53 | 53 | ||
54 | if (minor >= PHONE_NUM_DEVICES) | 54 | if (minor >= PHONE_NUM_DEVICES) |
55 | return -ENODEV; | 55 | return -ENODEV; |
diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c index 37b13368c814..b263a54a13c0 100644 --- a/drivers/usb/core/file.c +++ b/drivers/usb/core/file.c | |||
@@ -24,15 +24,15 @@ | |||
24 | #include "usb.h" | 24 | #include "usb.h" |
25 | 25 | ||
26 | #define MAX_USB_MINORS 256 | 26 | #define MAX_USB_MINORS 256 |
27 | static struct file_operations *usb_minors[MAX_USB_MINORS]; | 27 | static const struct file_operations *usb_minors[MAX_USB_MINORS]; |
28 | static DEFINE_SPINLOCK(minor_lock); | 28 | static DEFINE_SPINLOCK(minor_lock); |
29 | 29 | ||
30 | static int usb_open(struct inode * inode, struct file * file) | 30 | static int usb_open(struct inode * inode, struct file * file) |
31 | { | 31 | { |
32 | int minor = iminor(inode); | 32 | int minor = iminor(inode); |
33 | struct file_operations *c; | 33 | const struct file_operations *c; |
34 | int err = -ENODEV; | 34 | int err = -ENODEV; |
35 | struct file_operations *old_fops, *new_fops = NULL; | 35 | const struct file_operations *old_fops, *new_fops = NULL; |
36 | 36 | ||
37 | spin_lock (&minor_lock); | 37 | spin_lock (&minor_lock); |
38 | c = usb_minors[minor]; | 38 | c = usb_minors[minor]; |
diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c index b44cfda76b61..3f618ce6998d 100644 --- a/drivers/usb/gadget/inode.c +++ b/drivers/usb/gadget/inode.c | |||
@@ -1581,7 +1581,7 @@ restart: | |||
1581 | 1581 | ||
1582 | static struct inode * | 1582 | static struct inode * |
1583 | gadgetfs_create_file (struct super_block *sb, char const *name, | 1583 | gadgetfs_create_file (struct super_block *sb, char const *name, |
1584 | void *data, struct file_operations *fops, | 1584 | void *data, const struct file_operations *fops, |
1585 | struct dentry **dentry_p); | 1585 | struct dentry **dentry_p); |
1586 | 1586 | ||
1587 | static int activate_ep_files (struct dev_data *dev) | 1587 | static int activate_ep_files (struct dev_data *dev) |
@@ -1955,7 +1955,7 @@ module_param (default_perm, uint, 0644); | |||
1955 | 1955 | ||
1956 | static struct inode * | 1956 | static struct inode * |
1957 | gadgetfs_make_inode (struct super_block *sb, | 1957 | gadgetfs_make_inode (struct super_block *sb, |
1958 | void *data, struct file_operations *fops, | 1958 | void *data, const struct file_operations *fops, |
1959 | int mode) | 1959 | int mode) |
1960 | { | 1960 | { |
1961 | struct inode *inode = new_inode (sb); | 1961 | struct inode *inode = new_inode (sb); |
@@ -1979,7 +1979,7 @@ gadgetfs_make_inode (struct super_block *sb, | |||
1979 | */ | 1979 | */ |
1980 | static struct inode * | 1980 | static struct inode * |
1981 | gadgetfs_create_file (struct super_block *sb, char const *name, | 1981 | gadgetfs_create_file (struct super_block *sb, char const *name, |
1982 | void *data, struct file_operations *fops, | 1982 | void *data, const struct file_operations *fops, |
1983 | struct dentry **dentry_p) | 1983 | struct dentry **dentry_p) |
1984 | { | 1984 | { |
1985 | struct dentry *dentry; | 1985 | struct dentry *dentry; |
diff --git a/drivers/usb/host/ohci-s3c2410.c b/drivers/usb/host/ohci-s3c2410.c index 372527a83593..682bf2215660 100644 --- a/drivers/usb/host/ohci-s3c2410.c +++ b/drivers/usb/host/ohci-s3c2410.c | |||
@@ -158,7 +158,7 @@ static int ohci_s3c2410_hub_control ( | |||
158 | "s3c2410_hub_control(%p,0x%04x,0x%04x,0x%04x,%p,%04x)\n", | 158 | "s3c2410_hub_control(%p,0x%04x,0x%04x,0x%04x,%p,%04x)\n", |
159 | hcd, typeReq, wValue, wIndex, buf, wLength); | 159 | hcd, typeReq, wValue, wIndex, buf, wLength); |
160 | 160 | ||
161 | /* if we are only an humble host without any special capabilites | 161 | /* if we are only an humble host without any special capabilities |
162 | * process the request straight away and exit */ | 162 | * process the request straight away and exit */ |
163 | 163 | ||
164 | if (info == NULL) { | 164 | if (info == NULL) { |
diff --git a/drivers/usb/net/zaurus.c b/drivers/usb/net/zaurus.c index 9c5ab251370c..f7ac9d6b9856 100644 --- a/drivers/usb/net/zaurus.c +++ b/drivers/usb/net/zaurus.c | |||
@@ -217,7 +217,7 @@ static int blan_mdlm_bind(struct usbnet *dev, struct usb_interface *intf) | |||
217 | * with devices that use it and those that don't. | 217 | * with devices that use it and those that don't. |
218 | */ | 218 | */ |
219 | if ((detail->bDetailData[1] & ~0x02) != 0x01) { | 219 | if ((detail->bDetailData[1] & ~0x02) != 0x01) { |
220 | /* bmDataCapabilites == 0 would be fine too, | 220 | /* bmDataCapabilities == 0 would be fine too, |
221 | * but framing is minidriver-coupled for now. | 221 | * but framing is minidriver-coupled for now. |
222 | */ | 222 | */ |
223 | bad_detail: | 223 | bad_detail: |