* [PATCH] compat-wireless: support backporting bluetooth to RHEL 6
@ 2010-11-12 18:13 John W. Linville
2010-11-12 18:39 ` Johannes Berg
0 siblings, 1 reply; 2+ messages in thread
From: John W. Linville @ 2010-11-12 18:13 UTC (permalink / raw)
To: Luis R. Rodriguez; +Cc: linux-wireless, linux-bluetooth
RHEL kernels in general (and RHEL 6 kernels in particular) often
contain features backported from later upstream kernels. This means
that the normal KERNEL_VERSION checks are not always correct for RHEL
kernels. This patch augments a number of such tests to be compatible
with building compat-wireless on RHEL 6 kernels.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
This patch contains the bluetooth backporting portions...
diff -up compat-wireless-2.6.36-4/patches/16-bluetooth.patch.orig compat-wireless-2.6.36-4/patches/16-bluetooth.patch
--- compat-wireless-2.6.36-4/patches/16-bluetooth.patch.orig 2010-11-12 12:42:52.602182539 -0500
+++ compat-wireless-2.6.36-4/patches/16-bluetooth.patch 2010-11-12 12:46:36.049287339 -0500
@@ -35,7 +35,7 @@ here still, but for now we keep this her
}
EXPORT_SYMBOL(bt_sock_unregister);
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int bt_sock_create(struct net *net, struct socket *sock, int proto,
int kern)
+#else
@@ -48,7 +48,7 @@ here still, but for now we keep this her
read_lock(&bt_proto_lock);
if (bt_proto[proto] && try_module_get(bt_proto[proto]->owner)) {
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
err = bt_proto[proto]->create(net, sock, proto, kern);
+#else
+ err = bt_proto[proto]->create(net, sock, proto);
@@ -127,7 +127,7 @@ here still, but for now we keep this her
.obj_size = sizeof(struct hci_pinfo)
};
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int hci_sock_create(struct net *net, struct socket *sock, int protocol,
int kern)
+#else
@@ -180,7 +180,7 @@ here still, but for now we keep this her
return hidp_queue_report(session, buf, rsize);
}
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int hidp_output_raw_report(struct hid_device *hid, unsigned char *data, size_t count,
unsigned char report_type)
{
@@ -438,7 +438,7 @@ here still, but for now we keep this her
return sk;
}
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int rfcomm_sock_create(struct net *net, struct socket *sock,
int protocol, int kern)
+#else
@@ -505,7 +505,7 @@ here still, but for now we keep this her
return sk;
}
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int sco_sock_create(struct net *net, struct socket *sock, int protocol,
int kern)
+#else
@@ -532,7 +532,7 @@ here still, but for now we keep this her
.obj_size = sizeof(struct bt_sock)
};
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int bnep_sock_create(struct net *net, struct socket *sock, int protocol,
int kern)
+#else
@@ -547,7 +547,7 @@ here still, but for now we keep this her
.obj_size = sizeof(struct bt_sock)
};
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int cmtp_sock_create(struct net *net, struct socket *sock, int protocol,
int kern)
+#else
@@ -562,7 +562,7 @@ here still, but for now we keep this her
.obj_size = sizeof(struct bt_sock)
};
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int hidp_sock_create(struct net *net, struct socket *sock, int protocol,
int kern)
+#else
@@ -577,7 +577,7 @@ here still, but for now we keep this her
return sk;
}
-+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
static int l2cap_sock_create(struct net *net, struct socket *sock, int protocol,
int kern)
+#else
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] compat-wireless: support backporting bluetooth to RHEL 6
2010-11-12 18:13 [PATCH] compat-wireless: support backporting bluetooth to RHEL 6 John W. Linville
@ 2010-11-12 18:39 ` Johannes Berg
0 siblings, 0 replies; 2+ messages in thread
From: Johannes Berg @ 2010-11-12 18:39 UTC (permalink / raw)
To: John W. Linville; +Cc: Luis R. Rodriguez, linux-wireless, linux-bluetooth
On Fri, 2010-11-12 at 13:13 -0500, John W. Linville wrote:
>
> -+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32))
> ++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,32)) || (defined(RHEL_MAJOR) && (RHEL_MAJOR == 6))
Hmmm. I kinda support this, but I'd rather see something like a header
file having
#if (LINUX_VERSION ...) || ...
#define OLD_BT_API 1
#endif
and then using ifdef OLD_BT_API? That way, other distros don't get into
a huge mess trying to add that too, and something like we had two days
ago where we had to make it work on some other custom kernel would be
much easier too since we can just amend the one check or define/undef
the OLD_BT_API symbol.
johannes
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-11-12 18:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-12 18:13 [PATCH] compat-wireless: support backporting bluetooth to RHEL 6 John W. Linville
2010-11-12 18:39 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).