12 years agoMerge branch 'sg' of git://git.kernel.dk/linux-2.6-block
Linus Torvalds [Sat, 3 Nov 2007 19:43:21 +0000]
Merge branch 'sg' of git://git.kernel.dk/linux-2.6-block

* 'sg' of git://git.kernel.dk/linux-2.6-block:
  [SG] Get rid of __sg_mark_end()
  cleanup asm/scatterlist.h includes
  SG: Make sg_init_one() use general table init functions

12 years agoMerge branch 'v2.6.24-rc1-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sat, 3 Nov 2007 19:42:52 +0000]
Merge branch 'v2.6.24-rc1-lockdep' of git://git./linux/kernel/git/peterz/linux-2.6-lockdep

* 'v2.6.24-rc1-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:
  lockdep: fix a typo in the __lock_acquire comment
  sched: fix unconditional irq lock
  lockdep: fixup irq tracing

12 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6
Linus Torvalds [Sat, 3 Nov 2007 19:41:58 +0000]
Merge /pub/scm/linux/kernel/git/lethal/sh64-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh64-2.6:
  sh64: Update defconfigs.
  sh64: fix dma_cache_sync() compilation
  sh64: Move DMA macros from pci.h to scatterlist.h.

12 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
Linus Torvalds [Sat, 3 Nov 2007 19:41:42 +0000]
Merge /pub/scm/linux/kernel/git/lethal/sh-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6: (24 commits)
  sh: Update r7785rp defconfig.
  sh: mach-type updates.
  sh: Fix up r7780rp highlander CF access size.
  sh: Terminate .eh_frame in VDSO with a 4-byte 0.
  sh: Correct SUBARCH matching.
  sh: Decouple 4k and soft/hardirq stacks.
  sh: Fix optimized __copy_user() movca.l usage.
  sh: Clean up SR.RB Kconfig mess.
  sh: Kill off dead ipr_irq_demux().
  sh: Make SH7750 oprofile compile again.
  sh: Provide a __read_mostly section wrapper.
  sh: linker script tidying.
  sh: Move zero page param defs somewhere sensible.
  sh: Use generic SMP_CACHE_BYTES/L1_CACHE_ALIGN.
  sh: Kill off legacy embedded ramdisk section.
  sh: Fix up early mem cmdline parsing.
  sh: Enable USBF on MS7722SE.
  sh: Add resource of USBF for SH7722.
  maple: Fix maple bus compiler warning
  sh: fix zImage build with >=binutils-2.18
  ...

12 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Sat, 3 Nov 2007 19:27:56 +0000]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (23 commits)
  libata: don't configure downstream links faster than the upstream link
  libata: request PHY speed configuration on SControl access failure
  libata: consider errors not associated with commands for speed down
  libata: more robust reset failure handling
  libata: cosmetic clean up / reorganization of ata_eh_reset()
  libata: fix timing computation in ata_eh_reset()
  libata: increase 128 KB / cmd limit for ATAPI tape drives
  sata_promise: fix endianess bug in ASIC PRD bug workaround
  libata: fix docbook
  make ata_scsi_lpm_get() static
  libata: suppress two warnings
  ata/sata_fsl: Remove ata_scsi_suspend/resume callbacks
  ata/sata_fsl: Remove sending LOG EXT command in sata_fsl_softreset()
  ata/sata_fsl: Move MPC8315DS link speed limit workaround to specific ifdef
  ata/sata_fsl: cleanup style problem
  ata/sata_fsl: remove unneeded sata_fsl_hardreset()
  ata/sata_fsl: remove unneeded on-stack copy of FIS
  ata/sata_fsl: cleanup needless casts to/from void __iomem *
  ata/sata_fsl: Remove unnecessary SCR cases
  ata/sata_fsl: Kill ata_sg_is_last()
  ...

12 years agoNTFS: Fix read regression.
Anton Altaparmakov [Sat, 3 Nov 2007 07:38:59 +0000]
NTFS: Fix read regression.

The regression was caused by:
        commit[a32ea1e1f925399e0d81ca3f7394a44a6dafa12c] Fix read/truncate race

This causes ntfs_readpage() to be called for a zero i_size inode, which
failed when the file was compressed and non-resident.

Thanks a lot to Mike Galbraith for reporting the issue and tracking down
the commit that caused the regression.

Looking into it I found three bugs which the patch fixes.

Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
Tested-by:  Mike Galbraith <efault@gmx.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years agolibata: don't configure downstream links faster than the upstream link
Tejun Heo [Wed, 31 Oct 2007 01:17:07 +0000]
libata: don't configure downstream links faster than the upstream link

There's nothing to be gained by configuring downstream links faster
than the upstream link and such configurations cause problems on
certain PMPs.  Limit downstream link speed by the upstream link speed.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: request PHY speed configuration on SControl access failure
Tejun Heo [Wed, 31 Oct 2007 01:17:06 +0000]
libata: request PHY speed configuration on SControl access failure

