diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/acpi/video.c | 2 | ||||
| -rw-r--r-- | drivers/ata/libata-core.c | 41 | ||||
| -rw-r--r-- | drivers/ata/pata_ali.c | 40 | ||||
| -rw-r--r-- | drivers/ata/sata_fsl.c | 5 | ||||
| -rw-r--r-- | drivers/char/drm/i915_drv.h | 4 | ||||
| -rw-r--r-- | drivers/char/hpet.c | 51 | ||||
| -rw-r--r-- | drivers/dma/fsldma.c | 8 | ||||
| -rw-r--r-- | drivers/firmware/dmi_scan.c | 2 | ||||
| -rw-r--r-- | drivers/input/mouse/appletouch.c | 13 | ||||
| -rw-r--r-- | drivers/media/Makefile | 3 | ||||
| -rw-r--r-- | drivers/media/dvb/frontends/s5h1409.c | 2 | ||||
| -rw-r--r-- | drivers/media/video/bt8xx/bt832.c | 12 | ||||
| -rw-r--r-- | drivers/media/video/pvrusb2/pvrusb2-devattr.c | 35 | ||||
| -rw-r--r-- | drivers/mtd/chips/cfi_cmdset_0001.c | 10 | ||||
| -rw-r--r-- | drivers/net/fec_mpc52xx.c | 1 | ||||
| -rw-r--r-- | drivers/net/fec_mpc52xx_phy.c | 1 | ||||
| -rw-r--r-- | drivers/parport/parport_pc.c | 3 | ||||
| -rw-r--r-- | drivers/scsi/scsi.c | 22 | ||||
| -rw-r--r-- | drivers/watchdog/it8712f_wdt.c | 2 | ||||
| -rw-r--r-- | drivers/xen/grant-table.c | 16 |
20 files changed, 190 insertions, 83 deletions
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 12fb44f16766..980a74188781 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
| @@ -713,7 +713,7 @@ static void acpi_video_device_find_cap(struct acpi_video_device *device) | |||
| 713 | 713 | ||
| 714 | kfree(obj); | 714 | kfree(obj); |
| 715 | 715 | ||
| 716 | if (device->cap._BCL && device->cap._BCM && max_level > 0) { | 716 | if (device->cap._BCL && device->cap._BCM && device->cap._BQC && max_level > 0){ |
| 717 | int result; | 717 | int result; |
| 718 | static int count = 0; | 718 | static int count = 0; |
| 719 | char *name; | 719 | char *name; |
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 48519887f94a..be95fdb69726 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
| @@ -326,6 +326,44 @@ static void ata_force_horkage(struct ata_device *dev) | |||
| 326 | } | 326 | } |
| 327 | 327 | ||
| 328 | /** | 328 | /** |
| 329 | * atapi_cmd_type - Determine ATAPI command type from SCSI opcode | ||
| 330 | * @opcode: SCSI opcode | ||
| 331 | * | ||
| 332 | * Determine ATAPI command type from @opcode. | ||
| 333 | * | ||
| 334 | * LOCKING: | ||
| 335 | * None. | ||
| 336 | * | ||
| 337 | * RETURNS: | ||
| 338 | * ATAPI_{READ|WRITE|READ_CD|PASS_THRU|MISC} | ||
| 339 | */ | ||
| 340 | int atapi_cmd_type(u8 opcode) | ||
| 341 | { | ||
| 342 | switch (opcode) { | ||
| 343 | case GPCMD_READ_10: | ||
| 344 | case GPCMD_READ_12: | ||
| 345 | return ATAPI_READ; | ||
| 346 | |||
| 347 | case GPCMD_WRITE_10: | ||
| 348 | case GPCMD_WRITE_12: | ||
| 349 | case GPCMD_WRITE_AND_VERIFY_10: | ||
| 350 | return ATAPI_WRITE; | ||
| 351 | |||
| 352 | case GPCMD_READ_CD: | ||
| 353 | case GPCMD_READ_CD_MSF: | ||
| 354 | return ATAPI_READ_CD; | ||
| 355 | |||
| 356 | case ATA_16: | ||
| 357 | case ATA_12: | ||
| 358 | if (atapi_passthru16) | ||
| 359 | return ATAPI_PASS_THRU; | ||
| 360 | /* fall thru */ | ||
| 361 | default: | ||
| 362 | return ATAPI_MISC; | ||
| 363 | } | ||
| 364 | } | ||
| 365 | |||
| 366 | /** | ||
| 329 | * ata_tf_to_fis - Convert ATA taskfile to SATA FIS structure | 367 | * ata_tf_to_fis - Convert ATA taskfile to SATA FIS structure |
| 330 | * @tf: Taskfile to convert | 368 | * @tf: Taskfile to convert |
| 331 | * @pmp: Port multiplier port | 369 | * @pmp: Port multiplier port |
| @@ -2660,7 +2698,7 @@ int ata_bus_probe(struct ata_port *ap) | |||
| 2660 | specific sequence bass-ackwards so that PDIAG- is released by | 2698 | specific sequence bass-ackwards so that PDIAG- is released by |
| 2661 | the slave device */ | 2699 | the slave device */ |
| 2662 | 2700 | ||
| 2663 | ata_link_for_each_dev(dev, &ap->link) { | 2701 | ata_link_for_each_dev_reverse(dev, &ap->link) { |
| 2664 | if (tries[dev->devno]) | 2702 | if (tries[dev->devno]) |
| 2665 | dev->class = classes[dev->devno]; | 2703 | dev->class = classes[dev->devno]; |
| 2666 | 2704 | ||
| @@ -7774,6 +7812,7 @@ EXPORT_SYMBOL_GPL(ata_tf_read); | |||
| 7774 | EXPORT_SYMBOL_GPL(ata_noop_dev_select); | 7812 | EXPORT_SYMBOL_GPL(ata_noop_dev_select); |
| 7775 | EXPORT_SYMBOL_GPL(ata_std_dev_select); | 7813 | EXPORT_SYMBOL_GPL(ata_std_dev_select); |
| 7776 | EXPORT_SYMBOL_GPL(sata_print_link_status); | 7814 | EXPORT_SYMBOL_GPL(sata_print_link_status); |
| 7815 | EXPORT_SYMBOL_GPL(atapi_cmd_type); | ||
| 7777 | EXPORT_SYMBOL_GPL(ata_tf_to_fis); | 7816 | EXPORT_SYMBOL_GPL(ata_tf_to_fis); |
| 7778 | EXPORT_SYMBOL_GPL(ata_tf_from_fis); | 7817 | EXPORT_SYMBOL_GPL(ata_tf_from_fis); |
| 7779 | EXPORT_SYMBOL_GPL(ata_pack_xfermask); | 7818 | EXPORT_SYMBOL_GPL(ata_pack_xfermask); |
diff --git a/drivers/ata/pata_ali.c b/drivers/ata/pata_ali.c index 8786455c901d..ce830fe3a362 100644 --- a/drivers/ata/pata_ali.c +++ b/drivers/ata/pata_ali.c | |||
| @@ -36,6 +36,10 @@ | |||
| 36 | #define DRV_NAME "pata_ali" | 36 | #define DRV_NAME "pata_ali" |
| 37 | #define DRV_VERSION "0.7.5" | 37 | #define DRV_VERSION "0.7.5" |
| 38 | 38 | ||
| 39 | int ali_atapi_dma = 0; | ||
| 40 | module_param_named(atapi_dma, ali_atapi_dma, int, 0644); | ||
| 41 | MODULE_PARM_DESC(atapi_dma, "Enable ATAPI DMA (0=disable, 1=enable)"); | ||
| 42 | |||
| 39 | /* | 43 | /* |
| 40 | * Cable special cases | 44 | * Cable special cases |
| 41 | */ | 45 | */ |
| @@ -270,6 +274,27 @@ static void ali_set_dmamode(struct ata_port *ap, struct ata_device *adev) | |||
| 270 | } | 274 | } |
| 271 | 275 | ||
| 272 | /** | 276 | /** |
| 277 | * ali_warn_atapi_dma - Warn about ATAPI DMA disablement | ||
| 278 | * @adev: Device | ||
| 279 | * | ||
| 280 | * Whine about ATAPI DMA disablement if @adev is an ATAPI device. | ||
| 281 | * Can be used as ->dev_config. | ||
| 282 | */ | ||
| 283 | |||
| 284 | static void ali_warn_atapi_dma(struct ata_device *adev) | ||
| 285 | { | ||
| 286 | struct ata_eh_context *ehc = &adev->link->eh_context; | ||
| 287 | int print_info = ehc->i.flags & ATA_EHI_PRINTINFO; | ||
| 288 | |||
| 289 | if (print_info && adev->class == ATA_DEV_ATAPI && !ali_atapi_dma) { | ||
| 290 | ata_dev_printk(adev, KERN_WARNING, | ||
| 291 | "WARNING: ATAPI DMA disabled for reliablity issues. It can be enabled\n"); | ||
| 292 | ata_dev_printk(adev, KERN_WARNING, | ||
| 293 | "WARNING: via pata_ali.atapi_dma modparam or corresponding sysfs node.\n"); | ||
| 294 | } | ||
| 295 | } | ||
| 296 | |||
| 297 | /** | ||
| 273 | * ali_lock_sectors - Keep older devices to 255 sector mode | 298 | * ali_lock_sectors - Keep older devices to 255 sector mode |
| 274 | * @adev: Device | 299 | * @adev: Device |
| 275 | * | 300 | * |
| @@ -283,6 +308,7 @@ static void ali_set_dmamode(struct ata_port *ap, struct ata_device *adev) | |||
| 283 | static void ali_lock_sectors(struct ata_device *adev) | 308 | static void ali_lock_sectors(struct ata_device *adev) |
| 284 | { | 309 | { |
| 285 | adev->max_sectors = 255; | 310 | adev->max_sectors = 255; |
| 311 | ali_warn_atapi_dma(adev); | ||
| 286 | } | 312 | } |
| 287 | 313 | ||
| 288 | /** | 314 | /** |
| @@ -294,6 +320,18 @@ static void ali_lock_sectors(struct ata_device *adev) | |||
| 294 | 320 | ||
| 295 | static int ali_check_atapi_dma(struct ata_queued_cmd *qc) | 321 | static int ali_check_atapi_dma(struct ata_queued_cmd *qc) |
| 296 | { | 322 | { |
| 323 | if (!ali_atapi_dma) { | ||
| 324 | /* FIXME: pata_ali can't do ATAPI DMA reliably but the | ||
| 325 | * IDE alim15x3 driver can. I tried lots of things | ||
| 326 | * but couldn't find what the actual difference was. | ||
| 327 | * If you got an idea, please write it to | ||
| 328 | * linux-ide@vger.kernel.org and cc htejun@gmail.com. | ||
| 329 | * | ||
| 330 | * Disable ATAPI DMA for now. | ||
| 331 | */ | ||
| 332 | return -EOPNOTSUPP; | ||
| 333 | } | ||
| 334 | |||
| 297 | /* If its not a media command, its not worth it */ | 335 | /* If its not a media command, its not worth it */ |
| 298 | if (atapi_cmd_type(qc->cdb[0]) == ATAPI_MISC) | 336 | if (atapi_cmd_type(qc->cdb[0]) == ATAPI_MISC) |
| 299 | return -EOPNOTSUPP; | 337 | return -EOPNOTSUPP; |
| @@ -359,6 +397,7 @@ static struct ata_port_operations ali_20_port_ops = { | |||
| 359 | 397 | ||
| 360 | .tf_load = ata_tf_load, | 398 | .tf_load = ata_tf_load, |
| 361 | .tf_read = ata_tf_read, | 399 | .tf_read = ata_tf_read, |
| 400 | .check_atapi_dma = ali_check_atapi_dma, | ||
| 362 | .check_status = ata_check_status, | 401 | .check_status = ata_check_status, |
| 363 | .exec_command = ata_exec_command, | 402 | .exec_command = ata_exec_command, |
| 364 | .dev_select = ata_std_dev_select, | 403 | .dev_select = ata_std_dev_select, |
| @@ -438,6 +477,7 @@ static struct ata_port_operations ali_c5_port_ops = { | |||
| 438 | .check_status = ata_check_status, | 477 | .check_status = ata_check_status, |
| 439 | .exec_command = ata_exec_command, | 478 | .exec_command = ata_exec_command, |
| 440 | .dev_select = ata_std_dev_select, | 479 | .dev_select = ata_std_dev_select, |
| 480 | .dev_config = ali_warn_atapi_dma, | ||
| 441 | 481 | ||
| 442 | .freeze = ata_bmdma_freeze, | 482 | .freeze = ata_bmdma_freeze, |
| 443 | .thaw = ata_bmdma_thaw, | 483 | .thaw = ata_bmdma_thaw, |
diff --git a/drivers/ata/sata_fsl.c b/drivers/ata/sata_fsl.c index 07791a7a48a5..4c1985511548 100644 --- a/drivers/ata/sata_fsl.c +++ b/drivers/ata/sata_fsl.c | |||
| @@ -1348,10 +1348,7 @@ static int sata_fsl_remove(struct of_device *ofdev) | |||
| 1348 | 1348 | ||
| 1349 | static struct of_device_id fsl_sata_match[] = { | 1349 | static struct of_device_id fsl_sata_match[] = { |
| 1350 | { | 1350 | { |
| 1351 | .compatible = "fsl,mpc8315-sata", | 1351 | .compatible = "fsl,pq-sata", |
| 1352 | }, | ||
| 1353 | { | ||
| 1354 | .compatible = "fsl,mpc8379-sata", | ||
| 1355 | }, | 1352 | }, |
| 1356 | {}, | 1353 | {}, |
| 1357 | }; | 1354 | }; |
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h index c10d128e34db..675d88bda066 100644 --- a/drivers/char/drm/i915_drv.h +++ b/drivers/char/drm/i915_drv.h | |||
| @@ -1092,8 +1092,8 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); | |||
| 1092 | #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) | 1092 | #define IS_I915G(dev) ((dev)->pci_device == 0x2582 || (dev)->pci_device == 0x258a) |
| 1093 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) | 1093 | #define IS_I915GM(dev) ((dev)->pci_device == 0x2592) |
| 1094 | #define IS_I945G(dev) ((dev)->pci_device == 0x2772) | 1094 | #define IS_I945G(dev) ((dev)->pci_device == 0x2772) |
| 1095 | #define IS_I945GM(dev) ((dev)->pci_device == 0x27A2) | 1095 | #define IS_I945GM(dev) ((dev)->pci_device == 0x27A2 ||\ |
| 1096 | 1096 | (dev)->pci_device == 0x27AE) | |
| 1097 | #define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \ | 1097 | #define IS_I965G(dev) ((dev)->pci_device == 0x2972 || \ |
| 1098 | (dev)->pci_device == 0x2982 || \ | 1098 | (dev)->pci_device == 0x2982 || \ |
| 1099 | (dev)->pci_device == 0x2992 || \ | 1099 | (dev)->pci_device == 0x2992 || \ |
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c index 465ad35ed38f..1399971be689 100644 --- a/drivers/char/hpet.c +++ b/drivers/char/hpet.c | |||
| @@ -731,14 +731,14 @@ static unsigned long hpet_calibrate(struct hpets *hpetp) | |||
| 731 | 731 | ||
| 732 | int hpet_alloc(struct hpet_data *hdp) | 732 | int hpet_alloc(struct hpet_data *hdp) |
| 733 | { | 733 | { |
| 734 | u64 cap, mcfg, hpet_config; | 734 | u64 cap, mcfg; |
| 735 | struct hpet_dev *devp; | 735 | struct hpet_dev *devp; |
| 736 | u32 i, ntimer, irq; | 736 | u32 i, ntimer; |
| 737 | struct hpets *hpetp; | 737 | struct hpets *hpetp; |
| 738 | size_t siz; | 738 | size_t siz; |
| 739 | struct hpet __iomem *hpet; | 739 | struct hpet __iomem *hpet; |
| 740 | static struct hpets *last = NULL; | 740 | static struct hpets *last = NULL; |
| 741 | unsigned long period, irq_bitmap; | 741 | unsigned long period; |
| 742 | unsigned long long temp; | 742 | unsigned long long temp; |
| 743 | 743 | ||
| 744 | /* | 744 | /* |
| @@ -765,47 +765,11 @@ int hpet_alloc(struct hpet_data *hdp) | |||
| 765 | hpetp->hp_hpet_phys = hdp->hd_phys_address; | 765 | hpetp->hp_hpet_phys = hdp->hd_phys_address; |
| 766 | 766 | ||
| 767 | hpetp->hp_ntimer = hdp->hd_nirqs; | 767 | hpetp->hp_ntimer = hdp->hd_nirqs; |
| 768 | hpet = hpetp->hp_hpet; | ||
| 769 | |||
| 770 | /* Assign IRQs statically for legacy devices */ | ||
| 771 | hpetp->hp_dev[0].hd_hdwirq = hdp->hd_irq[0]; | ||
| 772 | hpetp->hp_dev[1].hd_hdwirq = hdp->hd_irq[1]; | ||
| 773 | |||
| 774 | /* Assign IRQs dynamically for the others */ | ||
| 775 | for (i = 2, devp = &hpetp->hp_dev[2]; i < hdp->hd_nirqs; i++, devp++) { | ||
| 776 | struct hpet_timer __iomem *timer; | ||
| 777 | 768 | ||
| 778 | timer = &hpet->hpet_timers[devp - hpetp->hp_dev]; | 769 | for (i = 0; i < hdp->hd_nirqs; i++) |
| 770 | hpetp->hp_dev[i].hd_hdwirq = hdp->hd_irq[i]; | ||
| 779 | 771 | ||
| 780 | /* Check if there's already an IRQ assigned to the timer */ | 772 | hpet = hpetp->hp_hpet; |
| 781 | if (hdp->hd_irq[i]) { | ||
| 782 | hpetp->hp_dev[i].hd_hdwirq = hdp->hd_irq[i]; | ||
| 783 | continue; | ||
| 784 | } | ||
| 785 | |||
| 786 | hpet_config = readq(&timer->hpet_config); | ||
| 787 | irq_bitmap = (hpet_config & Tn_INT_ROUTE_CAP_MASK) | ||
| 788 | >> Tn_INT_ROUTE_CAP_SHIFT; | ||
| 789 | if (!irq_bitmap) | ||
| 790 | irq = 0; /* No valid IRQ Assignable */ | ||
| 791 | else { | ||
| 792 | irq = find_first_bit(&irq_bitmap, 32); | ||
| 793 | do { | ||
| 794 | hpet_config |= irq << Tn_INT_ROUTE_CNF_SHIFT; | ||
| 795 | writeq(hpet_config, &timer->hpet_config); | ||
| 796 | |||
| 797 | /* | ||
| 798 | * Verify whether we have written a valid | ||
| 799 | * IRQ number by reading it back again | ||
| 800 | */ | ||
| 801 | hpet_config = readq(&timer->hpet_config); | ||
| 802 | if (irq == (hpet_config & Tn_INT_ROUTE_CNF_MASK) | ||
| 803 | >> Tn_INT_ROUTE_CNF_SHIFT) | ||
| 804 | break; /* Success */ | ||
| 805 | } while ((irq = (find_next_bit(&irq_bitmap, 32, irq)))); | ||
| 806 | } | ||
| 807 | hpetp->hp_dev[i].hd_hdwirq = irq; | ||
| 808 | } | ||
| 809 | 773 | ||
| 810 | cap = readq(&hpet->hpet_cap); | 774 | cap = readq(&hpet->hpet_cap); |
| 811 | 775 | ||
| @@ -836,8 +800,7 @@ int hpet_alloc(struct hpet_data *hdp) | |||
| 836 | hpetp->hp_which, hdp->hd_phys_address, | 800 | hpetp->hp_which, hdp->hd_phys_address, |
| 837 | hpetp->hp_ntimer > 1 ? "s" : ""); | 801 | hpetp->hp_ntimer > 1 ? "s" : ""); |
| 838 | for (i = 0; i < hpetp->hp_ntimer; i++) | 802 | for (i = 0; i < hpetp->hp_ntimer; i++) |
| 839 | printk("%s %d", i > 0 ? "," : "", | 803 | printk("%s %d", i > 0 ? "," : "", hdp->hd_irq[i]); |
| 840 | hpetp->hp_dev[i].hd_hdwirq); | ||
| 841 | printk("\n"); | 804 | printk("\n"); |
| 842 | 805 | ||
| 843 | printk(KERN_INFO "hpet%u: %u %d-bit timers, %Lu Hz\n", | 806 | printk(KERN_INFO "hpet%u: %u %d-bit timers, %Lu Hz\n", |
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 72692309398a..df163687c91a 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c | |||
| @@ -1021,11 +1021,11 @@ const u32 mpc8349_dma_ip_feature = FSL_DMA_IP_83XX | FSL_DMA_LITTLE_ENDIAN; | |||
| 1021 | 1021 | ||
| 1022 | static struct of_device_id of_fsl_dma_chan_ids[] = { | 1022 | static struct of_device_id of_fsl_dma_chan_ids[] = { |
| 1023 | { | 1023 | { |
| 1024 | .compatible = "fsl,mpc8540-dma-channel", | 1024 | .compatible = "fsl,eloplus-dma-channel", |
| 1025 | .data = (void *)&mpc8540_dma_ip_feature, | 1025 | .data = (void *)&mpc8540_dma_ip_feature, |
| 1026 | }, | 1026 | }, |
| 1027 | { | 1027 | { |
| 1028 | .compatible = "fsl,mpc8349-dma-channel", | 1028 | .compatible = "fsl,elo-dma-channel", |
| 1029 | .data = (void *)&mpc8349_dma_ip_feature, | 1029 | .data = (void *)&mpc8349_dma_ip_feature, |
| 1030 | }, | 1030 | }, |
| 1031 | {} | 1031 | {} |
| @@ -1107,8 +1107,8 @@ err: | |||
| 1107 | } | 1107 | } |
| 1108 | 1108 | ||
| 1109 | static struct of_device_id of_fsl_dma_ids[] = { | 1109 | static struct of_device_id of_fsl_dma_ids[] = { |
| 1110 | { .compatible = "fsl,mpc8540-dma", }, | 1110 | { .compatible = "fsl,eloplus-dma", }, |
| 1111 | { .compatible = "fsl,mpc8349-dma", }, | 1111 | { .compatible = "fsl,elo-dma", }, |
| 1112 | {} | 1112 | {} |
| 1113 | }; | 1113 | }; |
| 1114 | 1114 | ||
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index 4072449ad1cd..c5e3ed7e903b 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c | |||
| @@ -266,7 +266,7 @@ static void __init dmi_save_ipmi_device(const struct dmi_header *dm) | |||
| 266 | dev->name = "IPMI controller"; | 266 | dev->name = "IPMI controller"; |
| 267 | dev->device_data = data; | 267 | dev->device_data = data; |
| 268 | 268 | ||
| 269 | list_add(&dev->list, &dmi_devices); | 269 | list_add_tail(&dev->list, &dmi_devices); |
| 270 | } | 270 | } |
| 271 | 271 | ||
| 272 | static void __init dmi_save_extended_devices(const struct dmi_header *dm) | 272 | static void __init dmi_save_extended_devices(const struct dmi_header *dm) |
diff --git a/drivers/input/mouse/appletouch.c b/drivers/input/mouse/appletouch.c index b4423a471f02..8dd3942f3022 100644 --- a/drivers/input/mouse/appletouch.c +++ b/drivers/input/mouse/appletouch.c | |||
| @@ -62,6 +62,10 @@ | |||
| 62 | #define GEYSER4_ISO_PRODUCT_ID 0x021B | 62 | #define GEYSER4_ISO_PRODUCT_ID 0x021B |
| 63 | #define GEYSER4_JIS_PRODUCT_ID 0x021C | 63 | #define GEYSER4_JIS_PRODUCT_ID 0x021C |
| 64 | 64 | ||
| 65 | #define GEYSER4_HF_ANSI_PRODUCT_ID 0x0229 | ||
| 66 | #define GEYSER4_HF_ISO_PRODUCT_ID 0x022A | ||
| 67 | #define GEYSER4_HF_JIS_PRODUCT_ID 0x022B | ||
| 68 | |||
| 65 | #define ATP_DEVICE(prod) \ | 69 | #define ATP_DEVICE(prod) \ |
| 66 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \ | 70 | .match_flags = USB_DEVICE_ID_MATCH_DEVICE | \ |
| 67 | USB_DEVICE_ID_MATCH_INT_CLASS | \ | 71 | USB_DEVICE_ID_MATCH_INT_CLASS | \ |
| @@ -93,6 +97,10 @@ static struct usb_device_id atp_table [] = { | |||
| 93 | { ATP_DEVICE(GEYSER4_ISO_PRODUCT_ID) }, | 97 | { ATP_DEVICE(GEYSER4_ISO_PRODUCT_ID) }, |
| 94 | { ATP_DEVICE(GEYSER4_JIS_PRODUCT_ID) }, | 98 | { ATP_DEVICE(GEYSER4_JIS_PRODUCT_ID) }, |
| 95 | 99 | ||
| 100 | { ATP_DEVICE(GEYSER4_HF_ANSI_PRODUCT_ID) }, | ||
| 101 | { ATP_DEVICE(GEYSER4_HF_ISO_PRODUCT_ID) }, | ||
| 102 | { ATP_DEVICE(GEYSER4_HF_JIS_PRODUCT_ID) }, | ||
| 103 | |||
| 96 | /* Terminating entry */ | 104 | /* Terminating entry */ |
| 97 | { } | 105 | { } |
| 98 | }; | 106 | }; |
| @@ -217,7 +225,10 @@ static inline int atp_is_geyser_3(struct atp *dev) | |||
| 217 | (productId == GEYSER3_JIS_PRODUCT_ID) || | 225 | (productId == GEYSER3_JIS_PRODUCT_ID) || |
| 218 | (productId == GEYSER4_ANSI_PRODUCT_ID) || | 226 | (productId == GEYSER4_ANSI_PRODUCT_ID) || |
| 219 | (productId == GEYSER4_ISO_PRODUCT_ID) || | 227 | (productId == GEYSER4_ISO_PRODUCT_ID) || |
| 220 | (productId == GEYSER4_JIS_PRODUCT_ID); | 228 | (productId == GEYSER4_JIS_PRODUCT_ID) || |
| 229 | (productId == GEYSER4_HF_ANSI_PRODUCT_ID) || | ||
| 230 | (productId == GEYSER4_HF_ISO_PRODUCT_ID) || | ||
| 231 | (productId == GEYSER4_HF_JIS_PRODUCT_ID); | ||
| 221 | } | 232 | } |
| 222 | 233 | ||
| 223 | /* | 234 | /* |
diff --git a/drivers/media/Makefile b/drivers/media/Makefile index 8cf91353b56a..7b8bb6949f5e 100644 --- a/drivers/media/Makefile +++ b/drivers/media/Makefile | |||
| @@ -6,3 +6,6 @@ obj-y := common/ | |||
| 6 | obj-y += video/ | 6 | obj-y += video/ |
| 7 | obj-$(CONFIG_VIDEO_DEV) += radio/ | 7 | obj-$(CONFIG_VIDEO_DEV) += radio/ |
| 8 | obj-$(CONFIG_DVB_CORE) += dvb/ | 8 | obj-$(CONFIG_DVB_CORE) += dvb/ |
| 9 | ifeq ($(CONFIG_DVB_CORE),) | ||
| 10 | obj-$(CONFIG_VIDEO_TUNER) += dvb/frontends/ | ||
| 11 | endif | ||
diff --git a/drivers/media/dvb/frontends/s5h1409.c b/drivers/media/dvb/frontends/s5h1409.c index 819433485d3b..1a4d8319773c 100644 --- a/drivers/media/dvb/frontends/s5h1409.c +++ b/drivers/media/dvb/frontends/s5h1409.c | |||
| @@ -445,7 +445,7 @@ static int s5h1409_set_gpio(struct dvb_frontend* fe, int enable) | |||
| 445 | s5h1409_readreg(state, 0xe3) | 0x1100); | 445 | s5h1409_readreg(state, 0xe3) | 0x1100); |
| 446 | else | 446 | else |
| 447 | return s5h1409_writereg(state, 0xe3, | 447 | return s5h1409_writereg(state, 0xe3, |
| 448 | s5h1409_readreg(state, 0xe3) & 0xeeff); | 448 | s5h1409_readreg(state, 0xe3) & 0xfeff); |
| 449 | } | 449 | } |
| 450 | 450 | ||
| 451 | static int s5h1409_sleep(struct dvb_frontend* fe, int enable) | 451 | static int s5h1409_sleep(struct dvb_frontend* fe, int enable) |
diff --git a/drivers/media/video/bt8xx/bt832.c b/drivers/media/video/bt8xx/bt832.c index a51876137880..f92f06dec0d0 100644 --- a/drivers/media/video/bt8xx/bt832.c +++ b/drivers/media/video/bt8xx/bt832.c | |||
| @@ -97,6 +97,11 @@ int bt832_init(struct i2c_client *i2c_client_s) | |||
| 97 | int rc; | 97 | int rc; |
| 98 | 98 | ||
| 99 | buf=kmalloc(65,GFP_KERNEL); | 99 | buf=kmalloc(65,GFP_KERNEL); |
| 100 | if (!buf) { | ||
| 101 | v4l_err(&t->client, | ||
| 102 | "Unable to allocate memory. Detaching.\n"); | ||
| 103 | return 0; | ||
| 104 | } | ||
| 100 | bt832_hexdump(i2c_client_s,buf); | 105 | bt832_hexdump(i2c_client_s,buf); |
| 101 | 106 | ||
| 102 | if(buf[0x40] != 0x31) { | 107 | if(buf[0x40] != 0x31) { |
| @@ -211,7 +216,12 @@ bt832_command(struct i2c_client *client, unsigned int cmd, void *arg) | |||
| 211 | switch (cmd) { | 216 | switch (cmd) { |
| 212 | case BT832_HEXDUMP: { | 217 | case BT832_HEXDUMP: { |
| 213 | unsigned char *buf; | 218 | unsigned char *buf; |
| 214 | buf=kmalloc(65,GFP_KERNEL); | 219 | buf = kmalloc(65, GFP_KERNEL); |
| 220 | if (!buf) { | ||
| 221 | v4l_err(&t->client, | ||
| 222 | "Unable to allocate memory\n"); | ||
| 223 | break; | ||
| 224 | } | ||
| 215 | bt832_hexdump(&t->client,buf); | 225 | bt832_hexdump(&t->client,buf); |
| 216 | kfree(buf); | 226 | kfree(buf); |
| 217 | } | 227 | } |
diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/drivers/media/video/pvrusb2/pvrusb2-devattr.c index 4df6d6d936fc..98557ce950cd 100644 --- a/drivers/media/video/pvrusb2/pvrusb2-devattr.c +++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.c | |||
| @@ -155,6 +155,37 @@ static const struct pvr2_device_desc pvr2_device_onair_usb2 = { | |||
| 155 | 155 | ||
| 156 | 156 | ||
| 157 | /*------------------------------------------------------------------------*/ | 157 | /*------------------------------------------------------------------------*/ |
| 158 | /* Hauppauge PVR-USB2 Model 73xxx */ | ||
| 159 | |||
| 160 | static const char *pvr2_client_73xxx[] = { | ||
| 161 | "cx25840", | ||
| 162 | "tuner", | ||
| 163 | }; | ||
| 164 | |||
| 165 | static const char *pvr2_fw1_names_73xxx[] = { | ||
| 166 | "v4l-pvrusb2-73xxx-01.fw", | ||
| 167 | }; | ||
| 168 | |||
| 169 | static const struct pvr2_device_desc pvr2_device_73xxx = { | ||
| 170 | .description = "WinTV PVR USB2 Model Category 73xxxx", | ||
| 171 | .shortname = "73xxx", | ||
| 172 | .client_modules.lst = pvr2_client_73xxx, | ||
| 173 | .client_modules.cnt = ARRAY_SIZE(pvr2_client_73xxx), | ||
| 174 | .fx2_firmware.lst = pvr2_fw1_names_73xxx, | ||
| 175 | .fx2_firmware.cnt = ARRAY_SIZE(pvr2_fw1_names_73xxx), | ||
| 176 | .flag_has_cx25840 = !0, | ||
| 177 | .flag_has_hauppauge_rom = !0, | ||
| 178 | .flag_has_analogtuner = !0, | ||
| 179 | .flag_has_composite = !0, | ||
| 180 | .flag_has_svideo = !0, | ||
| 181 | .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE, | ||
| 182 | .digital_control_scheme = PVR2_DIGITAL_SCHEME_HAUPPAUGE, | ||
| 183 | .led_scheme = PVR2_LED_SCHEME_HAUPPAUGE, | ||
| 184 | }; | ||
| 185 | |||
| 186 | |||
| 187 | |||
| 188 | /*------------------------------------------------------------------------*/ | ||
| 158 | /* Hauppauge PVR-USB2 Model 75xxx */ | 189 | /* Hauppauge PVR-USB2 Model 75xxx */ |
| 159 | 190 | ||
| 160 | static const char *pvr2_client_75xxx[] = { | 191 | static const char *pvr2_client_75xxx[] = { |
| @@ -198,8 +229,12 @@ struct usb_device_id pvr2_device_table[] = { | |||
| 198 | { USB_DEVICE(0x11ba, 0x1001), | 229 | { USB_DEVICE(0x11ba, 0x1001), |
| 199 | .driver_info = (kernel_ulong_t)&pvr2_device_onair_usb2}, | 230 | .driver_info = (kernel_ulong_t)&pvr2_device_onair_usb2}, |
| 200 | #endif | 231 | #endif |
| 232 | { USB_DEVICE(0x2040, 0x7300), | ||
| 233 | .driver_info = (kernel_ulong_t)&pvr2_device_73xxx}, | ||
| 201 | { USB_DEVICE(0x2040, 0x7500), | 234 | { USB_DEVICE(0x2040, 0x7500), |
| 202 | .driver_info = (kernel_ulong_t)&pvr2_device_75xxx}, | 235 | .driver_info = (kernel_ulong_t)&pvr2_device_75xxx}, |
| 236 | { USB_DEVICE(0x2040, 0x7501), | ||
| 237 | .driver_info = (kernel_ulong_t)&pvr2_device_75xxx}, | ||
| 203 | { } | 238 | { } |
| 204 | }; | 239 | }; |
| 205 | 240 | ||
diff --git a/drivers/mtd/chips/cfi_cmdset_0001.c b/drivers/mtd/chips/cfi_cmdset_0001.c index 47794d23a42e..0080452531d6 100644 --- a/drivers/mtd/chips/cfi_cmdset_0001.c +++ b/drivers/mtd/chips/cfi_cmdset_0001.c | |||
| @@ -718,7 +718,7 @@ static int chip_ready (struct map_info *map, struct flchip *chip, unsigned long | |||
| 718 | /* Someone else might have been playing with it. */ | 718 | /* Someone else might have been playing with it. */ |
| 719 | return -EAGAIN; | 719 | return -EAGAIN; |
| 720 | } | 720 | } |
| 721 | 721 | /* Fall through */ | |
| 722 | case FL_READY: | 722 | case FL_READY: |
| 723 | case FL_CFI_QUERY: | 723 | case FL_CFI_QUERY: |
| 724 | case FL_JEDEC_QUERY: | 724 | case FL_JEDEC_QUERY: |
| @@ -778,14 +778,14 @@ static int chip_ready (struct map_info *map, struct flchip *chip, unsigned long | |||
| 778 | chip->state = FL_READY; | 778 | chip->state = FL_READY; |
| 779 | return 0; | 779 | return 0; |
| 780 | 780 | ||
| 781 | case FL_SHUTDOWN: | ||
| 782 | /* The machine is rebooting now,so no one can get chip anymore */ | ||
| 783 | return -EIO; | ||
| 781 | case FL_POINT: | 784 | case FL_POINT: |
| 782 | /* Only if there's no operation suspended... */ | 785 | /* Only if there's no operation suspended... */ |
| 783 | if (mode == FL_READY && chip->oldstate == FL_READY) | 786 | if (mode == FL_READY && chip->oldstate == FL_READY) |
| 784 | return 0; | 787 | return 0; |
| 785 | 788 | /* Fall through */ | |
| 786 | case FL_SHUTDOWN: | ||
| 787 | /* The machine is rebooting now,so no one can get chip anymore */ | ||
| 788 | return -EIO; | ||
| 789 | default: | 789 | default: |
| 790 | sleep: | 790 | sleep: |
| 791 | set_current_state(TASK_UNINTERRUPTIBLE); | 791 | set_current_state(TASK_UNINTERRUPTIBLE); |
diff --git a/drivers/net/fec_mpc52xx.c b/drivers/net/fec_mpc52xx.c index 58b71e60204e..fe59c27c09e3 100644 --- a/drivers/net/fec_mpc52xx.c +++ b/drivers/net/fec_mpc52xx.c | |||
| @@ -1057,6 +1057,7 @@ static int mpc52xx_fec_of_resume(struct of_device *op) | |||
| 1057 | #endif | 1057 | #endif |
| 1058 | 1058 | ||
| 1059 | static struct of_device_id mpc52xx_fec_match[] = { | 1059 | static struct of_device_id mpc52xx_fec_match[] = { |
| 1060 | { .type = "network", .compatible = "fsl,mpc5200b-fec", }, | ||
| 1060 | { .type = "network", .compatible = "fsl,mpc5200-fec", }, | 1061 | { .type = "network", .compatible = "fsl,mpc5200-fec", }, |
| 1061 | { .type = "network", .compatible = "mpc5200-fec", }, | 1062 | { .type = "network", .compatible = "mpc5200-fec", }, |
| 1062 | { } | 1063 | { } |
diff --git a/drivers/net/fec_mpc52xx_phy.c b/drivers/net/fec_mpc52xx_phy.c index 6a3ac4ea97e9..1d0cd1dd955e 100644 --- a/drivers/net/fec_mpc52xx_phy.c +++ b/drivers/net/fec_mpc52xx_phy.c | |||
| @@ -179,6 +179,7 @@ static int mpc52xx_fec_mdio_remove(struct of_device *of) | |||
| 179 | 179 | ||
| 180 | static struct of_device_id mpc52xx_fec_mdio_match[] = { | 180 | static struct of_device_id mpc52xx_fec_mdio_match[] = { |
| 181 | { .compatible = "fsl,mpc5200b-mdio", }, | 181 | { .compatible = "fsl,mpc5200b-mdio", }, |
| 182 | { .compatible = "fsl,mpc5200-mdio", }, | ||
| 182 | { .compatible = "mpc5200b-fec-phy", }, | 183 | { .compatible = "mpc5200b-fec-phy", }, |
| 183 | {} | 184 | {} |
| 184 | }; | 185 | }; |
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index d76d37bcb9cc..a85808938205 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c | |||
| @@ -1568,9 +1568,8 @@ static void __devinit detect_and_report_it87(void) | |||
| 1568 | outb(r | 8, 0x2F); | 1568 | outb(r | 8, 0x2F); |
| 1569 | outb(0x02, 0x2E); /* Lock */ | 1569 | outb(0x02, 0x2E); /* Lock */ |
| 1570 | outb(0x02, 0x2F); | 1570 | outb(0x02, 0x2F); |
| 1571 | |||
| 1572 | release_region(0x2e, 1); | ||
| 1573 | } | 1571 | } |
| 1572 | release_region(0x2e, 1); | ||
| 1574 | } | 1573 | } |
| 1575 | #endif /* CONFIG_PARPORT_PC_SUPERIO */ | 1574 | #endif /* CONFIG_PARPORT_PC_SUPERIO */ |
| 1576 | 1575 | ||
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index e5c6f6af8765..c78b836f59dd 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c | |||
| @@ -181,6 +181,18 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) | |||
| 181 | cmd = kmem_cache_alloc(shost->cmd_pool->cmd_slab, | 181 | cmd = kmem_cache_alloc(shost->cmd_pool->cmd_slab, |
| 182 | gfp_mask | shost->cmd_pool->gfp_mask); | 182 | gfp_mask | shost->cmd_pool->gfp_mask); |
| 183 | 183 | ||
| 184 | if (likely(cmd)) { | ||
| 185 | buf = kmem_cache_alloc(shost->cmd_pool->sense_slab, | ||
| 186 | gfp_mask | shost->cmd_pool->gfp_mask); | ||
| 187 | if (likely(buf)) { | ||
| 188 | memset(cmd, 0, sizeof(*cmd)); | ||
| 189 | cmd->sense_buffer = buf; | ||
| 190 | } else { | ||
| 191 | kmem_cache_free(shost->cmd_pool->cmd_slab, cmd); | ||
| 192 | cmd = NULL; | ||
| 193 | } | ||
| 194 | } | ||
| 195 | |||
| 184 | if (unlikely(!cmd)) { | 196 | if (unlikely(!cmd)) { |
| 185 | unsigned long flags; | 197 | unsigned long flags; |
| 186 | 198 | ||
| @@ -197,16 +209,6 @@ struct scsi_cmnd *__scsi_get_command(struct Scsi_Host *shost, gfp_t gfp_mask) | |||
| 197 | memset(cmd, 0, sizeof(*cmd)); | 209 | memset(cmd, 0, sizeof(*cmd)); |
| 198 | cmd->sense_buffer = buf; | 210 | cmd->sense_buffer = buf; |
| 199 | } | 211 | } |
| 200 | } else { | ||
| 201 | buf = kmem_cache_alloc(shost->cmd_pool->sense_slab, | ||
| 202 | gfp_mask | shost->cmd_pool->gfp_mask); | ||
| 203 | if (likely(buf)) { | ||
| 204 | memset(cmd, 0, sizeof(*cmd)); | ||
| 205 | cmd->sense_buffer = buf; | ||
| 206 | } else { | ||
| 207 | kmem_cache_free(shost->cmd_pool->cmd_slab, cmd); | ||
| 208 | cmd = NULL; | ||
| 209 | } | ||
| 210 | } | 212 | } |
| 211 | 213 | ||
| 212 | return cmd; | 214 | return cmd; |
diff --git a/drivers/watchdog/it8712f_wdt.c b/drivers/watchdog/it8712f_wdt.c index ca90c5192596..445b7e812112 100644 --- a/drivers/watchdog/it8712f_wdt.c +++ b/drivers/watchdog/it8712f_wdt.c | |||
| @@ -200,6 +200,8 @@ it8712f_wdt_disable(void) | |||
| 200 | 200 | ||
| 201 | superio_outb(0, WDT_CONFIG); | 201 | superio_outb(0, WDT_CONFIG); |
| 202 | superio_outb(0, WDT_CONTROL); | 202 | superio_outb(0, WDT_CONTROL); |
| 203 | if (revision >= 0x08) | ||
| 204 | superio_outb(0, WDT_TIMEOUT + 1); | ||
| 203 | superio_outb(0, WDT_TIMEOUT); | 205 | superio_outb(0, WDT_TIMEOUT); |
| 204 | 206 | ||
| 205 | superio_exit(); | 207 | superio_exit(); |
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c index ea94dbabf9a9..d85dc6d41c2a 100644 --- a/drivers/xen/grant-table.c +++ b/drivers/xen/grant-table.c | |||
| @@ -381,11 +381,15 @@ EXPORT_SYMBOL_GPL(gnttab_cancel_free_callback); | |||
| 381 | static int grow_gnttab_list(unsigned int more_frames) | 381 | static int grow_gnttab_list(unsigned int more_frames) |
| 382 | { | 382 | { |
| 383 | unsigned int new_nr_grant_frames, extra_entries, i; | 383 | unsigned int new_nr_grant_frames, extra_entries, i; |
| 384 | unsigned int nr_glist_frames, new_nr_glist_frames; | ||
| 384 | 385 | ||
| 385 | new_nr_grant_frames = nr_grant_frames + more_frames; | 386 | new_nr_grant_frames = nr_grant_frames + more_frames; |
| 386 | extra_entries = more_frames * GREFS_PER_GRANT_FRAME; | 387 | extra_entries = more_frames * GREFS_PER_GRANT_FRAME; |
| 387 | 388 | ||
| 388 | for (i = nr_grant_frames; i < new_nr_grant_frames; i++) { | 389 | nr_glist_frames = (nr_grant_frames * GREFS_PER_GRANT_FRAME + RPP - 1) / RPP; |
| 390 | new_nr_glist_frames = | ||
| 391 | (new_nr_grant_frames * GREFS_PER_GRANT_FRAME + RPP - 1) / RPP; | ||
| 392 | for (i = nr_glist_frames; i < new_nr_glist_frames; i++) { | ||
| 389 | gnttab_list[i] = (grant_ref_t *)__get_free_page(GFP_ATOMIC); | 393 | gnttab_list[i] = (grant_ref_t *)__get_free_page(GFP_ATOMIC); |
| 390 | if (!gnttab_list[i]) | 394 | if (!gnttab_list[i]) |
| 391 | goto grow_nomem; | 395 | goto grow_nomem; |
| @@ -407,7 +411,7 @@ static int grow_gnttab_list(unsigned int more_frames) | |||
| 407 | return 0; | 411 | return 0; |
| 408 | 412 | ||
| 409 | grow_nomem: | 413 | grow_nomem: |
| 410 | for ( ; i >= nr_grant_frames; i--) | 414 | for ( ; i >= nr_glist_frames; i--) |
| 411 | free_page((unsigned long) gnttab_list[i]); | 415 | free_page((unsigned long) gnttab_list[i]); |
| 412 | return -ENOMEM; | 416 | return -ENOMEM; |
| 413 | } | 417 | } |
| @@ -530,7 +534,7 @@ static int gnttab_expand(unsigned int req_entries) | |||
| 530 | static int __devinit gnttab_init(void) | 534 | static int __devinit gnttab_init(void) |
| 531 | { | 535 | { |
| 532 | int i; | 536 | int i; |
| 533 | unsigned int max_nr_glist_frames; | 537 | unsigned int max_nr_glist_frames, nr_glist_frames; |
| 534 | unsigned int nr_init_grefs; | 538 | unsigned int nr_init_grefs; |
| 535 | 539 | ||
| 536 | if (!is_running_on_xen()) | 540 | if (!is_running_on_xen()) |
| @@ -543,15 +547,15 @@ static int __devinit gnttab_init(void) | |||
| 543 | * grant reference free list on the current hypervisor. | 547 | * grant reference free list on the current hypervisor. |
| 544 | */ | 548 | */ |
| 545 | max_nr_glist_frames = (boot_max_nr_grant_frames * | 549 | max_nr_glist_frames = (boot_max_nr_grant_frames * |
| 546 | GREFS_PER_GRANT_FRAME / | 550 | GREFS_PER_GRANT_FRAME / RPP); |
| 547 | (PAGE_SIZE / sizeof(grant_ref_t))); | ||
| 548 | 551 | ||
| 549 | gnttab_list = kmalloc(max_nr_glist_frames * sizeof(grant_ref_t *), | 552 | gnttab_list = kmalloc(max_nr_glist_frames * sizeof(grant_ref_t *), |
| 550 | GFP_KERNEL); | 553 | GFP_KERNEL); |
| 551 | if (gnttab_list == NULL) | 554 | if (gnttab_list == NULL) |
| 552 | return -ENOMEM; | 555 | return -ENOMEM; |
| 553 | 556 | ||
| 554 | for (i = 0; i < nr_grant_frames; i++) { | 557 | nr_glist_frames = (nr_grant_frames * GREFS_PER_GRANT_FRAME + RPP - 1) / RPP; |
| 558 | for (i = 0; i < nr_glist_frames; i++) { | ||
| 555 | gnttab_list[i] = (grant_ref_t *)__get_free_page(GFP_KERNEL); | 559 | gnttab_list[i] = (grant_ref_t *)__get_free_page(GFP_KERNEL); |
| 556 | if (gnttab_list[i] == NULL) | 560 | if (gnttab_list[i] == NULL) |
| 557 | goto ini_nomem; | 561 | goto ini_nomem; |
