aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-18 09:22:45 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-07-18 09:22:45 -0400
commit5b1f6d81e4c63ae30d92678cc35081001add7674 (patch)
tree8980816357cfe8df56ca9735da73b75c1ed6d235 /drivers/misc
parent8397c76a2c209997c7119bede2f26e51d8c786bc (diff)
parent84a1caf1453c3d44050bd22db958af4a7f99315c (diff)
Merge 3.5-rc7 into char-misc-next.
This lets us pick up the mei driver changes that we need in order to handle future merge issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/mei/interrupt.c2
-rw-r--r--drivers/misc/mei/main.c11
-rw-r--r--drivers/misc/mei/wd.c2
-rw-r--r--drivers/misc/sgi-xp/xpc_uv.c4
4 files changed, 10 insertions, 9 deletions
diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c
index b428b3fe4092..c6ffbbe5a6c0 100644
--- a/drivers/misc/mei/interrupt.c
+++ b/drivers/misc/mei/interrupt.c
@@ -830,7 +830,7 @@ static int _mei_irq_thread_read(struct mei_device *dev, s32 *slots,
830 struct mei_cl *cl, 830 struct mei_cl *cl,
831 struct mei_io_list *cmpl_list) 831 struct mei_io_list *cmpl_list)
832{ 832{
833 if ((*slots * sizeof(u32)) >= (sizeof(struct mei_msg_hdr) + 833 if ((*slots * sizeof(u32)) < (sizeof(struct mei_msg_hdr) +
834 sizeof(struct hbm_flow_control))) { 834 sizeof(struct hbm_flow_control))) {
835 /* return the cancel routine */ 835 /* return the cancel routine */
836 list_del(&cb_pos->cb_list); 836 list_del(&cb_pos->cb_list);
diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
index aaf2683ea154..0d98c2ee6fe3 100644
--- a/drivers/misc/mei/main.c
+++ b/drivers/misc/mei/main.c
@@ -977,7 +977,7 @@ static int __devinit mei_probe(struct pci_dev *pdev,
977 err = request_threaded_irq(pdev->irq, 977 err = request_threaded_irq(pdev->irq,
978 NULL, 978 NULL,
979 mei_interrupt_thread_handler, 979 mei_interrupt_thread_handler,
980 0, mei_driver_name, dev); 980 IRQF_ONESHOT, mei_driver_name, dev);
981 else 981 else
982 err = request_threaded_irq(pdev->irq, 982 err = request_threaded_irq(pdev->irq,
983 mei_interrupt_quick_handler, 983 mei_interrupt_quick_handler,
@@ -987,7 +987,7 @@ static int __devinit mei_probe(struct pci_dev *pdev,
987 if (err) { 987 if (err) {
988 dev_err(&pdev->dev, "request_threaded_irq failure. irq = %d\n", 988 dev_err(&pdev->dev, "request_threaded_irq failure. irq = %d\n",
989 pdev->irq); 989 pdev->irq);
990 goto unmap_memory; 990 goto disable_msi;
991 } 991 }
992 INIT_DELAYED_WORK(&dev->timer_work, mei_timer); 992 INIT_DELAYED_WORK(&dev->timer_work, mei_timer);
993 if (mei_hw_init(dev)) { 993 if (mei_hw_init(dev)) {
@@ -1018,8 +1018,8 @@ release_irq:
1018 mei_disable_interrupts(dev); 1018 mei_disable_interrupts(dev);
1019 flush_scheduled_work(); 1019 flush_scheduled_work();
1020 free_irq(pdev->irq, dev); 1020 free_irq(pdev->irq, dev);
1021disable_msi:
1021 pci_disable_msi(pdev); 1022 pci_disable_msi(pdev);
1022unmap_memory:
1023 pci_iounmap(pdev, dev->mem_addr); 1023 pci_iounmap(pdev, dev->mem_addr);
1024free_device: 1024free_device:
1025 kfree(dev); 1025 kfree(dev);
@@ -1096,6 +1096,8 @@ static void __devexit mei_remove(struct pci_dev *pdev)
1096 1096
1097 pci_release_regions(pdev); 1097 pci_release_regions(pdev);
1098 pci_disable_device(pdev); 1098 pci_disable_device(pdev);
1099
1100 misc_deregister(&mei_misc_device);
1099} 1101}
1100#ifdef CONFIG_PM 1102#ifdef CONFIG_PM
1101static int mei_pci_suspend(struct device *device) 1103static int mei_pci_suspend(struct device *device)
@@ -1140,7 +1142,7 @@ static int mei_pci_resume(struct device *device)
1140 err = request_threaded_irq(pdev->irq, 1142 err = request_threaded_irq(pdev->irq,
1141 NULL, 1143 NULL,
1142 mei_interrupt_thread_handler, 1144 mei_interrupt_thread_handler,
1143 0, mei_driver_name, dev); 1145 IRQF_ONESHOT, mei_driver_name, dev);
1144 else 1146 else
1145 err = request_threaded_irq(pdev->irq, 1147 err = request_threaded_irq(pdev->irq,
1146 mei_interrupt_quick_handler, 1148 mei_interrupt_quick_handler,
@@ -1211,7 +1213,6 @@ module_init(mei_init_module);
1211 */ 1213 */
1212static void __exit mei_exit_module(void) 1214static void __exit mei_exit_module(void)
1213{ 1215{
1214 misc_deregister(&mei_misc_device);
1215 pci_unregister_driver(&mei_driver); 1216 pci_unregister_driver(&mei_driver);
1216 1217
1217 pr_debug("unloaded successfully.\n"); 1218 pr_debug("unloaded successfully.\n");
diff --git a/drivers/misc/mei/wd.c b/drivers/misc/mei/wd.c
index 0a893389f6cb..5133fd77b91c 100644
--- a/drivers/misc/mei/wd.c
+++ b/drivers/misc/mei/wd.c
@@ -341,7 +341,7 @@ static const struct watchdog_ops wd_ops = {
341}; 341};
342static const struct watchdog_info wd_info = { 342static const struct watchdog_info wd_info = {
343 .identity = INTEL_AMT_WATCHDOG_ID, 343 .identity = INTEL_AMT_WATCHDOG_ID,
344 .options = WDIOF_KEEPALIVEPING, 344 .options = WDIOF_KEEPALIVEPING | WDIOF_ALARMONLY,
345}; 345};
346 346
347static struct watchdog_device amt_wd_dev = { 347static struct watchdog_device amt_wd_dev = {
diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c
index 17bbacb1b4b1..87b251ab6ec5 100644
--- a/drivers/misc/sgi-xp/xpc_uv.c
+++ b/drivers/misc/sgi-xp/xpc_uv.c
@@ -452,9 +452,9 @@ xpc_handle_activate_mq_msg_uv(struct xpc_partition *part,
452 452
453 if (msg->activate_gru_mq_desc_gpa != 453 if (msg->activate_gru_mq_desc_gpa !=
454 part_uv->activate_gru_mq_desc_gpa) { 454 part_uv->activate_gru_mq_desc_gpa) {
455 spin_lock_irqsave(&part_uv->flags_lock, irq_flags); 455 spin_lock(&part_uv->flags_lock);
456 part_uv->flags &= ~XPC_P_CACHED_ACTIVATE_GRU_MQ_DESC_UV; 456 part_uv->flags &= ~XPC_P_CACHED_ACTIVATE_GRU_MQ_DESC_UV;
457 spin_unlock_irqrestore(&part_uv->flags_lock, irq_flags); 457 spin_unlock(&part_uv->flags_lock);
458 part_uv->activate_gru_mq_desc_gpa = 458 part_uv->activate_gru_mq_desc_gpa =
459 msg->activate_gru_mq_desc_gpa; 459 msg->activate_gru_mq_desc_gpa;
460 } 460 }