linux-stable-rt/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
..
Kconfig
Makefile
config_roms.c
config_roms.h
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
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
dma.c
dma.h
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-ioctl.h
ieee1394.h ieee1394: consolidate uses of IEEE1934_BUSID_MAGIC 2009-01-04 23:50:34 +01:00
ieee1394_core.c
ieee1394_core.h
ieee1394_hotplug.h
ieee1394_transactions.c
ieee1394_transactions.h
ieee1394_types.h
init_ohci1394_dma.c
iso.c
iso.h
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
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
raw1394.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
raw1394.h
sbp2.c ieee1394: mark all hpsb_address_ops instances as const 2009-01-04 23:50:32 +01:00
sbp2.h
video1394.c
video1394.h