linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Bluez-devel] hcid: memory alignment problems on arm
@ 2005-09-21 10:55 pHilipp Zabel
  2005-09-21 20:53 ` Marcel Holtmann
  0 siblings, 1 reply; 6+ messages in thread
From: pHilipp Zabel @ 2005-09-21 10:55 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 193 bytes --]

Hi!

hcid causes alignment traps on arm architecture with the dbus part enabled.
I worked around this with the attached patch.
Can anybody help me to do this the right way?

--
Philipp

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: hcid-alignment-fix.patch --]
[-- Type: text/x-patch; name="hcid-alignment-fix.patch", Size: 1195 bytes --]

--- bluez-utils-2.20/hcid/dbus.c.orig	2005-09-21 11:27:26 +0200
+++ bluez-utils-2.20/hcid/dbus.c	2005-09-21 11:27:35 +0200
@@ -120,6 +121,7 @@
 	DBusMessage *message;
 #ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
 	uint8_t *addr = (uint8_t *) &ci->bdaddr;
+	uint32_t ci_out = ci->out;
 #else
 	DBusMessageIter iter;
 #endif
@@ -138,7 +140,7 @@
 	bacpy(&req->bda, &ci->bdaddr);
 
 #ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
-	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci_out,
 			DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
 			&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
 #else
@@ -261,6 +263,8 @@
 	DBusMessage *message;
 #ifndef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
 	DBusMessageIter iter;
+#else
+	int32_t tmp_rssi = rssi;
 #endif
 	char *local_addr, *peer_addr;
 	bdaddr_t tmp;
@@ -276,11 +280,12 @@
 	}
 
 #ifdef HAVE_DBUS_MESSAGE_ITER_GET_BASIC
+
 	dbus_message_append_args(message,
 					DBUS_TYPE_STRING, &local_addr,
 					DBUS_TYPE_STRING, &peer_addr,
 					DBUS_TYPE_UINT32, &class,
-					DBUS_TYPE_INT32, &rssi,
+					DBUS_TYPE_INT32, &tmp_rssi,
 					DBUS_TYPE_INVALID);
 #else
 	dbus_message_append_iter_init(message, &iter);

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bluez-devel] hcid: memory alignment problems on arm
  2005-09-21 10:55 [Bluez-devel] hcid: memory alignment problems on arm pHilipp Zabel
@ 2005-09-21 20:53 ` Marcel Holtmann
  2005-09-22  9:18   ` pHilipp Zabel
  0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2005-09-21 20:53 UTC (permalink / raw)
  To: bluez-devel

Hi Philipp,

> hcid causes alignment traps on arm architecture with the dbus part enabled.
> I worked around this with the attached patch.
> Can anybody help me to do this the right way?

the patch looks good, but you must redo it against the latest CVS. I
removed the compat code for the D-Bus 0.23 API.

Regards

Marcel




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. 
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bluez-devel] hcid: memory alignment problems on arm
  2005-09-21 20:53 ` Marcel Holtmann
@ 2005-09-22  9:18   ` pHilipp Zabel
  2005-09-22  9:35     ` Marcel Holtmann
  0 siblings, 1 reply; 6+ messages in thread
From: pHilipp Zabel @ 2005-09-22  9:18 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 267 bytes --]

Hi Marcel,

On 9/21/05, Marcel Holtmann <marcel@holtmann.org> wrote:
> the patch looks good, but you must redo it against the latest CVS. I
> removed the compat code for the D-Bus 0.23 API.

Thanks, I have attached an updated patch against CVS.

--
Philipp

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: hcid-alignment-fix.patch --]
[-- Type: text/x-patch; name="hcid-alignment-fix.patch", Size: 1111 bytes --]

--- utils/hcid/dbus.c.orig	2005-09-22 11:12:17 +0200
+++ utils/hcid/dbus.c	2005-09-22 11:14:36 +0200
@@ -124,6 +124,7 @@
 	DBusPendingCall *pending = NULL;
 	struct pin_request *req;
 	uint8_t *addr = (uint8_t *) &ci->bdaddr;
