openwrt/staging/blogic.git
16 years agoide: remove <asm/ide.h> for some archs
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:31 +0000 (22:53 +0200)]
ide: remove <asm/ide.h> for some archs

* Remove <linux/irq.h> include from <asm-ia64.h> (<linux/ide.h> includes
  <linux/interrupt.h> which is enough).

* Remove <asm/ide.h> for alpha/blackfin/h8300/ia64/m32r/sh/x86/xtensa
  (this leaves us with arm/frv/m68k/mips/mn10300/parisc/powerpc/sparc[64]).

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-generic: remove ide_default_{io_base,irq}() inlines (take 3)
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:31 +0000 (22:53 +0200)]
ide-generic: remove ide_default_{io_base,irq}() inlines (take 3)

Replace ide_default_{io_base,irq}() inlines by legacy_{bases,irqs}[].

v2:
Add missing zero-ing of hws[] (caught during testing by Borislav Petkov).

v3:
Fix zero-oing of hws[] for _real_ this time.

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-generic: is no longer needed on ppc32
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:30 +0000 (22:53 +0200)]
ide-generic: is no longer needed on ppc32

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-generic: remove broken PPC_PREP support
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:30 +0000 (22:53 +0200)]
ide-generic: remove broken PPC_PREP support

PPC_PREP has been depending on BROKEN for some time now.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: define MAX_HWIFS in <linux/ide.h>
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:30 +0000 (22:53 +0200)]
ide: define MAX_HWIFS in <linux/ide.h>

* Now that ide_hwif_t instances are allocated dynamically
  the difference between MAX_HWIFS == 2 and MAX_HWIFS == 10
  is ~100 bytes (x86-32) so use MAX_HWIFS == 10 on all archs
  except these ones that use MAX_HWIFS == 1.

* Define MAX_HWIFS in <linux/ide.h> instead of <asm/ide.h>.

[ Please note that avr32/cris/v850 have no <asm/ide.h>
  and alpha/ia64/sh always define CONFIG_IDE_MAX_HWIFS. ]

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove <asm-cris/ide.h>
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:29 +0000 (22:53 +0200)]
ide: remove <asm-cris/ide.h>

Remove <asm-cris/arch-v{10,32}/ide.h> and <asm-cris/ide.h>.

This has been a broken code for some time now and needs rewrite
to match IDE core code / host driver model anyway.

Cc: Jesper Nilsson <Jesper.Nilsson@axis.com>
Cc: Mikael Starvik <mikael.starvik@axis.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-generic: remove "no_pci_devices()" quirk from ide_default_io_base()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:28 +0000 (22:53 +0200)]
ide-generic: remove "no_pci_devices()" quirk from ide_default_io_base()

Since the decision to probe for ISA ide2-6 is now left to the user
"no_pci_devices()" quirk is no longer needed and may be removed.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-generic: minor fix for mips
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:28 +0000 (22:53 +0200)]
ide-generic: minor fix for mips

Move ide_probe_legacy() call to ide_generic_init() so it fails
early if necessary and returns the proper error value (nowadays
ide_default_io_base() is used only by ide-generic).

Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-generic: fix ide_default_io_base() for m32r
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:27 +0000 (22:53 +0200)]
ide-generic: fix ide_default_io_base() for m32r

Fix ide_default_io_base() to match ide_default_irq().

Cc: Hirokazu Takata <takata@linux-m32r.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix <asm-xtensa/ide.h>
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:27 +0000 (22:53 +0200)]
ide: fix <asm-xtensa/ide.h>

* Add missing <asm-generic/ide_iops.h> include.

While at it:

* Remove needless ide_default_{irq,io_base}() inlines.

Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agorapide: add module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:27 +0000 (22:53 +0200)]
rapide: add module_exit()

Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoicside: add module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:27 +0000 (22:53 +0200)]
icside: add module_exit()

Cc: Russell King <rmk@arm.linux.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agovia82cxxx: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:26 +0000 (22:53 +0200)]
via82cxxx: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotrm290: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:26 +0000 (22:53 +0200)]
trm290: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotriflex: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:26 +0000 (22:53 +0200)]
triflex: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotc86c001: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:26 +0000 (22:53 +0200)]
tc86c001: add ->remove method and module_exit()

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoslc90e66: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:25 +0000 (22:53 +0200)]
slc90e66: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agosl82c105: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:25 +0000 (22:53 +0200)]
sl82c105: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agosis5513: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:25 +0000 (22:53 +0200)]
sis5513: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agosiimage: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:25 +0000 (22:53 +0200)]
siimage: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoserverworks: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:25 +0000 (22:53 +0200)]
serverworks: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agosc1200: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:24 +0000 (22:53 +0200)]
sc1200: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agorz1000: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:24 +0000 (22:53 +0200)]
rz1000: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agopiix: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:24 +0000 (22:53 +0200)]
piix: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agopdc202xx_old: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:24 +0000 (22:53 +0200)]
pdc202xx_old: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agopdc202xx_new: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:23 +0000 (22:53 +0200)]
pdc202xx_new: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoopti621: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:23 +0000 (22:53 +0200)]
opti621: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agons87415: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:23 +0000 (22:53 +0200)]
ns87415: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agojmicron: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:22 +0000 (22:53 +0200)]
jmicron: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoit821x: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:22 +0000 (22:53 +0200)]
it821x: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoit8213: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:22 +0000 (22:53 +0200)]
it8213: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agohpt366: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:21 +0000 (22:53 +0200)]
hpt366: add ->remove method and module_exit()

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agohpt34x: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:21 +0000 (22:53 +0200)]
hpt34x: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide/pci/generic: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:21 +0000 (22:53 +0200)]
ide/pci/generic: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agocy82c693: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:21 +0000 (22:53 +0200)]
cy82c693: add ->remove method and module_exit()

Fix the refcounting for dev2 while at it.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agocs5535: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:20 +0000 (22:53 +0200)]
cs5535: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agocs5530: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:20 +0000 (22:53 +0200)]
cs5530: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agocmd64x: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:20 +0000 (22:53 +0200)]
cmd64x: add ->remove method and module_exit()

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoatiixp: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:20 +0000 (22:53 +0200)]
atiixp: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoamd74xx: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:19 +0000 (22:53 +0200)]
amd74xx: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoalim15x3: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:19 +0000 (22:53 +0200)]
alim15x3: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoaec62xx: add ->remove method and module_exit()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:19 +0000 (22:53 +0200)]
aec62xx: add ->remove method and module_exit()

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_pci_remove() helper
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:19 +0000 (22:53 +0200)]
ide: add ide_pci_remove() helper

* Add 'unsigned long host_flags' field to struct ide_host.

* Set ->host_flags in ide_host_alloc_all().

* Always set PCI dev's ->driver_data in ide_pci_init_{one,two}().

* Add ide_pci_remove() helper (the default implementation for
  struct pci_driver's ->remove method).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agovia82cxxx: cleanup ->init_chipset method
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:18 +0000 (22:53 +0200)]
via82cxxx: cleanup ->init_chipset method

* Move the boot message and via_clock setup from
  init_chipset_via82cxxx() to via_init_one().

* Set vdev->via_config in via_init_one() and cleanup
  init_chipset_via82cxxx() accordingly.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agocmd64x: cleanup ->init_chipset method
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:17 +0000 (22:53 +0200)]
cmd64x: cleanup ->init_chipset method

Remove verbose reporting for CMD646 (PCI device revision is always
logged by IDE PCI layer).

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoamd74xx: cleanup ->init_chipset method
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:17 +0000 (22:53 +0200)]
amd74xx: cleanup ->init_chipset method

Move amd_clock setup from init_chipset_amd74xx() to amd74xx_probe().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agotc86c001: remove ->init_chipset method
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:17 +0000 (22:53 +0200)]
tc86c001: remove ->init_chipset method

* Reserve PCI BAR 5 in tc86c001_init_one() and remove no longer needed
  init_chipset_tc86c001().

While at it:

* Add & use DRV_NAME define.

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agovia82cxxx: convert to use ->host_priv
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:17 +0000 (22:53 +0200)]
via82cxxx: convert to use ->host_priv

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agosiimage: convert to use ->host_priv
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:16 +0000 (22:53 +0200)]
siimage: convert to use ->host_priv

While at it:

* Reserve PCI BAR 5 in siimage_init_one() and remove no longer needed
  setup_mmio_siimage().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agosc1200: convert to use ->host_priv
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:16 +0000 (22:53 +0200)]
sc1200: convert to use ->host_priv

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoit821x: convert to use ->host_priv
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:16 +0000 (22:53 +0200)]
it821x: convert to use ->host_priv

While at it:

* Allocate both struct it821x_dev instances at once.

* Don't leak itdevs on ide_pci_init_one() failure.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agohpt366: convert to use ->host_priv
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:15 +0000 (22:53 +0200)]
hpt366: convert to use ->host_priv

While at it:

* Allocate both struct hpt_info instances at once.

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoaec62xx: convert to use ->host_priv
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:15 +0000 (22:53 +0200)]
aec62xx: convert to use ->host_priv

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_device_{get,put}() helpers
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:15 +0000 (22:53 +0200)]
ide: add ide_device_{get,put}() helpers

* Add 'struct ide_host *host' field to ide_hwif_t and set it
  in ide_host_alloc_all().

* Add ide_device_{get,put}() helpers loosely based on SCSI's
  scsi_device_{get,put}() ones.

* Convert IDE device drivers to use ide_device_{get,put}().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ->dev and ->host_priv fields to struct ide_host
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:14 +0000 (22:53 +0200)]
ide: add ->dev and ->host_priv fields to struct ide_host

* Add 'struct device *dev[2]' and 'void *host_priv' fields
  to struct ide_host.

* Set ->dev[] in ide_host_alloc_all()/ide_setup_pci_device[s]().

* Pass 'void *priv' argument to ide_setup_pci_device[s]()
  and use it to set ->host_priv.

* Set PCI dev's ->driver_data to point to the struct ide_host
  instance if PCI host driver wants to use ->host_priv.

* Rename ide_setup_pci_device[s]() to ide_pci_init_{one,two}().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: call ide_pci_setup_ports() before do_ide_setup_pci_device()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:12 +0000 (22:53 +0200)]
ide: call ide_pci_setup_ports() before do_ide_setup_pci_device()

* Call ide_pci_setup_ports() before do_ide_setup_pci_device()
  in ide_setup_pci_device[s]().

While at it:

* Remove stale FIXMEs.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_setup_pci_controller() call to ide_setup_pci_device[s]()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:12 +0000 (22:53 +0200)]
ide: move ide_setup_pci_controller() call to ide_setup_pci_device[s]()

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: respect dev->irq in do_ide_setup_pci_device() also if 'tried_config'
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:11 +0000 (22:53 +0200)]
ide: respect dev->irq in do_ide_setup_pci_device() also if 'tried_config'

* If device is in the PCI native mode respect dev->irq regardless of
  'tried_config' in do_ide_setup_pci_device().

* Drop no longer needed 'config' argument from ide_setup_pci_controller().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: always call ->init_chipset method in do_ide_setup_pci_device()
Bartlomiej Zolnierkiewicz [Thu, 24 Jul 2008 20:53:11 +0000 (22:53 +0200)]
ide: always call ->init_chipset method in do_ide_setup_pci_device()

Call ->init_chipset method also for 'tried_config' / '!pciirq' conditions.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoMerge branch 'x86/auditsc' of git://git.kernel.org/pub/scm/linux/kernel/git/frob...
Linus Torvalds [Thu, 24 Jul 2008 03:39:21 +0000 (20:39 -0700)]
Merge branch 'x86/auditsc' of git://git./linux/kernel/git/frob/linux-2.6-roland

* 'x86/auditsc' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:
  i386 syscall audit fast-path
  x86_64 ia32 syscall audit fast-path
  x86_64 syscall audit fast-path
  x86_64: remove bogus optimization in sysret_signal

16 years agoMerge branch 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip...
Linus Torvalds [Thu, 24 Jul 2008 02:36:53 +0000 (19:36 -0700)]
Merge branch 'sched/for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  sched: hrtick_enabled() should use cpu_active()
  sched, x86: clean up hrtick implementation
  sched: fix build error, provide partition_sched_domains() unconditionally
  sched: fix warning in inc_rt_tasks() to not declare variable 'rq' if it's not needed
  cpu hotplug: Make cpu_active_map synchronization dependency clear
  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)
  sched: rework of "prioritize non-migratable tasks over migratable ones"
  sched: reduce stack size in isolated_cpu_setup()
  Revert parts of "ftrace: do not trace scheduler functions"

Fixed up conflicts in include/asm-x86/thread_info.h (due to the
TIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and
kernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()
introduction).

16 years agoMerge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Thu, 24 Jul 2008 01:37:44 +0000 (18:37 -0700)]
Merge branch 'cpus4096-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)
  NR_CPUS: Replace NR_CPUS in speedstep-centrino.c
  cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP
  NR_CPUS: Replace NR_CPUS in cpufreq userspace routines
  NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var
  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c
  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c
  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c
  NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c
  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix
  cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target
  cpumask: Provide a generic set of CPUMASK_ALLOC macros
  cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c
  cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c
  cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c
  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c
  cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c
  cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr
  Revert "cpumask: introduce new APIs"
  cpumask: make for_each_cpu_mask a bit smaller
  net: Pass reference to cpumask variable in net/sunrpc/svc.c
  ...

Fix up trivial conflicts in drivers/cpufreq/cpufreq.c manually

16 years agoMerge branch 'core/softlockup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Thu, 24 Jul 2008 01:34:13 +0000 (18:34 -0700)]
Merge branch 'core/softlockup-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'core/softlockup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  softlockup: fix invalid proc_handler for softlockup_panic
  softlockup: fix watchdog task wakeup frequency
  softlockup: fix watchdog task wakeup frequency
  softlockup: show irqtrace
  softlockup: print a module list on being stuck
  softlockup: fix NMI hangs due to lock race - 2.6.26-rc regression
  softlockup: fix false positives on nohz if CPU is 100% idle for more than 60 seconds
  softlockup: fix softlockup_thresh fix
  softlockup: fix softlockup_thresh unaligned access and disable detection at runtime
  softlockup: allow panic on lockup

16 years agoMerge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Thu, 24 Jul 2008 01:24:08 +0000 (18:24 -0700)]
Merge branch 'devel' of /home/rmk/linux-2.6-arm

* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (85 commits)
  [ARM] pxa: add base support for PXA930 Handheld Platform (aka SAAR)
  [ARM] pxa: add base support for PXA930 Evaluation Board (aka TavorEVB)
  [ARM] pxa: add base support for PXA930 (aka Tavor-P)
  [ARM] Update mach-types
  [ARM] pxa: make littleton to use the new smc91x platform data
  [ARM] pxa: make zylonite to use the new smc91x platform data
  [ARM] pxa: make mainstone to use the new smc91x platform data
  [ARM] pxa: make lubbock to use new smc91x platform data
  [NET] smc91x: prepare SMC_USE_PXA_DMA to be specified in platform data
  [NET] smc91x: prepare for SMC_IO_SHIFT to be a platform configurable variable
  [NET] smc91x: add SMC91X_NOWAIT flag to platform data
  [NET] smc91x: favor the use of SMC91X_USE_* instead of SMC_CAN_USE_*
  [NET] smc91x: remove "irq_flags" from "struct smc91x_platdata"
  [ARM] 5146/1: pxa2xx: convert all boards to call pxa2xx_transceiver_mode helper
  Support for LCD on e740 e750 e400 and e800 e-series PDAs
  E-series UDC support
  PXA UDC - allow use of inverted GPIO for pullup
  Add e350 support
  Fix broken e-series build
  E-series GPIO / IRQ definitions.
  ...

