opensimpad: apmd signal handling bug finally fixed!
authorFrederic Bompart <frederic@unknown.openembedded.org>
Fri, 2 Dec 2005 17:23:12 +0000 (17:23 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Fri, 2 Dec 2005 17:23:12 +0000 (17:23 +0000)
Solution found in handhelds-sa-hh40:
http://handhelds.org/cgi-bin/cvsweb.cgi/linux/kernel/arch/arm/mach-sa1100/apm.c

packages/linux/opensimpad-2.4.25-vrs2-pxa1-jpm1/simpad-apm.diff
packages/linux/opensimpad-2.4.27-vrs1-pxa1-jpm1/simpad-apm.patch
packages/linux/opensimpad_2.4.25-vrs2-pxa1-jpm1.bb
packages/linux/opensimpad_2.4.27-vrs1-pxa1-jpm1.bb

index dfdbd99..8b66c04 100644 (file)
  static struct file_operations apm_bios_fops = {
        owner:          THIS_MODULE,
        read:           do_read,
-@@ -454,6 +484,48 @@
+@@ -454,6 +484,50 @@
  
  #define APM_INIT_ERROR_RETURN return -1
  
 +      as->writer = 1;
 +      as->reader = 0;
 +
-+      while (!signal_pending (current)) {
++      for (;;) {
 +              interruptible_sleep_on(&apm_suspend_waitqueue);
++              if (signal_pending (current))
++                      break;
 +
 +              pm_suggest_suspend();
 +
index 900124e..1446bc2 100644 (file)
  static struct file_operations apm_bios_fops = {
        owner:          THIS_MODULE,
        read:           do_read,
-@@ -454,6 +483,48 @@
+@@ -454,6 +483,50 @@
  
  #define APM_INIT_ERROR_RETURN return -1
  
 +      as->writer = 1;
 +      as->reader = 0;
 +
-+      while (!signal_pending (current)) {
++      for (;;) {
 +              interruptible_sleep_on(&apm_suspend_waitqueue);
++              if (signal_pending (current))
++                      break;
 +
 +              pm_suggest_suspend();
 +
index 6970dd9..3f750e1 100644 (file)
@@ -6,7 +6,7 @@ KV = "${@bb.data.getVar('PV',d,True).split('-')[0]}"
 VRSV = "${@bb.data.getVar('PV',d,True).split('-')[1]}"
 PXAV = "${@bb.data.getVar('PV',d,True).split('-')[2]}"
 JPMV = "${@bb.data.getVar('PV',d,True).split('-')[3]}"
-PR = "r20"
+PR = "r21"
 
 FILESPATH = "${FILE_DIRNAME}/opensimpad-${PV}:${FILE_DIRNAME}/opensimpad:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
 
index 95e483a..df46fad 100644 (file)
@@ -7,7 +7,7 @@ VRSV = "${@bb.data.getVar('PV',d,True).split('-')[1]}"
 PXAV = "${@bb.data.getVar('PV',d,True).split('-')[2]}"
 JPMV = "${@bb.data.getVar('PV',d,True).split('-')[3]}"
 USBV= "usb20040610"
-PR = "r2"
+PR = "r3"
 
 FILESPATH = "${FILE_DIRNAME}/opensimpad-${PV}:${FILE_DIRNAME}/opensimpad:${FILE_DIRNAME}/files:${FILE_DIRNAME}"