In sata_set_spd_needed(), if SControl read failed, it returned 0 and
skipped PHY speed configuration.  However, if SControl access fails,
it's far more logical to request PHY speed configuration.  Reverse the
logic.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: consider errors not associated with commands for speed down
Tejun Heo [Wed, 31 Oct 2007 01:17:05 +0000]
libata: consider errors not associated with commands for speed down

libata EH used to ignore errors not associated with commands when
determining whether speed down is necessary or not.  This leads to the
following problems.

* Errors not associated with commands can occur indefinitely without
  libata EH taking corrective actions.

* Upstream link errors don't trigger speed down when PMP is attached
  to it and commands issued to downstream device trigger errors on the
  upstream link.

This patch makes ata_eh_link_autopsy() consider errors not associated
with command for speed down.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: more robust reset failure handling
Tejun Heo [Wed, 31 Oct 2007 01:17:04 +0000]
libata: more robust reset failure handling

Reset failure is a critical error.  It results in disabling the link
requiring user intervention to re-enable it.  Make reset failure
handling more robust such that libata EH doesn't give up too early.

* Temporary glitches during hardreset may lead to classification
  failure when there's no softreset available.  Retry instead of
  giving up.

* Initial softreset or follow up softreset may fail classification.
  Move classification error handling block out of followup softreset
  block such that both cases are handled and retry instead of giving
  up.  Also, on the last try, give ATA class a blind shot.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: cosmetic clean up / reorganization of ata_eh_reset()
Tejun Heo [Wed, 31 Oct 2007 01:17:03 +0000]
libata: cosmetic clean up / reorganization of ata_eh_reset()

Clean up and reorganize ata_eh_reset() to ease further changes.

* Cache ARRAY_SIZE(ata_eh_reset_timeouts) in @max_tries.
* Cache link->flags in @lflags.
* Move failure handling block to the end of the function and unnest
  both success and failure handling blocks.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: fix timing computation in ata_eh_reset()
Tejun Heo [Wed, 31 Oct 2007 01:17:02 +0000]
libata: fix timing computation in ata_eh_reset()

As jiffies changes asynchronously, it needs to be cached if unchanging
timestamp is needed.  The code in ata_eh_reset() intended to do that
with @now but never actually did it.  Fix it.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: increase 128 KB / cmd limit for ATAPI tape drives
Tony Battersby [Tue, 30 Oct 2007 15:44:35 +0000]
libata: increase 128 KB / cmd limit for ATAPI tape drives

Commands sent to ATAPI tape drives via the SCSI generic (sg) driver are
limited in the amount of data that they can transfer by the max_sectors
value.  The max_sectors value is currently calculated according to the
command set for disk drives, which doesn't apply to tape drives.  The
default max_sectors value of 256 limits ATAPI tape drive commands to
128 KB.  This patch against 2.6.24-rc1 increases the max_sectors value
for tape drives to 65535, which permits tape drive commands to transfer
just under 32 MB.

Tested with a SuperMicro PDSME motherboard, AHCI, and a Sony SDX-570V
SATA tape drive.

Note that some of the chipset drivers also set their own max_sectors
value, which may override the value set in libata-core.  I don't have
any of these chipsets to test, so I didn't go messing with them.  Also,
ATAPI devices other than tape drives may benefit from similar changes,
but I have only tape drives and disk drives to test.

Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agosata_promise: fix endianess bug in ASIC PRD bug workaround
Mikael Pettersson [Wed, 31 Oct 2007 12:21:29 +0000]
sata_promise: fix endianess bug in ASIC PRD bug workaround

The original workaround for the Promise ASIC PRD bug
contained an endianess bug which I failed to detect:
the adjustment of the last PRD entry's length field
applied host arithmetic to little-endian data, which
is incorrect on big-endian machines.

We have the length available in host-endian format, so
do the adjustment on host-endian data and then convert
and store it in the PRD entry's little-endian data field.

Thanks to an anonymous reviewer for detecting this bug.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: fix docbook
Stephen Hemminger [Wed, 31 Oct 2007 17:00:27 +0000]
libata: fix docbook

Fix docbook format in the comments.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agomake ata_scsi_lpm_get() static
Adrian Bunk [Tue, 30 Oct 2007 23:50:23 +0000]
make ata_scsi_lpm_get() static

ata_scsi_lpm_get() can become static.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agolibata: suppress two warnings
Stephen Rothwell [Wed, 31 Oct 2007 03:53:32 +0000]
libata: suppress two warnings

drivers/ata/libata-core.c:768: warning: 'ata_lpm_enable' defined but not used
drivers/ata/libata-core.c:784: warning: 'ata_lpm_disable' defined but not used

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Remove ata_scsi_suspend/resume callbacks
ashish kalra [Wed, 31 Oct 2007 11:28:04 +0000]
ata/sata_fsl: Remove ata_scsi_suspend/resume callbacks

Signed-off-by: ashish kalra <ashish.kalra@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Remove sending LOG EXT command in sata_fsl_softreset()
ashish kalra [Wed, 31 Oct 2007 11:28:03 +0000]
ata/sata_fsl: Remove sending LOG EXT command in sata_fsl_softreset()

Signed-off-by: ashish kalra <ashish.kalra@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Move MPC8315DS link speed limit workaround to specific ifdef
ashish kalra [Wed, 31 Oct 2007 11:28:02 +0000]
ata/sata_fsl: Move MPC8315DS link speed limit workaround to specific ifdef

Signed-off-by: ashish kalra <ashish.kalra@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: cleanup style problem
Li Yang [Wed, 31 Oct 2007 11:28:01 +0000]
ata/sata_fsl: cleanup style problem

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: remove unneeded sata_fsl_hardreset()
Jeff Garzik [Wed, 31 Oct 2007 11:28:00 +0000]
ata/sata_fsl: remove unneeded sata_fsl_hardreset()

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: remove unneeded on-stack copy of FIS
Jeff Garzik [Wed, 31 Oct 2007 11:27:59 +0000]
ata/sata_fsl: remove unneeded on-stack copy of FIS

Remove unneeded on-stack copy of FIS
in sata_fsl_cache_taskfile_from_d2h_fis().

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: cleanup needless casts to/from void __iomem *
Jeff Garzik [Wed, 31 Oct 2007 11:27:58 +0000]
ata/sata_fsl: cleanup needless casts to/from void __iomem *

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Remove unnecessary SCR cases
Jeff Garzik [Wed, 31 Oct 2007 11:27:57 +0000]
ata/sata_fsl: Remove unnecessary SCR cases

SCRs in the driver map to the standard values found in include/linux/ata.h,
so no need for individual scr_read/scr_write case statements duplicating
the natural value.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Kill ata_sg_is_last()
Li Yang [Wed, 31 Oct 2007 11:27:56 +0000]
ata/sata_fsl: Kill ata_sg_is_last()

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: save irq in private data for irq unmapping
Li Yang [Wed, 31 Oct 2007 11:27:55 +0000]
ata/sata_fsl: save irq in private data for irq unmapping

Powerpc uses virtual irq which has to be unmapped.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Remove deprecated hooks
Li Yang [Wed, 31 Oct 2007 11:27:54 +0000]
ata/sata_fsl: Remove deprecated hooks

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoata/sata_fsl: Update for ata_link introduction
Li Yang [Wed, 31 Oct 2007 11:27:53 +0000]
ata/sata_fsl: Update for ata_link introduction

Update the driver to use the newly added ata_link structure.

Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoUse i8253.c lock for PC speaker on MIPS, too.
Ralf Baechle [Fri, 2 Nov 2007 17:26:06 +0000]
Use i8253.c lock for PC speaker on MIPS, too.

The Jazz machines have to use the PIT timer for dyntick and highresolution
kernels.  This may break because currently just like i386 used to do MIPS
uses two separate spinlocks in the actual PIT code and the PC speaker
code.  So switch to do it the same that x86 currently does PIT locking.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

12 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Linus Torvalds [Sat, 3 Nov 2007 02:37:41 +0000]
Merge branch 'for-linus' of git://git./linux/kernel/git/dtor/input

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
  Input: linux-input mailing list moved to vger.kernel.org
  Input: inport, logibm - use KERN_INFO when reporting missing mouse
  Input: appletouch - idle reset logic broke older Fountains
  Input: hp_sdc.c - fix section mismatch
  Input: appletouch - add Johannes Berg as maintainer
  Input: Add Euro and Dollar key codes
  Input: xpad - add more USB IDs

12 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Sat, 3 Nov 2007 02:37:26 +0000]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (25 commits)
  [MIPS] Jazz: disable PIT; cleanup R4030 clockevent
  [MIPS] Bigsur supports highmem.
  [MIPS] mtx-1: Enable -Werror.
  [MIPS] mtx-1: Remove unused mtx1_sys_btn.
  [MIPS] Pb1200: Enable -Werror.
  [MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE.
  [MIPS] SNI: register a02r clockevent; don't use PIT timer
  [MIPS] i8253.h: Remove all i8259 related definitions.
  [MIPS] i8253: Cleanup.
  [MIPS] Cobalt: Fix IRQ comment; the Cobalt kernel uses CP0 counter now.
  [MIPS] Pb1200: Fix warning.
  [MIPS] Pb1200: Fix warning.
  [MIPS] IP27: Fix build error.
  [MIPS] Excite: Fix build error.
  [MIPS] Sibyte: Split and move clock code.
  [MIPS] Sibyte: Fixes for oneshot timer mode.
  [MIPS] Sibyte: Remove blank line.
  [MIPS] Swarm: Fix build failure
  [MIPS] time: Code cleanups
  [MIPS] time: Remove now unused local_timer_interrupt.
  ...

12 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Sat, 3 Nov 2007 02:36:26 +0000]
Merge git://git./linux/kernel/git/wim/linux-2.6-watchdog

* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
  [WATCHDOG] iTCO_wdt.c ICH8 pci-device-id's
  [WATCHDOG] iTCO_wdt.c init & exit fixes
  [WATCHDOG] iTCO_wdt.c pci_device_id table clean-up
  [WATCHDOG] spin_lock_init() fixes
  [WATCHDOG] Unlock in iTCO_wdt_start when reboot is disabled
  [WATCHDOG] Add necessary braces to if (...) \n #if... cases
  [WATCHDOG] trivial fix two returns in void functions