16 years agoi386 syscall audit fast-path
Roland McGrath [Tue, 24 Jun 2008 11:16:52 +0000 (04:16 -0700)]
i386 syscall audit fast-path

This adds fast paths for 32-bit syscall entry and exit when
TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
These paths does not need to save and restore all registers as
the general case of tracing does.  Avoiding the iret return path
when syscall audit is enabled helps performance a lot.

Signed-off-by: Roland McGrath <roland@redhat.com>
16 years agox86_64 ia32 syscall audit fast-path
Roland McGrath [Tue, 24 Jun 2008 08:13:31 +0000 (01:13 -0700)]
x86_64 ia32 syscall audit fast-path

This adds fast paths for 32-bit syscall entry and exit when
TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
These paths does not need to save and restore all registers as
the general case of tracing does.  Avoiding the iret return path
when syscall audit is enabled helps performance a lot.

Signed-off-by: Roland McGrath <roland@redhat.com>
16 years agox86_64 syscall audit fast-path
Roland McGrath [Mon, 23 Jun 2008 22:37:04 +0000 (15:37 -0700)]
x86_64 syscall audit fast-path

This adds a fast path for 64-bit syscall entry and exit when
TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
This path does not need to save and restore all registers as
the general case of tracing does.  Avoiding the iret return path
when syscall audit is enabled helps performance a lot.

Signed-off-by: Roland McGrath <roland@redhat.com>
16 years agox86_64: remove bogus optimization in sysret_signal
Roland McGrath [Tue, 24 Jun 2008 03:41:12 +0000 (20:41 -0700)]
x86_64: remove bogus optimization in sysret_signal

This short-circuit path in sysret_signal looks wrong to me.
AFAICT, in practice the branch is never taken--and if it were,
it would go wrong.  To wit, try loading a module whose init
function does set_thread_flag(TIF_IRET), and see insmod crash
(presumably with a wrong user stack pointer).

This is because the FIXUP_TOP_OF_STACK work hasn't been done yet
when we jump around the call to ptregscall_common and get to
int_with_check--where it expects the user RSP,SS,CS and EFLAGS to
have been stored by FIXUP_TOP_OF_STACK.

I don't think it's normally possible to get to sysret_signal with no
_TIF_DO_NOTIFY_MASK bits set anyway, so these two instructions are
already superfluous.  If it ever did happen, it is harmless to call
do_notify_resume with nothing for it to do.

Signed-off-by: Roland McGrath <roland@redhat.com>
16 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
Linus Torvalds [Wed, 23 Jul 2008 19:04:34 +0000 (12:04 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/drzeus/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
  sdhci: highmem capable PIO routines
  sg: reimplement sg mapping iterator
  mmc_test: print message when attaching to card
  mmc: Remove Russell as primecell mci maintainer
  mmc_block: bounce buffer highmem support
  sdhci: fix bad warning from commit c8b3e02
  sdhci: add warnings for bad buffers in ADMA path
  mmc_test: test oversized sg lists
  mmc_test: highmem tests
  s3cmci: ensure host stopped on machine shutdown
  au1xmmc: suspend/resume implementation
  s3cmci: fixes for section mismatch warnings
  pxamci: trivial fix of DMA alignment register bit clearing

16 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
Linus Torvalds [Wed, 23 Jul 2008 19:03:18 +0000 (12:03 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/djbw/async_tx

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (24 commits)
  I/OAT: I/OAT version 3.0 support
  I/OAT: tcp_dma_copybreak default value dependent on I/OAT version
  I/OAT: Add watchdog/reset functionality to ioatdma
  iop_adma: cleanup iop_chan_xor_slot_count
  iop_adma: document how to calculate the minimum descriptor pool size
  iop_adma: directly reclaim descriptors on allocation failure
  async_tx: make async_tx_test_ack a boolean routine
  async_tx: remove depend_tx from async_tx_sync_epilog
  async_tx: export async_tx_quiesce
  async_tx: fix handling of the "out of descriptor" condition in async_xor
  async_tx: ensure the xor destination buffer remains dma-mapped
  async_tx: list_for_each_entry_rcu() cleanup
  dmaengine: Driver for the Synopsys DesignWare DMA controller
  dmaengine: Add slave DMA interface
  dmaengine: add DMA_COMPL_SKIP_{SRC,DEST}_UNMAP flags to control dma unmap
  dmaengine: Add dma_client parameter to device_alloc_chan_resources
  dmatest: Simple DMA memcpy test client
  dmaengine: DMA engine driver for Marvell XOR engine
  iop-adma: fix platform driver hotplug/coldplug
  dmaengine: track the number of clients using a channel
  ...

Fixed up conflict in drivers/dca/dca-sysfs.c manually

16 years agoMerge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel...
Linus Torvalds [Wed, 23 Jul 2008 18:59:37 +0000 (11:59 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/jwessel/linux-2.6-kgdb

* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
  kgdb: kgdboc console poll hooks for mpsc uart
  kgdb: kgdboc console poll hooks for cpm uart
  kgdb, powerpc: arch specific powerpc kgdb support
  kgdb: support for ARCH=arm
  kgdb: remove unused HAVE_ARCH_KGDB_SHADOW_INFO config variable

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
Linus Torvalds [Wed, 23 Jul 2008 18:59:09 +0000 (11:59 -0700)]
Merge git://git./linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (60 commits)
  ide: small whitespace fixes
  ide: ide-cd_ioctl.c fix sparse integer as NULL pointer warnings
  ide: ide-cd.c fix sparse endianness warnings
  ide-cd: convert to using the new atapi_flags
  ide: remove unused PC_FLAG_DRQ_INTERRUPT
  ide-scsi: convert to using the new atapi_flags
  ide-tape: convert to using the new atapi_flags
  ide-floppy: convert to using the new atapi_flags (take 2)
  ide: add per-device flags
  ide: use rq->cmd instead of pc->c in atapi common code
  ide-scsi: pass packet command in rq->cmd
  ide-tape: pass packet command in rq->cmd
  ide-tape: make room for packet command ids in rq->cmd
  ide-floppy: pass packet command in rq->cmd
  ide: remove pc->callback member from ide_atapi_pc
  ide-scsi: use drive->pc_callback instead of pc->callback
  ide-tape: use drive->pc_callback instead of pc->callback
  ide-floppy: use drive->pc_callback instead of pc->callback
  ide: push pc callback pointer into the ide_drive_t structure
  drivers/ide/ide-tape.c: remove double kfree
  ...

16 years agoide: small whitespace fixes
Pavel Machek [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide: small whitespace fixes

Small whitespace fixes for drivers/ide.

Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: ide-cd_ioctl.c fix sparse integer as NULL pointer warnings
Harvey Harrison [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide: ide-cd_ioctl.c fix sparse integer as NULL pointer warnings

The function ide_cd_queue_pc should be checked as the bufflen arg is
dereferenced and lots of callers are passing in NULL.

drivers/ide/ide-cd_ioctl.c:124:46: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd_ioctl.c:149:47: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd_ioctl.c:231:46: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd_ioctl.c:374:46: warning: Using plain integer as NULL pointer

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: ide-cd.c fix sparse endianness warnings
Harvey Harrison [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide: ide-cd.c fix sparse endianness warnings

drivers/ide/ide-cd.c:1276:46: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd.c:1298:19: warning: cast to restricted __be32
drivers/ide/ide-cd.c:1300:4: warning: cast to restricted __be32
drivers/ide/ide-cd.c:1522:14: warning: cast to restricted __le16
drivers/ide/ide-cd.c:1523:14: warning: cast to restricted __le16
drivers/ide/ide-cd.c:1525:14: warning: cast to restricted __be16
drivers/ide/ide-cd.c:1526:14: warning: cast to restricted __be16
drivers/ide/ide-cd.c:1667:37: warning: cast to restricted __be16

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-cd: convert to using the new atapi_flags
Borislav Petkov [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide-cd: convert to using the new atapi_flags

There should be no functionality change resulting from this patch.

[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove unused PC_FLAG_DRQ_INTERRUPT
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide: remove unused PC_FLAG_DRQ_INTERRUPT

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: convert to using the new atapi_flags
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide-scsi: convert to using the new atapi_flags

Remove unused IDESCSI_PC_RQ while at it.

There should be no functionality change resulting from this patch.

[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: convert to using the new atapi_flags
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide-tape: convert to using the new atapi_flags

There should be no functionality change resulting from this patch.

[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: convert to using the new atapi_flags (take 2)
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide-floppy: convert to using the new atapi_flags (take 2)

while at it, remove PC_FLAG_ZIP_DRIVE from the packed command flags altogether
and query the drive type through drive->atapi_flags.

v2:
ide-floppy fix.

There should be no functionality change resulting from this patch.

[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add per-device flags
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide: add per-device flags

Push device flags up into ide_drive_t.

There should be no functionality change resulting from this patch.

[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: use rq->cmd instead of pc->c in atapi common code
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide: use rq->cmd instead of pc->c in atapi common code

There should be no functionality change resulting from this patch.

[bart: s/HWGROUP(drive)/hwif->hwgroup/]

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: pass packet command in rq->cmd
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-scsi: pass packet command in rq->cmd

Make a redundant copy of the packet command bits into rq->cmd.
Later, after all drivers have been converted, it'll be
switched to use that in the common code instead of pc->c.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: pass packet command in rq->cmd
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-tape: pass packet command in rq->cmd

Make a redundant copy of the packet command bits into rq->cmd. Later, after
all drivers have been converted, it'll be switched to use that in the
common code instead of pc->c. While at it, simplify ide_tape_create_rw_cmd.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: make room for packet command ids in rq->cmd
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-tape: make room for packet command ids in rq->cmd

ide-tape uses rq->cmd for special commands from the chrdev interface so move
those to byte 13 (BLK_MAX_CDB = 16) since a packet cmd is max 12 bytes.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: pass packet command in rq->cmd
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-floppy: pass packet command in rq->cmd

Make a redundant copy of the packet command bits into rq->cmd.
Later, after all drivers have been converted, it'll be
switched to use that in the common code instead of pc->c.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: remove pc->callback member from ide_atapi_pc
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide: remove pc->callback member from ide_atapi_pc

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-scsi: use drive->pc_callback instead of pc->callback
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide-scsi: use drive->pc_callback instead of pc->callback

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-tape: use drive->pc_callback instead of pc->callback
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide-tape: use drive->pc_callback instead of pc->callback

The if-else block in the IRQ handler is only temporary so that bisect searches
don't break and it'll be removed after converting the remainder of the drivers.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide-floppy: use drive->pc_callback instead of pc->callback
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide-floppy: use drive->pc_callback instead of pc->callback

It is important that drive->pc_callback is set prior to enabling IRQs on the
device since this is called from the IRQ handler. Otherwise it hurts as I learnt
the hard way from the several "Kernel panic - not synching: Fatal exception in
interrupt" during the weekend :).

The if-else block in the IRQ handler is only temporary so that bisect searches
don't break and it'll be removed after converting the remainder of the drivers.

There should be no functionality change resulting from this patch.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: push pc callback pointer into the ide_drive_t structure
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide: push pc callback pointer into the ide_drive_t structure

Refrain from carrying the callback ptr with every packet command since the
callback function is only one anyways. ide_drive_t is probably not the most
suitable place for it right now but is the more sane solution. Besides, these
structs are going to be reorganized anyways during the generic ide rewrite.

Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agodrivers/ide/ide-tape.c: remove double kfree
Darren Jenkins [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
drivers/ide/ide-tape.c: remove double kfree

Coverity CID: 2336 USE_AFTER_FREE

drivers/ide/ide-tape.c ide_tape_kfree_buffer() double free's a pointer
(hint freed by an alias in first outer loop).

This patch simply removes the superfluous kfree().

Signed-off-by: Darren Jenkins <darrenrjenkins@gmailcom>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Cc: gadio@netvision.net.il
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_host_free() helper (take 2)
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide: add ide_host_free() helper (take 2)

* Add ide_host_free() helper and convert ide_host_remove() to use it.

* Fix handling of ide_host_register() failure in ide_host_add(),
  icside.c, ide-generic.c, falconide.c and sgiioc4.c.

While at it:

* Fix handling of ide_host_alloc_all() failure in ide-generic.c.

* Fix handling of ide_host_alloc() failure in falconide.c
  (also return the correct error value if no device is found).

v2:
* falconide build fix. (From Stephen Rothwell)

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: allocate ide_hwif_t instances dynamically
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:58 +0000 (19:55 +0200)]
ide: allocate ide_hwif_t instances dynamically

* Allocate ide_hwif_t instances dynamically and remove ide_hwifs[].

  This cuts almost ~14kB from ide-probe.o (x86-32, MAX_HWIFS == 10):

   text    data     bss     dec     hex filename
   9140      40   14084   23264    5ae0 drivers/ide/ide-probe.o.before
   9169      40      44    9253    2425 drivers/ide/ide-probe.o.after

* Remove no longer needed ide_init_port_data() call from ide_unregister().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_ports[]
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:58 +0000 (19:55 +0200)]
ide: add ide_ports[]

* Add ide_ports[] table keeping pointers to all initialized ports.

* Set ide_ports[] entry for a given port in init_irq() and clear it
  ide_remove_port_from_hwgroup().

* Convert init_irq() to use ide_ports[] instead of ide_hwifs[] for
  grouping ports into hwgroup.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: move ide_remove_port_from_hwgroup() to ide-probe.c
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:58 +0000 (19:55 +0200)]
ide: move ide_remove_port_from_hwgroup() to ide-probe.c

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix IDE port slots reservation and freeing (take 2)
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: fix IDE port slots reservation and freeing (take 2)

* Make ide_find_port_slot() return port slot index.

* Add ide_free_port_slot() helper.

* Move ide_init_port_data() call and error printk() from
  ide_find_port_slot() to ide_host_alloc_all().

* Make ide_{find,free}_port_slot() take ide_cfg_mtx mutex
  and convert them use ide_indexes bitmap to keep track of
  reserved port slots.

* Don't set hwif->chipset in ide_host_alloc_all() as it is
  no longer necessary.

v2:
* Pass the correct slot index to ide_init_port_data().

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: fix ide_host_register() return value
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: fix ide_host_register() return value

Fix ide_host_register() to fail only if all ports cannot be registered.

While at it:

* Use host->ports[] instead of ide_hwifs[] and remove idx[].

There should be no functional changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add ide_host_add() helper
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: add ide_host_add() helper

Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
host drivers to use it.

While at it:

* Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
  macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.

* -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
  and pmac.c

* -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c

* -1 -> -ENOMEM in ide-pnp.c

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
16 years agoide: add struct ide_host (take 3)
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: add struct ide_host (take 3)

* Add struct ide_host which keeps pointers to host's ports.

* Add ide_host_alloc[_all]() and ide_host_remove() helpers.

* Pass 'struct ide_host *host' instead of 'u8 *idx' to
  ide_device_add[_all]() and rename it to ide_host_register[_all]().

* Convert host drivers and core code to use struct ide_host.

* Remove no longer needed ide_find_port().

* Make ide_find_port_slot() static.

* Unexport ide_unregister().

v2:
* Add missing 'struct ide_host *host' to macide.c.

v3:
* Fix build problem in pmac.c (s/ide_alloc_host/ide_host_alloc/)
  (Noticed by Stephen Rothwell).

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>