Advertisement
Guest User

Untitled

a guest
Jan 4th, 2015
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ParaSail 17.41 KB | None | 0 0
  1. diff -rupN old/arch/arm/mach-msm/cpuidle.c new/arch/arm/mach-msm/cpuidle.c
  2. --- old/arch/arm/mach-msm/cpuidle.c 2014-11-23 20:39:12.000000000 +0800
  3. +++ new/arch/arm/mach-msm/cpuidle.c 2014-12-03 10:40:02.000000000 +0800
  4. @@ -100,7 +100,6 @@ static int msm_cpuidle_enter(
  5.             &__get_cpu_var(msm_cpuidle_notifiers);
  6.  #endif
  7.  
  8. -   local_irq_disable();
  9.  
  10.  #ifdef CONFIG_MSM_SLEEP_STATS
  11.     atomic_notifier_call_chain(head, MSM_CPUIDLE_STATE_ENTER, NULL);
  12. diff -rupN old/arch/arm/mach-msm/pm-8x60.c new/arch/arm/mach-msm/pm-8x60.c
  13. --- old/arch/arm/mach-msm/pm-8x60.c 2014-11-23 20:41:52.000000000 +0800
  14. +++ new/arch/arm/mach-msm/pm-8x60.c 2014-12-03 10:40:02.000000000 +0800
  15. @@ -343,8 +343,8 @@ mode_sysfs_add_cpu_exit:
  16.  
  17.  static int __init msm_pm_mode_sysfs_add(void)
  18.  {
  19. -   struct kobject *module_kobj;
  20. -   struct kobject *modes_kobj;
  21. +   struct kobject *module_kobj = NULL;
  22. +   struct kobject *modes_kobj = NULL;
  23.     unsigned int cpu;
  24.     int ret;
  25.  
  26. diff -rupN old/drivers/i2c/busses/i2c-qup.c new/drivers/i2c/busses/i2c-qup.c
  27. --- old/drivers/i2c/busses/i2c-qup.c    2014-10-02 17:59:20.000000000 +0800
  28. +++ new/drivers/i2c/busses/i2c-qup.c    2014-12-03 11:59:16.000000000 +0800
  29. @@ -36,6 +36,8 @@ MODULE_LICENSE("GPL v2");
  30.  MODULE_VERSION("0.2");
  31.  MODULE_ALIAS("platform:i2c_qup");
  32.  
  33. +#define TEST_RAMDUMP 0
  34. +
  35.  static int i2c_debug_flag;
  36.  enum {
  37.     QUP_CONFIG              = 0x0,
  38. @@ -285,7 +287,7 @@ qup_i2c_interrupt(int irq, void *devid)
  39.     }
  40.  
  41.     if (status & I2C_STATUS_ERROR_MASK) {
  42. -       dev_info(dev->dev, "QUP: I2C status flags :0x%x, irq:%d\n",
  43. +       dev_err(dev->dev, "QUP: I2C status flags :0x%x, irq:%d\n",
  44.             status, irq);
  45.         err = status;
  46.        
  47. @@ -294,12 +296,11 @@ qup_i2c_interrupt(int irq, void *devid)
  48.             /* Ensure that state is written before ISR exits */
  49.             mb();
  50.         }
  51. -
  52.         goto intr_done;
  53.     }
  54.  
  55.     if (status1 & 0x7F) {
  56. -       dev_info(dev->dev, "QUP: QUP status flags :0x%x\n", status1);
  57. +       dev_err(dev->dev, "QUP: QUP status flags :0x%x\n", status1);
  58.         err = -status1;
  59.        
  60.         if (dev->num_irqs == 1) {
  61. @@ -754,7 +755,7 @@ static void qup_i2c_recover_bus_busy(str
  62.                  __func__, dev->adapter.nr, gpio_clk, gpio_dat);
  63.  
  64.     if ((gpio_clk == -1) && (gpio_dat == -1)) {
  65. -       dev_info(dev->dev, "Recovery failed due to undefined GPIO's\n");
  66. +       dev_err(dev->dev, "Recovery failed due to undefined GPIO's\n");
  67.         return;
  68.     }
  69.  
  70. @@ -762,7 +763,7 @@ static void qup_i2c_recover_bus_busy(str
  71.     for (i = 0; i < ARRAY_SIZE(i2c_rsrcs); ++i) {
  72.         if (msm_gpiomux_write(dev->i2c_gpios[i], GPIOMUX_ACTIVE,
  73.                 &recovery_config, &old_gpio_setting[i])) {
  74. -           dev_info(dev->dev, "GPIO pins have no active setting\n");
  75. +           dev_err(dev->dev, "GPIO pins have no active setting\n");
  76.             goto recovery_end;
  77.         }
  78.     }
  79. diff -rupN old/drivers/input/touchscreen/synaptics_3200.c new/drivers/input/touchscreen/synaptics_3200.c
  80. --- old/drivers/input/touchscreen/synaptics_3200.c  2014-11-20 18:43:20.000000000 +0800
  81. +++ new/drivers/input/touchscreen/synaptics_3200.c  2014-12-03 12:39:54.000000000 +0800
  82. @@ -4064,7 +4064,7 @@ err_check_functionality_failed:
  83.     return ret;
  84.  }
  85.  
  86. -static int __devexit synaptics_ts_remove(struct i2c_client *client)
  87. +static int synaptics_ts_remove(struct i2c_client *client)
  88.  {
  89.     struct synaptics_ts_data *ts = i2c_get_clientdata(client);
  90.     unregister_early_suspend(&ts->early_suspend);
  91. diff -rupN old/drivers/usb/core/hcd.c new/drivers/usb/core/hcd.c
  92. --- old/drivers/usb/core/hcd.c  2014-08-18 18:52:28.000000000 +0800
  93. +++ new/drivers/usb/core/hcd.c  2014-12-03 09:57:30.000000000 +0800
  94. @@ -44,7 +44,6 @@
  95.  
  96.  #include "usb.h"
  97.  
  98. -#include <mach/board_htc.h>
  99.  
  100.  
  101.  
  102. @@ -1619,14 +1618,7 @@ void usb_hcd_resume_root_hub (struct usb
  103.     spin_lock_irqsave (&hcd_root_hub_lock, flags);
  104.     if (hcd->rh_registered) {
  105.         set_bit(HCD_FLAG_WAKEUP_PENDING, &hcd->flags);
  106. -      
  107. -       if (hcd->product_desc && !strncmp(hcd->product_desc, "Qualcomm EHCI Host Controller using HSIC", 40)) {
  108. -           if (get_radio_flag() & RADIO_FLAG_USB_UPLOAD)
  109. -               pr_info("%s[%d]: Queue hcd->wakeup_work\n", __FUNCTION__, __LINE__);
  110. -           queue_work(pm_rt_wq, &hcd->wakeup_work);
  111. -       } else
  112. -      
  113. -           queue_work(pm_wq, &hcd->wakeup_work);
  114. +       queue_work(pm_wq, &hcd->wakeup_work);
  115.     }
  116.     spin_unlock_irqrestore (&hcd_root_hub_lock, flags);
  117.  }
  118. diff -rupN old/drivers/usb/host/ehci-hcd.c new/drivers/usb/host/ehci-hcd.c
  119. --- old/drivers/usb/host/ehci-hcd.c 2014-08-18 18:52:36.000000000 +0800
  120. +++ new/drivers/usb/host/ehci-hcd.c 2014-12-03 12:47:18.000000000 +0800
  121. @@ -788,8 +788,6 @@ static irqreturn_t ehci_irq (struct usb_
  122.    
  123.     if (unlikely ((status & STS_FATAL) != 0)) {
  124.         ehci_err(ehci, "fatal error\n");
  125. -       if (hcd->driver->dump_qh_qtd)
  126. -           hcd->driver->dump_qh_qtd(hcd);
  127.         if (hcd->driver->dump_regs)
  128.             hcd->driver->dump_regs(hcd);
  129.        
  130. diff -rupN old/drivers/usb/host/ehci-msm-hsic.c new/drivers/usb/host/ehci-msm-hsic.c
  131. --- old/drivers/usb/host/ehci-msm-hsic.c    2014-11-16 21:32:02.000000000 +0800
  132. +++ new/drivers/usb/host/ehci-msm-hsic.c    2014-12-03 12:30:32.000000000 +0800
  133. @@ -1,6 +1,6 @@
  134.  /* ehci-msm-hsic.c - HSUSB Host Controller Driver Implementation
  135.   *
  136. - * Copyright (c) 2011-2012, Code Aurora Forum. All rights reserved.
  137. + * Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
  138.   *
  139.   * Partly derived from ehci-fsl.c and ehci-hcd.c
  140.   * Copyright (c) 2000-2004 by David Brownell
  141. @@ -403,96 +403,6 @@ static inline struct usb_hcd *hsic_to_hc
  142.     return container_of((void *) mehci, struct usb_hcd, hcd_priv);
  143.  }
  144.  
  145. -
  146. -static void dump_qh_qtd(struct usb_hcd *hcd)
  147. -{
  148. -   struct msm_hsic_hcd *mehci = hcd_to_hsic(hcd);
  149. -   struct ehci_hcd *ehci = &mehci->ehci;
  150. -   struct ehci_qh  *head, *qh;
  151. -   struct ehci_qh_hw *hw;
  152. -   struct ehci_qtd *qtd;
  153. -   struct list_head *entry, *tmp;
  154. -   struct ehci_qtd *qtd1;
  155. -
  156. -   pr_info("-----------------------------DUMPING EHCI QHs & QTDs-------------------------------\n");
  157. -
  158. -   head = ehci->async;
  159. -   hw = head->hw;
  160. -   pr_info("Current QH: %p\n",head);
  161. -   pr_info("Overlay:\n next %08x, info %x %x, cur qtd %x\n", hw->hw_next, hw->hw_info1, hw->hw_info2, hw->hw_current);
  162. -   qtd =  (struct ehci_qtd *)&hw->hw_qtd_next;
  163. -   pr_info("Current QTD: %p\n",qtd);
  164. -   pr_info("td %p, next qtd %08x %08x, token %08x p0=%08x\n", qtd,
  165. -       hc32_to_cpup(ehci, &qtd->hw_next),
  166. -       hc32_to_cpup(ehci, &qtd->hw_alt_next),
  167. -       hc32_to_cpup(ehci, &qtd->hw_token),
  168. -       hc32_to_cpup(ehci, &qtd->hw_buf [0]));
  169. -   if (qtd->hw_buf [1])
  170. -       pr_info("  p1=%08x p2=%08x p3=%08x p4=%08x\n",
  171. -           hc32_to_cpup(ehci, &qtd->hw_buf[1]),
  172. -           hc32_to_cpup(ehci, &qtd->hw_buf[2]),
  173. -           hc32_to_cpup(ehci, &qtd->hw_buf[3]),
  174. -           hc32_to_cpup(ehci, &qtd->hw_buf[4]));
  175. -   pr_info("---------------------------LIST OF QTDs for current QH: %p---------------------------------\n", head);
  176. -   list_for_each_safe (entry, tmp, &head->qtd_list) {
  177. -
  178. -   qtd1 = list_entry (entry, struct ehci_qtd, qtd_list);
  179. -   pr_info("td %p, next qtd %08x %08x, token %08x p0=%08x\n", qtd1,
  180. -           hc32_to_cpup(ehci, &qtd1->hw_next),
  181. -           hc32_to_cpup(ehci, &qtd1->hw_alt_next),
  182. -           hc32_to_cpup(ehci, &qtd1->hw_token),
  183. -           hc32_to_cpup(ehci, &qtd1->hw_buf [0]));
  184. -   if (qtd->hw_buf [1])
  185. -       pr_info("  p1=%08x p2=%08x p3=%08x p4=%08x\n",
  186. -               hc32_to_cpup(ehci, &qtd1->hw_buf[1]),
  187. -               hc32_to_cpup(ehci, &qtd1->hw_buf[2]),
  188. -               hc32_to_cpup(ehci, &qtd1->hw_buf[3]),
  189. -               hc32_to_cpup(ehci, &qtd1->hw_buf[4]));
  190. -
  191. -   }
  192. -   qh = head->qh_next.qh;
  193. -   while (qh){
  194. -       pr_info("---------------------------QH %p--------------------------\n",qh);
  195. -       hw = qh->hw;
  196. -       pr_info("Current QH: %p\n",qh);
  197. -       pr_info("Overlay:\n next %08x, info %x %x, cur qtd %x\n", hw->hw_next, hw->hw_info1, hw->hw_info2, hw->hw_current);
  198. -
  199. -       qtd = (struct ehci_qtd *)&hw->hw_qtd_next;
  200. -       pr_info("Current QTD: %p\n",qtd);
  201. -       pr_info("td %p, next qtd %08x %08x, token %08x p0=%08x\n", qtd,
  202. -               hc32_to_cpup(ehci, &qtd->hw_next),
  203. -               hc32_to_cpup(ehci, &qtd->hw_alt_next),
  204. -               hc32_to_cpup(ehci, &qtd->hw_token),
  205. -               hc32_to_cpup(ehci, &qtd->hw_buf [0]));
  206. -       if (qtd->hw_buf [1])
  207. -           pr_info("  p1=%08x p2=%08x p3=%08x p4=%08x\n",
  208. -                   hc32_to_cpup(ehci, &qtd->hw_buf[1]),
  209. -                   hc32_to_cpup(ehci, &qtd->hw_buf[2]),
  210. -                   hc32_to_cpup(ehci, &qtd->hw_buf[3]),
  211. -                   hc32_to_cpup(ehci, &qtd->hw_buf[4]));
  212. -
  213. -       list_for_each_safe (entry, tmp, &head->qtd_list) {
  214. -
  215. -       qtd1 = list_entry (entry, struct ehci_qtd, qtd_list);
  216. -       pr_info("td %p, next qtd %08x %08x, token %08x p0=%08x\n", qtd1,
  217. -               hc32_to_cpup(ehci, &qtd1->hw_next),
  218. -               hc32_to_cpup(ehci, &qtd1->hw_alt_next),
  219. -               hc32_to_cpup(ehci, &qtd1->hw_token),
  220. -               hc32_to_cpup(ehci, &qtd1->hw_buf [0]));
  221. -       if (qtd->hw_buf [1])
  222. -           pr_info("  p1=%08x p2=%08x p3=%08x p4=%08x\n",
  223. -                   hc32_to_cpup(ehci, &qtd1->hw_buf[1]),
  224. -                   hc32_to_cpup(ehci, &qtd1->hw_buf[2]),
  225. -                   hc32_to_cpup(ehci, &qtd1->hw_buf[3]),
  226. -                   hc32_to_cpup(ehci, &qtd1->hw_buf[4]));
  227. -
  228. -       }
  229. -
  230. -       qh = qh->qh_next.qh;
  231. -   }
  232. -}
  233. -
  234. -
  235.  static void dump_hsic_regs(struct usb_hcd *hcd)
  236.  {
  237.     int i;
  238. @@ -674,19 +584,19 @@ static void register_usb_notification_fu
  239.  
  240.  #define ULPI_IO_TIMEOUT_USEC   (10 * 1000)
  241.  
  242. -#define USB_PHY_VDD_DIG_VOL_NONE   0
  243. -#define USB_PHY_VDD_DIG_VOL_MIN        945000
  244. -#define USB_PHY_VDD_DIG_VOL_MAX        1320000
  245. +#define USB_PHY_VDD_DIG_VOL_NONE   0 /*uV */
  246. +#define USB_PHY_VDD_DIG_VOL_MIN        945000 /* uV */
  247. +#define USB_PHY_VDD_DIG_VOL_MAX        1320000 /* uV */
  248.  
  249.  #define HSIC_DBG1_REG      0x38
  250.  
  251. -static const int vdd_val[VDD_TYPE_MAX][VDD_VAL_MAX] = {
  252. -       {  
  253. +static int vdd_val[VDD_TYPE_MAX][VDD_VAL_MAX] = {
  254. +       {   /* VDD_CX CORNER Voting */
  255.             [VDD_NONE]  = RPM_VREG_CORNER_NONE,
  256.             [VDD_MIN]   = RPM_VREG_CORNER_NOMINAL,
  257.             [VDD_MAX]   = RPM_VREG_CORNER_HIGH,
  258.         },
  259. -       {  
  260. +       {   /* VDD_CX Voltage Voting */
  261.             [VDD_NONE]  = USB_PHY_VDD_DIG_VOL_NONE,
  262.             [VDD_MIN]   = USB_PHY_VDD_DIG_VOL_MIN,
  263.             [VDD_MAX]   = USB_PHY_VDD_DIG_VOL_MAX,
  264. @@ -1716,7 +1626,6 @@ static struct hc_driver msm_hsic_driver
  265.  
  266.     .log_urb_complete   = dbg_log_event,
  267.     .dump_regs      = dump_hsic_regs,
  268. -   .dump_qh_qtd        =  dump_qh_qtd,
  269.  
  270.     .reset_sof_bug_handler  = ehci_hsic_reset_sof_bug_handler,
  271.  };
  272. @@ -2142,7 +2051,6 @@ static int __devinit ehci_hsic_msm_probe
  273.         dev_dbg(mehci->dev, "wakeup_irq: %d\n", mehci->wakeup_irq);
  274.     }
  275.  
  276. -
  277.     ret = msm_hsic_init_clocks(mehci, 1);
  278.     if (ret) {
  279.         dev_err(&pdev->dev, "unable to initialize clocks\n");
  280. @@ -2227,8 +2135,8 @@ static int __devinit ehci_hsic_msm_probe
  281.             msm_bus_scale_register_client(pdata->bus_scale_table);
  282.        
  283.         if (mehci->bus_perf_client) {
  284. -               mehci->bus_vote = true;
  285. -               queue_work(ehci_wq, &mehci->bus_vote_w);
  286. +           mehci->bus_vote = true;
  287. +           queue_work(ehci_wq, &mehci->bus_vote_w);
  288.         } else {
  289.             dev_err(&pdev->dev, "%s: Failed to register BUS "
  290.                         "scaling client!!\n", __func__);
  291. @@ -2277,15 +2185,6 @@ put_hcd:
  292.     return ret;
  293.  }
  294.  
  295. -#if defined(CONFIG_ARCH_APQ8064) && defined(CONFIG_USB_EHCI_MSM_HSIC)
  296. -extern int mdm_is_in_restart;
  297. -static void dbg_hsic_usage_count_delay_work_fn(struct work_struct *work)
  298. -{
  299. -    panic("msm_hsic_host usage count is not 0 !!!");
  300. -}
  301. -static DECLARE_DELAYED_WORK(dbg_hsic_usage_count_delay_work, dbg_hsic_usage_count_delay_work_fn);
  302. -#endif
  303. -
  304.  static int __devexit ehci_hsic_msm_remove(struct platform_device *pdev)
  305.  {
  306.     struct usb_hcd *hcd = platform_get_drvdata(pdev);
  307. @@ -2340,21 +2239,6 @@ static int __devexit ehci_hsic_msm_remov
  308.     iounmap(hcd->regs);
  309.     usb_put_hcd(hcd);
  310.  
  311. -  
  312. -   #if defined(CONFIG_ARCH_APQ8064) && defined(CONFIG_USB_EHCI_MSM_HSIC)
  313. -   if (pdev) {
  314. -       int usage_count = atomic_read(&(pdev->dev.power.usage_count));
  315. -       dev_info(&(pdev->dev), "%s[%d] usage_count is [%d] msm_hsic_host_dev:0x%p &pdev->dev:0x%p mdm_is_in_restart:%d\n",
  316. -           __func__, __LINE__, usage_count, msm_hsic_host_dev, &(pdev->dev), mdm_is_in_restart);
  317. -
  318. -       if (mdm_is_in_restart && usage_count != 0) {
  319. -           pr_info("%s[%d] !!! usage_count:%d is not 0 !!!\n", __func__, __LINE__, usage_count);
  320. -           atomic_set(&(pdev->dev.power.usage_count), 0);
  321. -       }
  322. -   }
  323. -   #endif
  324. -  
  325. -
  326.     return 0;
  327.  }
  328.  
  329. diff -rupN old/include/linux/pm_runtime.h new/include/linux/pm_runtime.h
  330. --- old/include/linux/pm_runtime.h  2014-11-17 08:45:14.000000000 +0800
  331. +++ new/include/linux/pm_runtime.h  2014-12-03 09:58:34.000000000 +0800
  332. @@ -23,7 +23,6 @@
  333.  #ifdef CONFIG_PM_RUNTIME
  334.  
  335.  extern struct workqueue_struct *pm_wq;
  336. -extern struct workqueue_struct *pm_rt_wq;
  337.  extern int __pm_runtime_idle(struct device *dev, int rpmflags);
  338.  extern int __pm_runtime_suspend(struct device *dev, int rpmflags);
  339.  extern int __pm_runtime_resume(struct device *dev, int rpmflags);
  340. diff -rupN old/include/linux/usb/hcd.h new/include/linux/usb/hcd.h
  341. --- old/include/linux/usb/hcd.h 2014-08-18 18:52:02.000000000 +0800
  342. +++ new/include/linux/usb/hcd.h 2014-12-03 12:47:44.000000000 +0800
  343. @@ -245,7 +245,6 @@ struct hc_driver {
  344.     void    (*log_urb_complete)(struct urb *urb, char * event,
  345.             unsigned extra);
  346.     void    (*dump_regs)(struct usb_hcd *);
  347. -   void    (*dump_qh_qtd)(struct usb_hcd *);
  348.     void    (*reset_sof_bug_handler)(struct usb_hcd *hcd, u32 val);
  349.    
  350.     int (*set_int_latency)(struct usb_hcd *hcd, int latency);
  351. diff -rupN old/kernel/power/main.c new/kernel/power/main.c
  352. --- old/kernel/power/main.c 2014-11-17 08:29:32.000000000 +0800
  353. +++ new/kernel/power/main.c 2014-12-03 10:22:34.000000000 +0800
  354. @@ -509,7 +509,7 @@ perflock_show(struct kobject *kobj, stru
  355.     if (is_perf_lock_active(&user_cpu_perf_lock) != 0)
  356.         perf_enable |= (1 << PERF_LOCK_INVALID);
  357.  
  358. -   return sprintf(buf, "%d", perf_enable);
  359. +   return sprintf(buf, "%d\n", perf_enable);
  360.  }
  361.  
  362.  static inline void user_cpufreq_perf_lock(int level, int val)
  363. @@ -626,7 +626,7 @@ cpufreq_ceiling_show(struct kobject *kob
  364.     if (is_perf_lock_active(&user_cpu_ceiling_lock) != 0)
  365.         ceiling_enable |= (1 << PERF_LOCK_INVALID);
  366.  
  367. -   return sprintf(buf, "%d", ceiling_enable);
  368. +   return sprintf(buf, "%d\n", ceiling_enable);
  369.  }
  370.  
  371.  static inline void user_cpufreq_ceiling_lock(int level, int val)
  372. @@ -695,7 +695,7 @@ cpunum_floor_show(struct kobject *kobj,
  373.     else
  374.         i++;
  375.  
  376. -   return sprintf(buf, "%d", i);
  377. +   return sprintf(buf, "%d\n", i);
  378.  }
  379.  
  380.  static ssize_t
  381. @@ -734,7 +734,7 @@ cpunum_ceiling_show(struct kobject *kobj
  382.     else
  383.         i++;
  384.  
  385. -   return sprintf(buf, "%d", i);
  386. +   return sprintf(buf, "%d\n", i);
  387.  }
  388.  
  389.  static ssize_t
  390. @@ -841,15 +841,11 @@ static struct attribute_group attr_group
  391.  
  392.  #ifdef CONFIG_PM_RUNTIME
  393.  struct workqueue_struct *pm_wq;
  394. -struct workqueue_struct *pm_rt_wq;
  395.  EXPORT_SYMBOL_GPL(pm_wq);
  396.  
  397.  static int __init pm_start_workqueue(void)
  398.  {
  399.     pm_wq = alloc_workqueue("pm", WQ_FREEZABLE, 0);
  400. -  
  401. -   pm_rt_wq = alloc_workqueue("pm_rt", WQ_FREEZABLE | WQ_HIGHPRI , 0);
  402. -  
  403.  
  404.     return pm_wq ? 0 : -ENOMEM;
  405.  }
  406. @@ -875,7 +871,6 @@ static int __init pm_init(void)
  407.     tc_ev_timer.function = &tc_ev_stop;
  408.     tc_ev_processed = 1;
  409.  
  410. -
  411.     power_kobj = kobject_create_and_add("power", NULL);
  412.  #ifdef CONFIG_PERFLOCK
  413.     perf_lock_init(&user_cpu_perf_lock, TYPE_PERF_LOCK, PERF_LOCK_HIGHEST, "User CPU Highest Perflock");
  414. diff -rupN old/kernel/sched/core.c new/kernel/sched/core.c
  415. --- old/kernel/sched/core.c 2014-11-27 10:51:14.000000000 +0800
  416. +++ new/kernel/sched/core.c 2014-12-03 10:19:00.000000000 +0800
  417. @@ -1242,15 +1242,17 @@ static int
  418.  try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags)
  419.  {
  420.     unsigned long flags;
  421. -   int cpu, success = 0;
  422. +   int cpu, src_cpu, success = 0;
  423.  
  424.     smp_wmb();
  425.     raw_spin_lock_irqsave(&p->pi_lock, flags);
  426. +   src_cpu = task_cpu(p);
  427. +   cpu = src_cpu;
  428. +
  429.     if (!(p->state & state))
  430.         goto out;
  431.  
  432.     success = 1;
  433. -   cpu = task_cpu(p);
  434.  
  435.     if (p->on_rq && ttwu_remote(p, wake_flags))
  436.         goto stat;
  437. @@ -1273,7 +1275,7 @@ try_to_wake_up(struct task_struct *p, un
  438.         p->sched_class->task_waking(p);
  439.  
  440.     cpu = select_task_rq(p, SD_BALANCE_WAKE, wake_flags);
  441. -   if (task_cpu(p) != cpu) {
  442. +   if (src_cpu != cpu) {
  443.         wake_flags |= WF_MIGRATED;
  444.         set_task_cpu(p, cpu);
  445.     }
  446. @@ -1321,8 +1323,7 @@ out:
  447.  
  448.  int wake_up_process(struct task_struct *p)
  449.  {
  450. -   WARN_ON(task_is_stopped_or_traced(p));
  451. -   return try_to_wake_up(p, TASK_NORMAL, 0);
  452. +   return try_to_wake_up(p, TASK_ALL, 0);
  453.  }
  454.  EXPORT_SYMBOL(wake_up_process);
  455.  
  456. @@ -1659,7 +1660,6 @@ unsigned long this_cpu_load(void)
  457.  }
  458.  
  459.  
  460. -
  461.  static atomic_long_t calc_load_tasks;
  462.  static unsigned long calc_load_update;
  463.  unsigned long avenrun[3];
  464. @@ -1847,7 +1847,6 @@ static void calc_load_account_active(str
  465.     this_rq->calc_load_update += LOAD_FREQ;
  466.  }
  467.  
  468. -
  469.  #define DEGRADE_SHIFT      7
  470.  static const unsigned char
  471.         degrade_zero_ticks[CPU_LOAD_IDX_MAX] = {0, 8, 32, 64, 128};
  472. @@ -3132,7 +3131,7 @@ int sched_setscheduler(struct task_struc
  473.  {
  474.     return __sched_setscheduler(p, policy, param, true);
  475.  }
  476. -EXPORT_SYMBOL(sched_setscheduler);
  477. +EXPORT_SYMBOL_GPL(sched_setscheduler);
  478.  
  479.  int sched_setscheduler_nocheck(struct task_struct *p, int policy,
  480.                    const struct sched_param *param)
  481. @@ -5031,6 +5030,7 @@ struct sched_domain *build_sched_domain(
  482.     if (!sd)
  483.         return child;
  484.  
  485. +   set_domain_attribute(sd, attr);
  486.     cpumask_and(sched_domain_span(sd), cpu_map, tl->mask(cpu));
  487.     if (child) {
  488.         sd->level = child->level + 1;
  489. @@ -5038,7 +5038,6 @@ struct sched_domain *build_sched_domain(
  490.         child->parent = sd;
  491.     }
  492.     sd->child = child;
  493. -   set_domain_attribute(sd, attr);
  494.  
  495.     return sd;
  496.  }
  497. diff -rupN old/kernel/signal.c new/kernel/signal.c
  498. --- old/kernel/signal.c 2014-11-17 10:37:42.000000000 +0800
  499. +++ new/kernel/signal.c 2014-12-03 11:52:24.000000000 +0800
  500. @@ -1395,7 +1395,6 @@ static void ptrace_stop(int exit_code, i
  501.         if (gstop_done)
  502.             do_notify_parent_cldstop(current, false, why);
  503.  
  504. -      
  505.         __set_current_state(TASK_RUNNING);
  506.         if (clear_code)
  507.             current->exit_code = 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement