1
linux/drivers/ieee1394
Harvey Harrison c82cdea1e1 ieee1934: dv1394: interrupt enabling/disabling broken on big-endian
After annotating the frame structs, this was left:
drivers/ieee1394/dv1394.c:2113:23: warning: invalid assignment: |=
drivers/ieee1394/dv1394.c:2113:23:    left side has type restricted __le32
drivers/ieee1394/dv1394.c:2113:23:    right side has type int
drivers/ieee1394/dv1394.c:2121:24: warning: invalid assignment: &=
drivers/ieee1394/dv1394.c:2121:24:    left side has type restricted __le32
drivers/ieee1394/dv1394.c:2121:24:    right side has type int
drivers/ieee1394/dv1394.c:2123:24: warning: invalid assignment: |=
drivers/ieee1394/dv1394.c:2123:24:    left side has type restricted __le32
drivers/ieee1394/dv1394.c:2123:24:    right side has type int

Which looks like a real bug on a big-endian arch as it would set/clear
the wrong bit.

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>

Bill Fink writes:

I finally got a chance to test the patch on my kernel, and live DV
viewing using xine still worked fine.  Although I admit to being
mystified how it works both before and after the patch, since the
cpu_to_le32() calls that were added should result in byte swapping on
PPC that wasn't being done before.  I guess that either the code paths
involved aren't actually being triggered by my xine DV viewing, or
there's some fortuitous palindromic setting of bits.

Tested-by: Bill Fink <billfink@mindspring.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2009-01-04 23:50:36 +01:00
..
config_roms.c ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts 2007-04-30 00:00:30 +02:00
config_roms.h ieee1394: eth1394: don't autoload by hotplug when ohci1394 starts 2007-04-30 00:00:30 +02:00
csr1212.c ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets 2009-01-04 23:50:34 +01:00
csr1212.h ieee1394: mark bus_info_data as a __be32 array 2009-01-04 23:50:35 +01:00
csr.c ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
csr.h ieee1394: replace CSR_SET_BUS_INFO_GENERATION macro 2009-01-04 23:50:35 +01:00
dma.c ieee1394: dump mmapped iso buffers in core files 2008-07-14 13:06:02 +02:00
dma.h ieee1394: move some comments from declaration to definition 2007-04-30 00:00:28 +02:00
dv1394-private.h ieee1394: dv1394: annotate frame input/output structs as little endian 2009-01-04 23:50:36 +01:00
dv1394.c ieee1934: dv1394: interrupt enabling/disabling broken on big-endian 2009-01-04 23:50:36 +01:00
dv1394.h
eth1394.c ieee1394: eth1394: trivial sparse annotations 2009-01-04 23:50:35 +01:00
eth1394.h ieee1394: eth1394: trivial sparse annotations 2009-01-04 23:50:35 +01:00
highlevel.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
highlevel.h ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
hosts.c ieee1394: replace CSR_SET_BUS_INFO_GENERATION macro 2009-01-04 23:50:35 +01:00
hosts.h ieee1394: mark bus_info_data as a __be32 array 2009-01-04 23:50:35 +01:00
ieee1394_core.c ieee1394: limit early node speed to host interface speed 2008-04-18 17:55:31 +02:00
ieee1394_core.h ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
ieee1394_hotplug.h [PATCH] ieee1394: remove redundant code from ieee1394_hotplug.h 2006-07-03 12:02:30 -04:00
ieee1394_transactions.c ieee1394: remove unused code 2008-01-30 22:22:20 +01:00
ieee1394_transactions.h ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
ieee1394_types.h ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
ieee1394-ioctl.h ieee1394: cycle timer read extension for raw1394 2007-02-17 14:39:33 +01:00
ieee1394.h ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
init_ohci1394_dma.c x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
iso.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
iso.h ieee1394: rawiso: requeue packet for transmission after skipped cycle 2008-04-25 18:15:45 +02:00
Kconfig ieee1394: Kconfig menu touch-up 2008-06-19 00:12:36 +02:00
Makefile x86: early boot debugging via FireWire (ohci1394_dma=early) 2008-01-30 13:34:11 +01:00
nodemgr.c ieee1394: ignore nonzero Bus_Info_Block.max_rom, fetch config ROM in quadlets 2009-01-04 23:50:34 +01:00
nodemgr.h ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
ohci1394.c ieee1394: mark bus_info_data as a __be32 array 2009-01-04 23:50:35 +01:00
ohci1394.h ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
pcilynx.c ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
pcilynx.h ieee1394: pcilynx: trivial endian annotation 2009-01-04 23:50:34 +01:00
raw1394-private.h ieee1394: raw1394: replace BKL by local mutex, make ioctl() and mmap() thread-safe 2008-10-15 22:21:08 +02:00
raw1394.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
raw1394.h ieee1394: remove old isochronous ABI 2007-07-10 00:07:41 +02:00
sbp2.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
sbp2.h ieee1394: sbp2: enforce s/g segment size limit 2008-10-15 22:21:07 +02:00
video1394.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2008-10-16 15:02:24 -07:00
video1394.h