12 years ago[WATCHDOG] iTCO_wdt.c ICH8 pci-device-id's
Wim Van Sebroeck [Fri, 31 Aug 2007 08:23:10 +0000]
[WATCHDOG] iTCO_wdt.c ICH8 pci-device-id's

Add the pci-device-id's for the ICH8M and the ICH8M-E chipsets.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>

12 years ago[WATCHDOG] iTCO_wdt.c init & exit fixes
Wim Van Sebroeck [Fri, 31 Aug 2007 08:15:34 +0000]
[WATCHDOG] iTCO_wdt.c init & exit fixes

Mark init and exit procedures as __devinit & _-devexit.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>

12 years ago[WATCHDOG] iTCO_wdt.c pci_device_id table clean-up
Wim Van Sebroeck [Sun, 19 Aug 2007 20:17:58 +0000]
[WATCHDOG] iTCO_wdt.c pci_device_id table clean-up

Make the pci_device_id table more readable.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>

12 years ago[WATCHDOG] spin_lock_init() fixes
Alexey Dobriyan [Thu, 1 Nov 2007 23:27:08 +0000]
[WATCHDOG] spin_lock_init() fixes

Some watchdog drivers initialize global spinlocks in module's init function
which is tolerable, but some do it in PCI probe function.  So, switch to
static initialization to fix theoretical bugs and, more importantly, stop
giving people bad examples.

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

12 years ago[MIPS] Jazz: disable PIT; cleanup R4030 clockevent
Thomas Bogendoerfer [Fri, 2 Nov 2007 10:17:13 +0000]
[MIPS] Jazz: disable PIT; cleanup R4030 clockevent

Fix ISA irq acknowledge.
Make r4030 clockevent code look like other mips clockevent code.

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Bigsur supports highmem.
Ralf Baechle [Thu, 1 Nov 2007 21:55:39 +0000]
[MIPS] Bigsur supports highmem.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] mtx-1: Enable -Werror.
Ralf Baechle [Thu, 1 Nov 2007 16:50:06 +0000]
[MIPS] mtx-1: Enable -Werror.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] mtx-1: Remove unused mtx1_sys_btn.
Ralf Baechle [Thu, 1 Nov 2007 16:49:12 +0000]
[MIPS] mtx-1: Remove unused mtx1_sys_btn.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Pb1200: Enable -Werror.
Ralf Baechle [Thu, 1 Nov 2007 16:46:14 +0000]
[MIPS] Pb1200: Enable -Werror.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE.
Ralf Baechle [Thu, 1 Nov 2007 15:45:37 +0000]
[MIPS] Fix and cleanup the MIPS part of the (ab)use of CLOCK_TICK_RATE.

This is the clock rate of the i8253 PIT.  A MIPS system may not have
a PIT by the symbol is used all over the kernel including some APIs.
So keeping it defined to the number for the PIT is the only sane thing
for now.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] SNI: register a02r clockevent; don't use PIT timer
Thomas Bogendoerfer [Thu, 1 Nov 2007 10:36:42 +0000]
[MIPS] SNI: register a02r clockevent; don't use PIT timer

Register A20R clockevent.
Remove PIT timer setup because it doesn't work

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] i8253.h: Remove all i8259 related definitions.
Ralf Baechle [Thu, 1 Nov 2007 14:44:57 +0000]
[MIPS] i8253.h: Remove all i8259 related definitions.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] i8253: Cleanup.
Ralf Baechle [Thu, 1 Nov 2007 14:38:20 +0000]
[MIPS] i8253: Cleanup.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Cobalt: Fix IRQ comment; the Cobalt kernel uses CP0 counter now.
Yoichi Yuasa [Thu, 1 Nov 2007 12:51:23 +0000]
[MIPS] Cobalt: Fix IRQ comment; the Cobalt kernel uses CP0 counter now.

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Pb1200: Fix warning.
Ralf Baechle [Thu, 1 Nov 2007 12:59:18 +0000]
[MIPS] Pb1200: Fix warning.

arch/mips/au1000/pb1200/irqmap.c:101: warning: ignoring return value of 'request_irq', declared with attribute warn_unused_result

And while at it a few coding style cleanups.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Pb1200: Fix warning.
Ralf Baechle [Thu, 1 Nov 2007 12:22:53 +0000]
[MIPS] Pb1200: Fix warning.

arch/mips/au1000/pb1200/board_setup.c:71: warning: unused variable 'pin_func'

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] IP27: Fix build error.
Ralf Baechle [Thu, 1 Nov 2007 12:20:51 +0000]
[MIPS] IP27: Fix build error.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Excite: Fix build error.
Ralf Baechle [Thu, 1 Nov 2007 12:16:20 +0000]
[MIPS] Excite: Fix build error.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Sibyte: Split and move clock code.
Ralf Baechle [Thu, 1 Nov 2007 01:57:55 +0000]
[MIPS] Sibyte: Split and move clock code.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Sibyte: Fixes for oneshot timer mode.
Ralf Baechle [Thu, 1 Nov 2007 00:24:50 +0000]
[MIPS] Sibyte: Fixes for oneshot timer mode.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Sibyte: Remove blank line.
Ralf Baechle [Thu, 1 Nov 2007 00:10:07 +0000]
[MIPS] Sibyte: Remove blank line.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Swarm: Fix build failure
Thiemo Seufer [Wed, 31 Oct 2007 16:26:56 +0000]
[MIPS] Swarm: Fix build failure

Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] time: Code cleanups
Atsushi Nemoto [Tue, 30 Oct 2007 16:21:03 +0000]
[MIPS] time: Code cleanups

* Do not include unnecessary headers.
* Do not mention time.README.
* Do not mention mips_timer_ack.
* Make clocksource_mips static.  It is now dedicated to c0_timer.
* Initialize clocksource_mips.read statically.
* Remove null_hpt_read.
* Remove an argument of plat_timer_setup.  It is just a placeholder.

Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] time: Remove now unused local_timer_interrupt.
Ralf Baechle [Tue, 30 Oct 2007 14:24:51 +0000]
[MIPS] time: Remove now unused local_timer_interrupt.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] IP32: Fix address of 2nd serial interface.
Ralf Baechle [Wed, 31 Oct 2007 13:10:00 +0000]
[MIPS] IP32: Fix address of 2nd serial interface.

Found by Giuseppe Sacco <giuseppe@eppesuigoccas.homedns.org>.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] SB1250: Use the right irqaction for the timer interrupt.
Ralf Baechle [Wed, 31 Oct 2007 12:42:56 +0000]
[MIPS] SB1250: Use the right irqaction for the timer interrupt.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] SB1250: Remove stray assignment of cpumask.
Ralf Baechle [Wed, 31 Oct 2007 12:36:42 +0000]
[MIPS] SB1250: Remove stray assignment of cpumask.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Sibyte: Fix names of the clockevent devices.
Ralf Baechle [Wed, 31 Oct 2007 12:34:42 +0000]
[MIPS] Sibyte: Fix names of the clockevent devices.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years ago[MIPS] Sibyte: Build fixes / dead code removal.
Ralf Baechle [Wed, 31 Oct 2007 00:08:06 +0000]
[MIPS] Sibyte: Build fixes / dead code removal.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

12 years agoInput: linux-input mailing list moved to vger.kernel.org
Dmitry Torokhov [Fri, 2 Nov 2007 13:07:33 +0000]
Input: linux-input mailing list moved to vger.

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Johannes Berg <johannes@sipsolutions.net>

12 years ago[SG] Get rid of __sg_mark_end()
Jens Axboe [Wed, 31 Oct 2007 11:06:37 +0000]
[SG] Get rid of __sg_mark_end()

sg_mark_end() overwrites the page_link information, but all users want
__sg_mark_end() behaviour where we just set the end bit. That is the most
natural way to use the sg list, since you'll fill it in and then mark the
end point.

So change sg_mark_end() to only set the termination bit. Add a sg_magic
debug check as well, and clear a chain pointer if it is set.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

12 years agocleanup asm/scatterlist.h includes
Adrian Bunk [Tue, 30 Oct 2007 09:35:04 +0000]
cleanup asm/scatterlist.h includes

Not architecture specific code should not #include <asm/scatterlist.h>.

This patch therefore either replaces them with
#include <linux/scatterlist.h> or simply removes them if they were
unused.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

12 years agoSG: Make sg_init_one() use general table init functions
Jens Axboe [Tue, 30 Oct 2007 09:34:33 +0000]
SG: Make sg_init_one() use general table init functions

Don't open code sg_init_one(), make it reuse sg_init_table().

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

12 years agosh64: Update defconfigs.
Paul Mundt [Fri, 2 Nov 2007 05:36:55 +0000]
sh64: Update defconfigs.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Update r7785rp defconfig.
Paul Mundt [Fri, 2 Nov 2007 05:33:21 +0000]
sh: Update r7785rp defconfig.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: mach-type updates.
Paul Mundt [Fri, 2 Nov 2007 05:28:07 +0000]
sh: mach-type updates.

This adds in the x3proto and magicpanelr2 mach types, plugs in
highlander and rts7751r2d groups, and also hooks up the r2d
subtypes.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix up r7780rp highlander CF access size.
Paul Mundt [Fri, 2 Nov 2007 05:17:19 +0000]
sh: Fix up r7780rp highlander CF access size.

R7780RP can't do byte-sized accesses to CF, so needs to do word
sized access with low-byte masking. This same problem exists
on older versions of the R2D, with the same workaround having
been implemented in 43f4b8c7578b928892b6f01d374346ae14e5eb70
there. Follow that change for the highlander boards.

This does not impact R7780MP or SH7785 based Highlander modules.

If you're unfortunate enough to be stuck with an R7780RP, this
patch is for you!

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Terminate .eh_frame in VDSO with a 4-byte 0.
Kaz Kojima [Fri, 2 Nov 2007 03:29:37 +0000]
sh: Terminate .eh_frame in VDSO with a 4-byte 0.

