fwcontrol -R is broken

Dieter BSD dieterbsd at engineer.com
Wed Sep 7 16:12:17 UTC 2011


Hi Sean,

> Please try this patch sooner rather than later.  I'd like to get it
> patched pre-9.0 at a minimum if this resolves the issues.

I added your patch to the 8.2 sources and compiled it in a
7.1 chroot in hopes of avoiding a kernel panic.

It printed out some garbage.  I looked at the code a bit and added
the following:

        char *recv_data = NULL;
        char *send_data = NULL;
 
+       /* debug */
+       snprintf(devbase, sizeof(devbase), "ERROR: variable devbase is uninitialized ");
+
        if (argc < 2) {
                for (current_board = 0; current_board < MAX_BOARDS; current_board++) {
                        snprintf(devbase, sizeof(devbase), "%s%d.0", device_string, current_board);


Now I get:

./fwcontrol -R /tmp/foo.dv
fwcontrol: main: Error opening firewire controller #0 ERROR: variable
devbase is uninitialized  in recv_data detect: No such file or directory

Note: I didn't have to turn on the camcorder to get this far.
For full testing it might be possible to connect two controllers
together and do fwcontrol -S on one and fwcontrol -R on the other,
avoiding the need for a camcorder or similar DV device.

-----

IIRC someone changed fwcontrol awhile back so that the order of
arguments isn't supposed to matter anymore?  If so it isn't working:

./fwcontrol -u 0 -R /tmp/foo.dv     
fwcontrol: main: Error opening firewire controller #0 ERROR: variable
devbase is uninitialized  in recv_data detect: No such file or directory

./fwcontrol -R /tmp/foo.dv -u 0
fwcontrol: detect_recv_fn: error reading from device: Resource temporarily
unavailable

The "error reading from device" is probably due to the camcorder
not being on.  Rearranging the args got it working a few days ago.

But this is just a FYI, not a suggestion that someone wade
into improving fwcontrol's arg handling.
I can live with having to arrange the args in a particular order.
I can live with having to compile fwcontrol in a 7.1 chroot.
But kern/113785 is a big problem with no workaround.  :-(
So 113785 is the bug I really need a fix for.


More information about the freebsd-firewire mailing list