+	uint32_t tmp_out = ci->out;
 
 	message = dbus_message_new_method_call(SERVICE_NAME, PATH_NAME,
 						INTERFACE_NAME, REQUEST_NAME);
@@ -136,7 +137,7 @@
 	req->dev = dev;
 	bacpy(&req->bda, &ci->bdaddr);
 
-	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &tmp_out,
 			DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
 			&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
 
@@ -233,6 +234,7 @@
 {
 	DBusMessage *message;
 	char *local_addr, *peer_addr;
+	int32_t tmp_rssi = rssi;
 	bdaddr_t tmp;
 
 	baswap(&tmp, local); local_addr = batostr(&tmp);
@@ -249,7 +251,7 @@
 					DBUS_TYPE_STRING, &local_addr,
 					DBUS_TYPE_STRING, &peer_addr,
 					DBUS_TYPE_UINT32, &class,
-					DBUS_TYPE_INT32, &rssi,
+					DBUS_TYPE_INT32, &tmp_rssi,
 					DBUS_TYPE_INVALID);
 
 	if (dbus_connection_send(connection, message, NULL) == FALSE) {

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bluez-devel] hcid: memory alignment problems on arm
  2005-09-22  9:18   ` pHilipp Zabel
@ 2005-09-22  9:35     ` Marcel Holtmann
  2005-09-22  9:43       ` Marcel Holtmann
  0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2005-09-22  9:35 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 373 bytes --]

Hi Philipp,

> On 9/21/05, Marcel Holtmann <marcel@holtmann.org> wrote:
> > the patch looks good, but you must redo it against the latest CVS. I
> > removed the compat code for the D-Bus 0.23 API.
> 
> Thanks, I have attached an updated patch against CVS.

is the attached patch also working for you? I think it is better to use
the D-Bus specific types.

Regards

Marcel


[-- Attachment #2: patch --]
[-- Type: text/x-patch, Size: 1381 bytes --]

Index: hcid/dbus.c
===================================================================
RCS file: /cvsroot/bluez/utils/hcid/dbus.c,v
retrieving revision 1.16
diff -u -r1.16 dbus.c
--- hcid/dbus.c	15 Sep 2005 08:07:53 -0000	1.16
+++ hcid/dbus.c	22 Sep 2005 09:33:58 -0000
@@ -124,6 +124,7 @@
 	DBusPendingCall *pending = NULL;
 	struct pin_request *req;
 	uint8_t *addr = (uint8_t *) &ci->bdaddr;
+	dbus_uint32_t out = ci->out;
 
 	message = dbus_message_new_method_call(SERVICE_NAME, PATH_NAME,
 						INTERFACE_NAME, REQUEST_NAME);
@@ -136,7 +137,7 @@
 	req->dev = dev;
 	bacpy(&req->bda, &ci->bdaddr);
 
-	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &out,
 			DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
 			&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
 
@@ -233,6 +234,8 @@
 {
 	DBusMessage *message;
 	char *local_addr, *peer_addr;
+	dbus_uint32_t tmp_class;
+	dbus_int32_t tmp_rssi = rssi;
 	bdaddr_t tmp;
 
 	baswap(&tmp, local); local_addr = batostr(&tmp);
@@ -248,8 +251,8 @@
 	dbus_message_append_args(message,
 					DBUS_TYPE_STRING, &local_addr,
 					DBUS_TYPE_STRING, &peer_addr,
-					DBUS_TYPE_UINT32, &class,
-					DBUS_TYPE_INT32, &rssi,
+					DBUS_TYPE_UINT32, &tmp_class,
+					DBUS_TYPE_INT32, &tmp_rssi,
 					DBUS_TYPE_INVALID);
 
 	if (dbus_connection_send(connection, message, NULL) == FALSE) {

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bluez-devel] hcid: memory alignment problems on arm
  2005-09-22  9:35     ` Marcel Holtmann