It's assumed that .eh_frame is terminated with 4-byte 0 in shared
libraries and executable.  It seems to be the case for VDSOs too.
Without this terminator, I saw failures when unwinding from VDSO,
though I don't know how other architectures handle this issue.
For the normal libs, crtendS.o gives this terminator.  We can use
such terminating objects.  Or we can add a 4-byte 0 with modifying
the linker script like as the patch below.

Signed-off-by: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Correct SUBARCH matching.
Paul Mundt [Fri, 2 Nov 2007 03:22:47 +0000]
sh: Correct SUBARCH matching.

When configuring the kernel natively the uname matching is off,
so fix up the uname mangling to get the proper SUBARCH. Needs
an explicit range so that SH-5 doesn't break.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Decouple 4k and soft/hardirq stacks.
Paul Mundt [Fri, 2 Nov 2007 03:16:51 +0000]
sh: Decouple 4k and soft/hardirq stacks.

While using separate IRQ stacks can cut down on stack consumption,
many users can also use 4k stacks directly without the additional
need of separate stacks for soft and hardirqs.

With this split, we support the same rationale for 4KSTACKS as
m68knommu, with the IRQSTACKS abstraction as per ppc64.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agosh: Fix optimized __copy_user() movca.l usage.
Stuart Menefy [Fri, 2 Nov 2007 03:14:09 +0000]
sh: Fix optimized __copy_user() movca.l usage.

movca.l is restricted to SH-4 and up only, though compilers that
are unable to support ISA tuning (especially older versions of
binutils) will happily compile in the bogus opcode on older parts.

Conditionalize it to fix SH-3 regressions noted by Kristoffer.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

12 years agoInput: inport, logibm - use KERN_INFO when reporting missing mouse
Helge Deller [Fri, 2 Nov 2007 02:19:15 +0000]
Input: inport, logibm - use KERN_INFO when reporting missing mouse

Many mouse drivers are often compiled (e.g. in Linux distributions) into the
kernel at the same time just to make sure that at least one driver will suceed
in find it's mouse device. Nevertheless, only the inport and logitech busmouse
mouse drivers report with KERN_ERR log level if the mouse wasn't found. They
should use KERN_INFO instead, because it's not an error if the mouse isn't
attached at all.

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>

12 years agoInput: appletouch - idle reset logic broke older Fountains
Dmitry Torokhov [Fri, 2 Nov 2007 02:13:32 +0000]
Input: appletouch - idle reset logic broke older Fountains

Fountains do not support change mode request and therefore
should be excluded from idle reset attempts.

Also:
 - do not re-submit URB when we decide that touchpad needs to be
   reinicialized
 - do not repeat size detection when reinitializing the touchpad
 - Add missing KERN_* prefixes to messages

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Acked-by: Johannes Berg <johannes@sipsolutions.net>

12 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
Linus Torvalds [Thu, 1 Nov 2007 22:08:07 +0000]
Merge branch 'for-linus' of git://git./linux/kernel/git/jikos/hid

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
  HID: Don't access input_dev->private directly
  HID: fix hidinput_connect ignoring retval from input_register_device
  HID: hiddev - fix compiler warning
  HID: Add GoTop tablets to blacklist

12 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Thu, 1 Nov 2007 22:07:29 +0000]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
  Fix myri10ge NAPI oops & warnings
  Fix region size check in mpc5200 FEC driver
  mpc5200: Fix Kconfig dependancies on MPC5200 FEC device driver

12 years agoFix myri10ge NAPI oops & warnings
Andrew Gallatin [Wed, 31 Oct 2007 21:40:06 +0000]
Fix myri10ge NAPI oops & warnings

When testing the myri10ge driver with 2.6.24-rc1, I found
that the machine crashed under heavy load:

Unable to handle kernel paging request at 0000000000100108 RIP:
  [<ffffffff803cc8dd>] net_rx_action+0x11b/0x184

The address corresponds to the list_move_tail() in
netif_rx_complete():
                     if (unlikely(work == weight))
                             list_move_tail(&n->poll_list, list);

Eventually, I traced the crashes to calling netif_rx_complete() with
work_done == budget.  From looking at other drivers, it appears that
one should only call netif_rx_complete() when work_done < budget.

To fix it, I changed the test in myri10ge_poll() so that it refers
to to work_done rather than looking at the rx ring status.  If
work_done is < budget, then that implies we have no more packets to
process. Any races will be resolved by the NIC when the write to
irq_claim is made.

In myri10ge_clean_rx_done(), if we ever exceeded our budget, it would
report a work_done one larger than was acutally done.  This is because
the increment was done in the conditional, so work_done would be
incremented regardless of whether or not the test passed or failed.
This would lead to the WARN_ON_ONCE(work > weight); warning in
net_rx_action triggering.  I've moved the increment of work_done
inside the loop.  Note that this would only be a problem when we had
exceeded our budget.

Signed off by: Andrew Gallatin <gallatin@myri.com>

Andrew Gallatin Myricom Inc

Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoFix region size check in mpc5200 FEC driver
Grant Likely [Thu, 1 Nov 2007 14:22:35 +0000]
Fix region size check in mpc5200 FEC driver

