atom feed5 messages in org.freebsd.freebsd-bluetoothRe: obexapp outgoing problem
FromSent OnAttachments
Maksim YevmenkinFeb 23, 2009 10:49 am 
Pav LucistnikFeb 23, 2009 1:02 pm 
Maksim YevmenkinFeb 23, 2009 1:42 pm 
Pav LucistnikFeb 23, 2009 2:14 pm 
Maksim YevmenkinFeb 23, 2009 5:46 pm 
Subject:Re: obexapp outgoing problem
From:Pav Lucistnik (pa@FreeBSD.org)
Date:Feb 23, 2009 2:14:31 pm
List:org.freebsd.freebsd-bluetooth

Maksim Yevmenkin píše v po 23. 02. 2009 v 13:42 -0800:

2009/2/23 Pav Lucistnik <pa@freebsd.org>:

Maksim Yevmenkin píše v po 23. 02. 2009 v 10:49 -0800:

Hi Pav,

I'm having troubles sending files to phone over obexapp, similar to

http://www.freebsd.org/cgi/query-pr.cgi?pr=128297

except this time it's on 7-STABLE and the messages goes about ubt bulk transfer having SHORT_XFER error first and then TIMEOUT.

The box panics inside UHCI code, or just hangs.

What can I do to help it?

is that a new behavior? or was it always like that? since you have mentioned ng_ubt(4), i assume you are using usb1 (and not HPS's usb2) stack, right? the only big change that went into ng_ubt(4) (long time ago) is support for isoc. transfers. however, this change was not mfc'd, and you said you are running 7-stable, so this can not be it.

if it was working before then i would try to revert back to the time when it was working, then incrementally updating trying to pinpoint time frame when it stopped working. once you know the time frame look closely for commits that could have affected it.

It's 7-STABLE so OLDUSB. I don't know if it's new behaviour, this is first time I tried sending files over Bluetooth to the phone, instead of mailing them.

PS: other way (phone -> PC) using obexapp -s works flawlessly.

ok, could you please try the following patch. its cut-and-paste so you may need redo it manually (its simple enough).

diff -u10 ng_ubt.c.orig ng_ubt.c --- ng_ubt.c.orig 2007-07-12 19:19:51.000000000 -0700 +++ ng_ubt.c 2009-02-23 13:39:32.000000000 -0800 @@ -1378,21 +1378,21 @@

m_copydata(m, 0, m->m_pkthdr.len, sc->sc_bulk_out_buffer);

/* Initialize a bulk-out USB transfer and then schedule it */ usbd_setup_xfer( sc->sc_bulk_out_xfer, sc->sc_bulk_out_pipe, (usbd_private_handle) sc->sc_node, sc->sc_bulk_out_buffer, m->m_pkthdr.len, - USBD_NO_COPY, + USBD_FORCE_SHORT_XFER | USBD_NO_COPY, USBD_DEFAULT_TIMEOUT, /* XXX */ ubt_bulk_out_complete);

NG_NODE_REF(sc->sc_node);

status = usbd_transfer(sc->sc_bulk_out_xfer); if (status != USBD_NORMAL_COMPLETION && status != USBD_IN_PROGRESS) { NG_UBT_ERR( "%s: %s - Could not start bulk-out transfer. %s (%d)\n", __func__, device_get_nameunit(sc->sc_dev), usbd_errstr(status),

No change, now I get bulk-out transfer error SHORT_XFER twice and hang.