@ 2005-09-22  9:43       ` Marcel Holtmann
  2005-09-22 11:24         ` pHilipp Zabel
  0 siblings, 1 reply; 6+ messages in thread
From: Marcel Holtmann @ 2005-09-22  9:43 UTC (permalink / raw)
  To: bluez-devel

[-- Attachment #1: Type: text/plain, Size: 362 bytes --]

Hi Philipp,

> > > the patch looks good, but you must redo it against the latest CVS. I
> > > removed the compat code for the D-Bus 0.23 API.
> > 
> > Thanks, I have attached an updated patch against CVS.
> 
> is the attached patch also working for you? I think it is better to use
> the D-Bus specific types.

oops. Wrong patch. Try this one.

Regards

Marcel


[-- Attachment #2: patch --]
[-- Type: text/x-patch, Size: 1387 bytes --]

Index: hcid/dbus.c
===================================================================
RCS file: /cvsroot/bluez/utils/hcid/dbus.c,v
retrieving revision 1.16
diff -u -r1.16 dbus.c
--- hcid/dbus.c	15 Sep 2005 08:07:53 -0000	1.16
+++ hcid/dbus.c	22 Sep 2005 09:42:55 -0000
@@ -124,6 +124,7 @@
 	DBusPendingCall *pending = NULL;
 	struct pin_request *req;
 	uint8_t *addr = (uint8_t *) &ci->bdaddr;
+	dbus_bool_t out = ci->out;
 
 	message = dbus_message_new_method_call(SERVICE_NAME, PATH_NAME,
 						INTERFACE_NAME, REQUEST_NAME);
@@ -136,7 +137,7 @@
 	req->dev = dev;
 	bacpy(&req->bda, &ci->bdaddr);
 
-	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &ci->out,
+	dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &out,
 			DBUS_TYPE_ARRAY, DBUS_TYPE_BYTE,
 			&addr, sizeof(bdaddr_t), DBUS_TYPE_INVALID);
 
@@ -233,6 +234,8 @@
 {
 	DBusMessage *message;
 	char *local_addr, *peer_addr;
+	dbus_uint32_t tmp_class = class;
+	dbus_int32_t tmp_rssi = rssi;
 	bdaddr_t tmp;
 
 	baswap(&tmp, local); local_addr = batostr(&tmp);
@@ -248,8 +251,8 @@
 	dbus_message_append_args(message,
 					DBUS_TYPE_STRING, &local_addr,
 					DBUS_TYPE_STRING, &peer_addr,
-					DBUS_TYPE_UINT32, &class,
-					DBUS_TYPE_INT32, &rssi,
+					DBUS_TYPE_UINT32, &tmp_class,
+					DBUS_TYPE_INT32, &tmp_rssi,
 					DBUS_TYPE_INVALID);
 
 	if (dbus_connection_send(connection, message, NULL) == FALSE) {

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Bluez-devel] hcid: memory alignment problems on arm
  2005-09-22  9:43       ` Marcel Holtmann
@ 2005-09-22 11:24         ` pHilipp Zabel
  0 siblings, 0 replies; 6+ messages in thread
From: pHilipp Zabel @ 2005-09-22 11:24 UTC (permalink / raw)
  To: bluez-devel

Hi Marcel,

> > is the attached patch also working for you? I think it is better to use
> > the D-Bus specific types.

It does work exactly the same as mine.
I still don't see pin request messages on the system message bus,
but  the alignment issues are gone.

thanks
--
Philipp


-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. 
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-09-22 11:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-21 10:55 [Bluez-devel] hcid: memory alignment problems on arm pHilipp Zabel
2005-09-21 20:53 ` Marcel Holtmann
2005-09-22  9:18   ` pHilipp Zabel
2005-09-22  9:35     ` Marcel Holtmann
2005-09-22  9:43       ` Marcel Holtmann
2005-09-22 11:24         ` pHilipp Zabel

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).