Patchwork [3.5.y.z,extended,stable] Patch "Revert "Staging: Android alarm: IOCTL command encoding fix"" has been added to staging queue

mail settings
Submitter Herton Ronaldo Krzesinski
Date Dec. 7, 2012, 4:05 p.m.
Message ID <>
Download mbox | patch
Permalink /patch/204555/
State New
Headers show


Herton Ronaldo Krzesinski - Dec. 7, 2012, 4:05 p.m.
This is a note to let you know that I have just added a patch titled

    Revert "Staging: Android alarm: IOCTL command encoding fix"

to the linux-3.5.y-queue branch of the 3.5.y.z extended stable tree 
which can be found at:;a=shortlog;h=refs/heads/linux-3.5.y-queue

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.5.y.z tree, see



From 00e277727baca5330496533f78ccd080b16afd12 Mon Sep 17 00:00:00 2001
From: Colin Cross <>
Date: Wed, 7 Nov 2012 18:21:51 -0800
Subject: [PATCH] Revert "Staging: Android alarm: IOCTL command encoding fix"

commit d38e0e3fed4f58bcddef4dc93a591dfe2f651cb0 upstream.

Commit 6bd4a5d96c08dc2380f8053b1bd4f879f55cd3c9 changed the
ANDROID_ALARM_GET_TIME ioctls from IOW to IOR.  While technically
correct, the _IOC_DIR bits are ignored by alarm_ioctl, so the
commit breaks a userspace ABI used by all existing Android devices
for a purely cosmetic reason.  Revert it.

Cc: Dae S. Kim <>
Signed-off-by: Colin Cross <>
Signed-off-by: Greg Kroah-Hartman <>
Signed-off-by: Herton Ronaldo Krzesinski <>
 drivers/staging/android/android_alarm.h |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)



diff --git a/drivers/staging/android/android_alarm.h b/drivers/staging/android/android_alarm.h
index f2ffd96..d0cafd6 100644
--- a/drivers/staging/android/android_alarm.h
+++ b/drivers/staging/android/android_alarm.h
@@ -51,12 +51,10 @@  enum android_alarm_return_flags {
 #define ANDROID_ALARM_WAIT                  _IO('a', 1)

 #define ALARM_IOW(c, type, size)            _IOW('a', (c) | ((type) << 4), size)
-#define ALARM_IOR(c, type, size)            _IOR('a', (c) | ((type) << 4), size)
 /* Set alarm */
 #define ANDROID_ALARM_SET(type)             ALARM_IOW(2, type, struct timespec)
 #define ANDROID_ALARM_SET_AND_WAIT(type)    ALARM_IOW(3, type, struct timespec)
-#define ANDROID_ALARM_GET_TIME(type)        ALARM_IOR(4, type, struct timespec)
+#define ANDROID_ALARM_GET_TIME(type)        ALARM_IOW(4, type, struct timespec)
 #define ANDROID_ALARM_SET_RTC               _IOW('a', 5, struct timespec)
 #define ANDROID_ALARM_BASE_CMD(cmd)         (cmd & ~(_IOC(0, 0, 0xf0, 0)))
 #define ANDROID_ALARM_IOCTL_TO_TYPE(cmd)    (_IOC_NR(cmd) >> 4)