Driver shouldn't complain if the register range is larger than what
it expects.  This works around failures with some device trees.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agompc5200: Fix Kconfig dependancies on MPC5200 FEC device driver
Grant Likely [Thu, 1 Nov 2007 14:22:30 +0000]
mpc5200: Fix Kconfig dependancies on MPC5200 FEC device driver

When not building an arch/powerpc kernel, the mpc5200 FEC driver depends
on some symbols which are not defined (BESTCOMM & BESTCOMM_FEC).

This patch flips around the dependancy logic so that it cannot be
selected unless BESTCOMM_FEC is selected first.  Kconfig stops
complaining this way.

Also, the driver only works for arch/powerpc (not arch/ppc) anyway so
it should depend on PPC_MERGE also.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

12 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Thu, 1 Nov 2007 19:09:33 +0000]
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [IRDA] IRNET: Fix build when TCGETS2 is defined.
  [NET]: docbook fixes for netif_ functions
  [NET]: Hide the net_ns kmem cache
  [NET]: Mark the setup_net as __net_init
  [NET]: Hide the dead code in the net_namespace.c
  [NET]: Relax the reference counting of init_net_ns
  [NETNS]: Make the init/exit hooks checks outside the loop
  [NET]: Forget the zero_it argument of sk_alloc()
  [NET]: Remove bogus zero_it argument from sk_alloc
  [NET]: Make the sk_clone() lighter
  [NET]: Move some core sock setup into sk_prot_alloc
  [NET]: Auto-zero the allocated sock object
  [NET]: Cleanup the allocation/freeing of the sock object
  [NET]: Move the get_net() from sock_copy()
  [NET]: Move the sock_copy() from the header
  [TCP]: Another TAGBITS -> SACKED_ACKED|LOST conversion
  [TCP]: Process DSACKs that reside within a SACK block

12 years ago[SPARC64]: Update defconfig.
David S. Miller [Thu, 1 Nov 2007 10:18:02 +0000]
[SPARC64]: Update defconfig.

Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[IRDA] IRNET: Fix build when TCGETS2 is defined.
David S. Miller [Thu, 1 Nov 2007 09:26:38 +0000]
[IRDA] IRNET: Fix build when TCGETS2 is defined.

Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: docbook fixes for netif_ functions
Stephen Hemminger [Thu, 1 Nov 2007 09:21:47 +0000]
[NET]: docbook fixes for netif_ functions

Documentation updates for network interfaces.

1. Add doc for netif_napi_add
2. Remove doc for unused returns from netif_rx
3. Add doc for netif_receive_skb

[ Incorporated minor mods from Randy Dunlap -DaveM ]

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Hide the net_ns kmem cache
Pavel Emelyanov [Thu, 1 Nov 2007 07:46:50 +0000]
[NET]: Hide the net_ns kmem cache

This cache is only required to create new namespaces,
but we won't have them in CONFIG_NET_NS=n case.

Hide it under the appropriate ifdef.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Mark the setup_net as __net_init
Pavel Emelyanov [Thu, 1 Nov 2007 07:45:59 +0000]
[NET]: Mark the setup_net as __net_init

The setup_net is called for the init net namespace
only (int the CONFIG_NET_NS=n of course) from the __init
function, so mark it as __net_init to disappear with the
caller after the boot.

Yet again, in the perfect world this has to be under
#ifdef CONFIG_NET_NS, but it isn't guaranteed that every
subsystem is registered *after* the init_net_ns is set
up. After we are sure, that we don't start registering
them before the init net setup, we'll be able to move
this code under the ifdef.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Hide the dead code in the net_namespace.c
Pavel Emelyanov [Thu, 1 Nov 2007 07:44:50 +0000]
[NET]: Hide the dead code in the net_namespace.c

The namespace creation/destruction code is never called
if the CONFIG_NET_NS is n, so it's OK to move it under
appropriate ifdef.

The copy_net_ns() in the "n" case checks for flags and
returns -EINVAL when new net ns is requested. In a perfect
world this stub must be in net_namespace.h, but this
function need to know the CLONE_NEWNET value and thus
requires sched.h. On the other hand this header is to be
injected into almost every .c file in the networking code,
and making all this code depend on the sched.h is a
suicidal attempt.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Relax the reference counting of init_net_ns
Pavel Emelyanov [Thu, 1 Nov 2007 07:43:49 +0000]
[NET]: Relax the reference counting of init_net_ns

When the CONFIG_NET_NS is n there's no need in refcounting
the initial net namespace. So relax this code by making a
stupid stubs for the "n" case.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NETNS]: Make the init/exit hooks checks outside the loop
Pavel Emelyanov [Thu, 1 Nov 2007 07:42:43 +0000]
[NETNS]: Make the init/exit hooks checks outside the loop

When the new pernet something (subsys, device or operations) is
being registered, the init callback is to be called for each
namespace, that currently exitst in the system. During the
unregister, the same is to be done with the exit callback.

However, not every pernet something has both calls, but the
check for the appropriate pointer to be not NULL is performed
inside the for_each_net() loop.

