aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
*-. Merge branches 'sh/serial-rework' and 'sh/oprofile'Paul Mundt2008-10-28
|\ \
| | * sh: oprofile: Fix up the SH7750 performance counter name.Paul Mundt2008-10-26
| | | | | | | | | | | | | | | | | | | | | | | | Rather than varying this on a subtype level, we use the counter type as a generic identifier. This simplifies logic in the userspace tools where no fundamental difference exists across the various subtypes. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
| * | serial: sh-sci: Kill off all of the SCI/SCIF special casing.Paul Mundt2008-10-02
| | | | | | | | | | | | | | | | | | | | | | | | This was added at a time when the compiler did a less than stellar job of optimizing out dead code. These days this tends to be less of a concern, so kill it all off. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: Simplify and lock down the ISA tuning.Paul Mundt2008-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ISA tuning as it is today can not cope with all of the different variations that are possible, so all we can do is a best attempt based on the CPU family. The DSP and FPU generation are already at odds with each other, and the nommu tuning we weren't handling at all. Additionally, for platforms that never had an FPU, the -nofpu variant never existed, meaning that we would lose out on family granular tuning completely in certain cases. With tat out of the way, we were also using -up versions, allowing for later instructions that branched off of a particular subset of the ISA, but are not actually reflected on the hardware being targetted. This leads to some confusion, and the possibility of bogus instructions on older parts. Kill that off and lock it down to the family being built for specifically. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: sh7785lcr: Select uImage as default image target.Paul Mundt2008-10-28
| | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: Add on-chip RTC support for SH7722.Paul Mundt2008-10-28
| | | | | | | | | | | | Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | SH 7366 needs SCIF_ONLYKuninori Morimoto2008-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | SH 7366 has compile bug. because there is no SCIF_ONLY for SH 7366. this patch add it. Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | gdrom: Fix compile errorNobuhiro Iwamatsu2008-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Return value and argument of block_device_operations.release of gdrom was changed. This patch fix this problem. Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Acked-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: Provide a sample defconfig for the UL2 (SH7366) board.Kuninori Morimoto2008-10-28
| | | | | | | | | | | | | | | Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | sh: Fix FPU tuning on toolchains with mismatched multilib targets.Paul Mundt2008-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Presently there is very little standing in the way of using an SH-4 toolchain for building an SH-2 kernel, and vice versa. Binutils itself has no limitations whatsoever and supports explicit ISA hinting, which we already use with varying degrees of success today. This leaves GCC as the odd one out, due to a rather dubious policy decision by the GCC folks to not include all of the CPU family variants in the default list of multilib targets in GCC4. Despite best efforts to the contrary, libgcc itself already contains awareness of the various CPU types and remains generally usable, allowing it to safely be referenced even on a mismatched target (and indeed, explicit ISA tuning by binutils keeps us honest in terms of ensuring that we do not link incompatible objects in). In order to support this, a couple of changes had to be made. Firstly, the introduction of MAYBE_DECLARE_EXPORT(), which provides a __weak extern reference for libgcc resident routines when finer-grained -m<cpu-family> based tuning is not supported by the toolchain. This fixes up the __sdivsi3_i4i and __udivsi3_i4i references when dealing with SH-2 kernels linked with an SH-4 libgcc. Secondly, in case where we are unable to find a suitable match for CPU family tuning but still have a toolchain that defaults to FP instruction generation, a suitable nofpu target must be selected. This is accomplished by selecting the first nofpu multilib target supported by the toolchain, which is also necessary for selecting the proper libgcc to link against. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
* | | Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-blockLinus Torvalds2008-10-27
|\ \ \ | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://git.kernel.dk/linux-2.6-block: libata: fix NCQ devices behind port multipliers scsi: make sure that scsi_init_shared_tag_map() doesn't overwrite existing map
| * | | libata: fix NCQ devices behind port multipliersJens Axboe2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For devices behind sata port multipliers, we have to make sure that they share a tag map since all tags for that PMP must be unique. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| * | | scsi: make sure that scsi_init_shared_tag_map() doesn't overwrite existing mapJens Axboe2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now callers have to check whether scsi_host->bqt is already set up, it's much cleaner to just have scsi_init_shared_tag_map() does this check on its own. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* | | | Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linusLinus Torvalds2008-10-27
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (33 commits) MIPS: lemote/lm2e: Added io_map_base to pci controller MIPS: TXx9: Make firmware parameter passing more robust MIPS: Markeins: Remove unnecessary define and cleanup comments, etc. MIPS: Markeins: Extract ll_emma2rh_* functions MIPS: Markeins: Remove runtime debug prints MIPS: EMMA: Fold arch/mips/emma/{common,markeins}/irq*.c into markeins/irq.c MIPS: EMMA2RH: Remove emma2rh_gpio_irq_base MIPS: EMMA2RH: Remove emma2rh_sw_irq_base MIPS: EMMA2RH: Remove emma2rh_irq_base global variable MIPS: EMMA2RH: Remove emma2rh_sync on read operation MIPS: EMMA: Move <asm/emma2rh> to <asm/emma> dir MIPS: EMMA: Move arch/mips/emma2rh/ into arch/mips/emma/ MIPS: EMMA: Kconfig reorganization MIPS: Add CONFIG_CPU_R5500 for NEC VR5500 series processors MIPS: RB532: Disable the right device MIPS: Add support for NXP PNX833x (STB222/5) into linux kernel MIPS: TXx9: CONFIG_TOSHIBA_RBTX4939 spelling MIPS: Fix KGDB build error INPUT: sgi_btns: Add license specification MIPS: IP22: ip22-int.c header file weeding. ...
| * | | MIPS: lemote/lm2e: Added io_map_base to pci controllerZhang Le2008-10-27
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Zhang Le <r0bertz@gentoo.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: TXx9: Make firmware parameter passing more robustGeert Uytterhoeven2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When booting Linux on a txx9 board with VxWorks boot loader, it crashes in prom_getenv(), as VxWorks doesn't pass firmware parameters in a0-a3 (in my case, the actual leftover values in these registers were 0x80002000, 0x80001fe0, 0x2000, and 0x20). Make the parsing of argc, argv, and envp a bit more robust by checking if argc is a number below CKSEG0, and argv/envp point to CKSEG0. Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Markeins: Remove unnecessary define and cleanup comments, etc.Shinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Markeins: Extract ll_emma2rh_* functionsShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These functions are completely ineffective. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Markeins: Remove runtime debug printsShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove runtime db_* macros as we don't need them any more. In general, such helpers are useful for initial porting, but once approved, they are not indispensable. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA: Fold arch/mips/emma/{common,markeins}/irq*.c into markeins/irq.cShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current EMMA2RH irq code is mess. Before cleaning it up, gather them in one place as a first step. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA2RH: Remove emma2rh_gpio_irq_baseShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's use immediate value, instead. This also saves memory footprint, and probably a little bit faster. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA2RH: Remove emma2rh_sw_irq_baseShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's use immediate value, instead. This also saves memory footprint, and probably a little bit faster. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA2RH: Remove emma2rh_irq_base global variableShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's use immediate value, instead. This also saves memory footprint, and probably a little bit faster. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA2RH: Remove emma2rh_sync on read operationShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It's totally a waste of CPU cycles. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA: Move <asm/emma2rh> to <asm/emma> dirShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll put all EMMA related headers there in the future. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA: Move arch/mips/emma2rh/ into arch/mips/emma/Shinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git mv arch/mips/{emma2rh,emma} and fixups Makefiles. We'll put all NEC EMMA series based machines there in the future. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: EMMA: Kconfig reorganizationShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move EMMA related stuff into arch/mips/emma/Kconfig - Create CONFIG_SOC_EMMA* to handle more EMMA SoCs effectively - Rename CONFIG_MARKEINS into CONFIG_NEC_MARKEINS Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Add CONFIG_CPU_R5500 for NEC VR5500 series processorsShinya Kuribayashi2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We already have sufficient infrastructure to support VR5500 and VR5500A series processors. Here's a Makefile support to make it selectable by ports, and enable it for NEC EMMA2RH Markeins board. This patch also fixes a confused target help, and adds 1Gb PageMask bits supported by VR5500 and its variants. Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi@necel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: RB532: Disable the right devicePhil Sutter2008-10-27
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Add support for NXP PNX833x (STB222/5) into linux kernelDaniel Laird2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following patch add support for the NXP PNX833x SOC. More specifically it adds support for the STB222/5 variant. It fixes the vectored interrupt issue. Signed-off-by: daniel.j.laird <daniel.j.laird@nxp.com> Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: TXx9: CONFIG_TOSHIBA_RBTX4939 spellingGeert Uytterhoeven2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix a typo in the comment for the TOSHIBA_RBTX4939 config option Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com> Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Fix KGDB build errorYoichi Yuasa2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In file included from include/linux/ptrace.h:49, from arch/mips/kernel/kgdb.c:25: /home/yuasa/src/linux/test/mips/linux/arch/mips/include/asm/ptrace.h:123: error: expected declaration specifiers or '...' before '__s64' /home/yuasa/src/linux/test/mips/linux/arch/mips/include/asm/ptrace.h:124: error: expected declaration specifiers or '...' before '__s64' /home/yuasa/src/linux/test/mips/linux/arch/mips/include/asm/ptrace.h:126: error: expected declaration specifiers or '...' before '__u32' /home/yuasa/src/linux/test/mips/linux/arch/mips/include/asm/ptrace.h:127: error: expected declaration specifiers or '...' before '__u32' make[1]: *** [arch/mips/kernel/kgdb.o] Error 1 Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | INPUT: sgi_btns: Add license specificationDmitri Vorobiev2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SGI Volume Button interface driver uses GPL-only symbols platform_driver_unregister and platform_driver_register, but lacks license specification. Thus, when compiled as a module, this driver cannot be installed. This patch fixes this by adding the MODULE_LICENSE() specification. Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@movial.fi> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: IP22: ip22-int.c header file weeding.Ralf Baechle2008-10-27
| | | | | | | | | | | | | | | | Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: IP22: Small cleanupsDmitri Vorobiev2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following functions disable_local1_irq() disable_local2_irq() disable_local3_irq() are needlessly defined global, so make them static. While at it, fix a whitespace error in the same file. Signed-off-by: Dmitri Vorobiev <dmitri.vorobiev@movial.fi> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: RBTX4939: Add smc91x supportAtsushi Nemoto2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add smc91x platform device to RBTX4939 board and some hacks for big endian. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: TXx9: 7 segment LED supportAtsushi Nemoto2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add sysfs interface for 7 segment LED and implement access routine for RBTX4939. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Alchemy: Wire up SD controller on DB/PB1200 boards.Manuel Lauss2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add au1xmmc platform data for PB1200/DB1200 boards and wire up the 2 SD controllers for them. Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: RB532: Set gpio interrupt status and level for CompactFlashFlorian Fainelli2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch sets the correct interrupt status and level in order to get the CompactFlash adapter working. Signed-off-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: RB532: Fix build errorAdrian Bunk2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mips/pci/fixup-rc32434.c must #include <asm/mach-rc32434/irq.h> This patch fixes the following compile error caused by commit 606a083b1e1a357cb66454e4581b80f1a67d8368 (MIPS: RB532: Cleanup the headers again): <-- snip --> ... CC arch/mips/pci/fixup-rc32434.o arch/mips/pci/fixup-rc32434.c: In function 'pcibios_map_irq': arch/mips/pci/fixup-rc32434.c:46: error: 'GROUP4_IRQ_BASE' undeclared (first use in this function) arch/mips/pci/fixup-rc32434.c:46: error: (Each undeclared identifier is reported only once arch/mips/pci/fixup-rc32434.c:46: error: for each function it appears in.) make[2]: *** [arch/mips/pci/fixup-rc32434.o] Error 1 <-- snip --> A virtually identical patch was also submitted by Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>. Signed-off-by: Adrian Bunk <bunk@kernel.org> Acked-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Fix KGDB build errorDavid Daney2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <asm/ptrace.h> is exported to userland so can't include <linux/ptrace.h>, so replace the C99 types with their basic C type equivalents. Bug originally reported and initial patch by Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Set ENOSYS to errno on illegal system call number for syscall(2)Atsushi Nemoto2008-10-27
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Set positive error number to errno on illegal_syscallAtsushi Nemoto2008-10-27
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: SMP: Don't reenable interrupts in stop_this_cpu; use WAIT instruction.Ralf Baechle2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | Noticed by Anirban Sinha <ASinha@zeugmasystems.com>; patch by me. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Don't unmap the memory for dma_sync*.David Daney2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were getting away with this for so long only because the only platform with a non-empty plat_unmap_dma_mem() doesn't call dma_sync_sg_for_cpu() and dma_sync_sg_for_device() from its commonly used drivers. Signed-off-by: David Daney <ddaney@caviumnetworks.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Fix debugfs_create_*'s error checking method for mips/kernel/Zhaolei2008-10-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | debugfs_create_*() returns NULL on error. Make its callers return -ENODEV on error. Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Acked-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
| * | | MIPS: Fix debugfs_create_*'s error checking method for arch/mips/math-emu/Zhaolei2008-10-27
| | |/ | |/| | | | | | | | | | | | | | | | | | | debugfs_create_*() returns NULL on error. Make its caller debugfs_fpuemu return -ENODEV on error. Signed-off-by: Zhao Lei <zhaolei@cn.fujitsu.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* | | Merge branch 'for-linus' of ↵Linus Torvalds2008-10-27
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: firewire: fw-sbp2: fix races firewire: fw-sbp2: delay first login to avoid retries firewire: fw-ohci: initialization failure path fixes firewire: fw-ohci: don't leak dma memory on module removal firewire: fix struct fw_node memory leak firewire: Survive more than 256 bus resets
| * | | firewire: fw-sbp2: fix racesJay Fenlason2008-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1: There is a small race between queue_delayed_work() and its corresponding kref_get(). Do the kref_get first, and _put it again if the queue_delayed_work() failed, so there is no chance of the kref going to zero while the work is scheduled. 2: An SBP2_LOGOUT_REQUEST could be sent out with a login_id full of garbage. Initialize it to an invalid value so we can tell if we ever got a valid login_id. 3: The node ID and generation may have changed but the new values may not yet have been recorded in lu and tgt when the final logout is attempted. Use the latest values from the device in sbp2_release_target(). Signed-off-by: Jay Fenlason <fenlason@redhat.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
| * | | firewire: fw-sbp2: delay first login to avoid retriesStefan Richter2008-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This optimizes firewire-sbp2's device probe for the case that the local node and the SBP-2 node were discovered at the same time. In this case, fw-core's bus management work and fw-sbp2's login and SCSI probe work are scheduled in parallel (in the globally shared workqueue and in fw-sbp2's workqueue, respectively). The bus reset from fw-core may then disturb and extremely delay the login and SCSI probe because the latter fails with several command timeouts and retries and has to be retried from scratch. We avoid this particular situation of sbp2_login() and fw_card_bm_work() running in parallel by delaying the first sbp2_login() a little bit. This is meant to be a short-term fix for https://bugzilla.redhat.com/show_bug.cgi?id=466679. In the long run, the SCSI probe, i.e. fw-sbp2's call of __scsi_add_device(), should be parallelized with sbp2_reconnect(). Problem reported and fix tested and confirmed by Alex Kanavin. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>