This is (at least) strange, so tune this.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Forget the zero_it argument of sk_alloc()
Pavel Emelyanov [Thu, 1 Nov 2007 07:39:31 +0000]
[NET]: Forget the zero_it argument of sk_alloc()

Finally, the zero_it argument can be completely removed from
the callers and from the function prototype.

Besides, fix the checkpatch.pl warnings about using the
assignments inside if-s.

This patch is rather big, and it is a part of the previous one.
I splitted it wishing to make the patches more readable. Hope
this particular split helped.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Remove bogus zero_it argument from sk_alloc
Pavel Emelyanov [Thu, 1 Nov 2007 07:38:43 +0000]
[NET]: Remove bogus zero_it argument from sk_alloc

At this point nobody calls the sk_alloc(() with zero_it == 0,
so remove unneeded checks from it.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Make the sk_clone() lighter
Pavel Emelyanov [Thu, 1 Nov 2007 07:37:32 +0000]
[NET]: Make the sk_clone() lighter

The sk_prot_alloc() already performs all the stuff needed by the
sk_clone(). Besides, the sk_prot_alloc() requires almost twice
less arguments than the sk_alloc() does, so call the sk_prot_alloc()
saving the stack a bit.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Move some core sock setup into sk_prot_alloc
Pavel Emelyanov [Thu, 1 Nov 2007 07:36:26 +0000]
[NET]: Move some core sock setup into sk_prot_alloc

The security_sk_alloc() and the module_get is a part of the
object allocations - move it in the proper place.

Note, that since we do not reset the newly allocated sock
in the sk_alloc() (memset() is removed with the previous
patch) we can safely do this.

Also fix the error path in sk_prot_alloc() - release the security
context if needed.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Auto-zero the allocated sock object
Pavel Emelyanov [Thu, 1 Nov 2007 07:34:42 +0000]
[NET]: Auto-zero the allocated sock object

We have a __GFP_ZERO flag that allocates a zeroed chunk of memory.
Use it in the sk_alloc() and avoid a hand-made memset().

This is a temporary patch that will help us in the nearest future :)

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Cleanup the allocation/freeing of the sock object
Pavel Emelyanov [Thu, 1 Nov 2007 07:33:50 +0000]
[NET]: Cleanup the allocation/freeing of the sock object

The sock object is allocated either from the generic cache with
the kmalloc, or from the proc->slab cache.

Move this logic into an isolated set of helpers and make the
sk_alloc/sk_free look a bit nicer.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Move the get_net() from sock_copy()
Pavel Emelyanov [Thu, 1 Nov 2007 07:31:26 +0000]
[NET]: Move the get_net() from sock_copy()

The sock_copy() is supposed to just clone the socket. In a perfect
world it has to be just memcpy, but we have to handle the security
mark correctly. All the extra setup must be performed in sk_clone()
call, so move the get_net() into more proper place.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[NET]: Move the sock_copy() from the header
Pavel Emelyanov [Thu, 1 Nov 2007 07:29:45 +0000]
[NET]: Move the sock_copy() from the header

The sock_copy() call is not used outside the sock.c file,
so just move it into a sock.c

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[TCP]: Another TAGBITS -> SACKED_ACKED|LOST conversion
Ilpo Järvinen [Thu, 1 Nov 2007 07:10:18 +0000]
[TCP]: Another TAGBITS -> SACKED_ACKED|LOST conversion

Similar to commit 3eec0047d9bdd, point of this is to avoid
skipping R-bit skbs.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>

12 years ago[TCP]: Process DSACKs that reside within a SACK block
Ilpo Järvinen [Thu, 1 Nov 2007 07:09:37 +0000]
[TCP]: Process DSACKs that reside within a SACK block

DSACK inside another SACK block were missed if start_seq of DSACK
was larger than SACK block's because sorting prioritizes full
processing of the SACK block before DSACK. After SACK block
sorting situation is like this:

             SSSSSSSSS
                  D
                        SSSSSS
                               SSSSSSS

Because write_queue is walked in-order, when the first SACK block
has been processed, TCP is already past the skb for which the
DSACK arrived and we haven't taught it to backtrack (nor should
we), so TCP just continues processing by going to the next SACK
block after the DSACK (if any).

Whenever such DSACK is present, do an embedded checking during
the previous SACK block.

If the DSACK is below snd_una, there won't be overlapping SACK
block, and thus no problem in that case. Also if start_seq of
the DSACK is equal to the actual block, it will be processed
first.

Tested this by using netem to duplicate 15% of packets, and
by printing SACK block when found_dup_sack is true and the
selected skb in the dup_sack = 1 branch (if taken):

  SACK block 0: 4344-5792 (relative to snd_una 2019137317)
  SACK block 1: 4344-5792 (relative to snd_una 2019137317)

equal start seqnos => next_dup = 0, dup_sack = 1 won't occur...

  SACK block 0: 5792-7240 (relative to snd_una 2019214061)
  SACK block 1: 2896-7240 (relative to snd_una 2019214061)
  DSACK skb match 5792-7240 (relative to snd_una)

...and next_dup = 1 case (after the not shown start_seq sort),
went to dup_sack = 1 branch.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>