Commit graph

57037 commits

Author SHA1 Message Date
David S. Miller
7db35f31cb [SPARC64]: Fill holes in hypervisor APIs and fix KTSB registry.
Several interfaces were missing and others misnumbered or
improperly documented.

Also, make sure to check the return value when registering
the kernel TSBs with the hypervisor.  This helped to find
the 4MB kernel TSB alignment bug fixed in a previous changeset.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:52:15 -07:00
David S. Miller
2d9e2763c2 [SPARC64]: Fix two bugs wrt. kernel 4MB TSB.
1) The TSB lookup was not using the correct hash mask.

2) It was not aligned on a boundary equal to it's size,
   which is required by the sun4v Hypervisor.

wasn't having it's return value checked, and that bug will be fixed up
as well in a subsequent changeset.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:51:38 -07:00
Martin Habets
5f81941c9d [SPARC]: Mark as emulating cmpxchg, add appropriate depends for DRM.
The DRM code depends on an atomic version of cmpxchg(), which is not
available on sparc32. Since other platforms besides sparc32 have this
issue a KCONFIG option is added for it.

Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:51:24 -07:00
Kyle McMartin
6197fe4d72 [SPARC]: Emulate cmpxchg like parisc
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:51:13 -07:00
David S. Miller
679292993c [SPARC64]: Fix _PAGE_EXEC_4U check in sun4u I-TLB miss handler.
It was using an immediate _PAGE_EXEC_4U value in an 'and'
instruction to perform the test.  This doesn't work because
the immediate field is signed 13-bit, this the mask being
tested against the PTE was 0x1000 sign-extended to 32-bits
instead of just plain 0x1000.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:50:15 -07:00
Jan Engelhardt
b00ccd0f0b [SPARC]: Linux always started with 9600 8N1
The Linux kernel ignored the PROM's serial settings (115200,n,8,1 in
my case). This was because mode_prop remained "ttyX-mode" (expected:
"ttya-mode") due to the constness of string literals when used with
"char *". Since there is no "ttyX-mode" property in the PROM, Linux
always used the default 9600.

[ Investigation of the suncore.s assembler reveals that gcc optimizied
  away the stores, yet did not emit a warning, which is a pretty
  anti-social thing to do and is the only reason this bug lived for
  so long -DaveM ]

Signed-off-by: Jan Engelhardt <jengelh@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:50:07 -07:00
Horst H. von Brand
7189859f28 [SPARC64]: arch/sparc64/time.c doesn't compile on Ultra 1 (no PCI)
This is bug 8540 on bugzilla.kernel.org

arch/sparc64/time.c contains references to assorted bq4802 stuff if
CONFIG_PCI is not set, and compile fails. I #ifdef'ed out everything
that looks PCI-ish in that file.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:50:02 -07:00
David S. Miller
22adb358e8 [SPARC64]: Eliminate NR_CPUS limitations.
Cheetah systems can have cpuids as large as 1023, although physical
systems don't have that many cpus.

Only three limitations existed in the kernel preventing arbitrary
NR_CPUS values:

1) dcache dirty cpu state stored in page->flags on
   D-cache aliasing platforms.  With some build time
   calculations and some build-time BUG checks on
   page->flags layout, this one was easily solved.

2) The cheetah XCALL delivery code could only handle
   a cpumask with up to 32 cpus set.  Some simple looping
   logic clears that up too.

3) thread_info->cpu was a u8, easily changed to a u16.

There are a few spots in the kernel that still put NR_CPUS
sized arrays on the kernel stack, but that's not a sparc64
specific problem.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:49 -07:00
David S. Miller
5cbc307373 [SPARC64]: Use machine description and OBP properly for cpu probing.
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:41 -07:00
David S. Miller
e01c0d6d8c [SPARC64]: Negotiate hypervisor API for PCI services.
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:34 -07:00
David S. Miller
22d6a1cba3 [SPARC64]: Report proper system soft state to the hypervisor.
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:29 -07:00
David S. Miller
36b48973b8 [SPARC64]: Fix typo in sun4v_hvapi_register error handling.
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:21 -07:00
David S. Miller
89a4063e95 [SCSI] ESP: Kill SCSI_ESP_CORE and link directly just like jazz_esp
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:20 -07:00
Thomas Bogendoerfer
5ff2636677 [SCSI] jazz_esp: Converted to use esp_core.
Use new esp_scsi for JAZZ SCSI host adapter driver

Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:19 -07:00
David S. Miller
5840fc66bb [SPARC64]: PCI device scan is way too verbose by default.
These messages were very useful when bringing up the
OBP based PCI device scan code, but it's just a lot
of noise every bootup now especially on big machines.

The messages can be re-enabled via 'ofpci_debug=1' on
the kernel command line.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:18 -07:00
Krzysztof Helt
9977e390dd [SERIAL] sunzilog: section mismatch fix
This patch fixes section mismatch warnings in the sunzilog driver.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:17 -07:00
Krzysztof Helt
42e2826478 [SPARC32]: Removes mismatch section warnigs in sparc time.c file
This patch removes mismatch section warnings in the
sparc/kernel/time.c file.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:16 -07:00
David S. Miller
59db8102bd [SPARC64]: Don't be picky about virtual-dma values on sun4v.
Handle arbitrary base and length values as long as they
are multiples of IO_PAGE_SIZE.

Bug found by Arun Kumar Rao.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:15 -07:00
Christoph Hellwig
a1aadd55fb [SPARC64]: Kill unused DIE_PAGE_FAULT enum value.
sparc64 got rid of the pagefault notifiers, so the enum value for them
can go away aswell.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:14 -07:00
Christoph Hellwig
b68a890fa3 [SCSI] pluto: Use wait_for_completion_timeout.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:49:05 -07:00
Linus Torvalds
c420bc9f09 Linux 2.6.22-rc3
It's that time of the year again.  Summer starts in the US, and people
want to sit at the beach with a new -rc candidate.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-25 19:55:14 -07:00
Hugh Dickins
f4d43bd579 fix compat console unimap regression
Why is it that since the 2f1a2ccb9c console
UTF-8 fixes went into 2.6.22-rc1, the PowerMac G5 shows only inverse video
question marks for the text on tty2-6? whereas tty1 is fine, and so is x86.

No fault of that patch: by removing the old fallback behaviour, it reveals
that 32-bit setfont running on 64-bit kernels has only really worked on
the current console, the rest getting faked by that inadequate fallback.

Bring the compat do_unimap_ioctl into line with the main one: PIO_UNIMAP
and GIO_UNIMAP apply to the specified tty, not redirected to fg_console.
Use the same checks, and most particularly, remember to check access_ok:
con_set_unimap and con_get_unimap are using __get_user and __put_user.

And the compat vt_check should ask for the same capability as the main
one, CAP_SYS_TTY_CONFIG rather than CAP_SYS_ADMIN.  Added in vt_ioctl's
vc_cons_allocated check for safety, though failure may well be impossible.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-25 17:37:46 -07:00
Linus Torvalds
1ea0975875 Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IPoIB/cm: Drain cq in ipoib_cm_dev_stop()
  IPoIB/cm: Fix timeout check in ipoib_cm_dev_stop()
  IB/ehca: Fix number of send WRs reported for new QP
  IB/mlx4: Initialize send queue entry ownership bits
  IB/mlx4: Don't allocate RQ doorbell if using SRQ
2007-05-25 15:49:56 -07:00
Linus Torvalds
a41d7f0004 Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  pata_hpt37x: Further improvements based on the IDE updates and vendor drivers
  pata: Trivia
  [libata] sata_via, pata_via: Add PCI IDs.
  [libata] Fix decoding of 6-byte commands
  libata: sata_sis fixes
  Fix build failure for drivers/ata/pata_scc.c
  [libata] sata_mv: add TODO list
  [libata] sata_promise: fix flags typo
2007-05-25 15:48:24 -07:00
Alan Cox
960c8a10cb pata_hpt37x: Further improvements based on the IDE updates and vendor drivers
Better DPLL use and calibration

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-25 17:29:59 -04:00
Alan Cox
c343a83914 pata: Trivia
Typo/comment fixes

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-25 17:29:59 -04:00
Christoph Hellwig
d9b08b9efe [PATCH] ocfs2: use generic_segment_checks
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-05-25 11:06:37 -07:00
Mark Fasheh
8fccfc829a ocfs2: fix inode leak
We weren't cleaning up our inode reference on error in
ocfs2_reserve_local_alloc_bits(). Add a check for error return and iput() if
need be. Move the code to set the alloc context inode info to the end of the
function so we don't have any possibility of passing back a bad pointer.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-05-25 11:00:46 -07:00
Nate Diller
5c3c6bb770 [PATCH] ocfs2: use zero_user_page
Use zero_user_page() instead of open-coding it.

Signed-off-by: Nate Diller <nate.diller@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-05-25 11:00:39 -07:00
Mark Fasheh
1024c902ab ocfs2: unmap_mapping_range() in ocfs2_truncate()
We weren't calling this before, but since ocfs2 handles the entire truncate
operation, we should.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-05-25 11:00:31 -07:00
Mark Fasheh
e9dfc0b2bc ocfs2: trylock in ocfs2_readpage()
Similarly to the page lock / cluster lock inversion in ocfs2_readpage, we
can deadlock on ip_alloc_sem. We can down_read_trylock() instead and just
return AOP_TRUNCATED_PAGE if the operation fails.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
2007-05-25 11:00:23 -07:00
Jeff Garzik
52df0ee07c [libata] sata_via, pata_via: Add PCI IDs.
Supplied by VIA.

Also, convert named constants to hex values in the pata_via
PCI ID table.  (standard libata policy for PCI device IDs, which are
considered simply arbitrary hex numbers, without a need to create a
single-use constant in linux/pci_ids.h)

Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-25 05:02:06 -04:00
Jeff Garzik
6c7b7d2b76 [libata] Fix decoding of 6-byte commands
The code for parsing 6-byte SCSI command LBAs
missed the top 5 bits (the MSB).

Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-25 04:39:39 -04:00
Uwe Koziolek
ddfc87a098 libata: sata_sis fixes
The sata_sis driver supports SATA and PATA ports. The broken support
of both types in one controller is fixed.

Signed-off-by: Uwe Koziolek <uwe.koziolek@gmx.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-25 04:18:42 -04:00
Tony Breeds
7e068376c5 Fix build failure for drivers/ata/pata_scc.c
The commit d4b2bab4f2 added deadline support
to prereset and reset methods to libbata the pata_scc driver wasn't
converted.  This patch is a naive attempt to bring this driver up to
scratch.

Build failures are:
drivers/ata/pata_scc.c: In function 'scc_pata_prereset':
drivers/ata/pata_scc.c:870: error: too few arguments to function 'ata_std_prereset'
drivers/ata/pata_scc.c: In function 'scc_error_handler':
drivers/ata/pata_scc.c:916: warning: passing argument 2 of 'ata_bmdma_drive_eh' from incompatible pointer type
drivers/ata/pata_scc.c:916: warning: passing argument 3 of 'ata_bmdma_drive_eh' from incompatible pointer type
drivers/ata/pata_scc.c: In function 'scc_pata_prereset':
drivers/ata/pata_scc.c:871: warning: control reaches end of non-void function

On a releated note scc_bus_post_reset() is (AFACT) identical to
ata_bus_post_reset(), would a patch to make ata_bus_post_reset() assesable
to drivers be accepted?

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
Acked-by: Tejun Heo <htejun@gmail.com>
Cc: Akira Iguchi <akira2.iguchi@toshiba.co.jp>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-25 04:17:31 -04:00
Jeff Garzik
4a05e20917 [libata] sata_mv: add TODO list
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 23:40:15 -04:00
Jeff Garzik
bb31223593 [libata] sata_promise: fix flags typo
A stray comma makes all the difference.  Change to '|' as these flags
should be or'd together.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 23:35:59 -04:00
Linus Torvalds
1c1ee4c3e7 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (25 commits)
  [XFRM]: Allow packet drops during larval state resolution.
  [CASSINI]: Check pci_set_mwi() return value.
  [NET]: "wrong timeout value" in sk_wait_data() v2
  [NETFILTER]: nf_nat_h323: call set_h225_addr instead of set_h225_addr_hook
  [NETFILTER]: nf_conntrack_h323: add missing T.120 address in OLCA
  [NETFILTER]: nf_conntrack_h323: remove unnecessary process of Information signal
  [NETFILTER]: nf_conntrack_h323: fix get_h225_addr() for IPv6 address access
  [NETFILTER]: nf_conntrack_h323: fix ASN.1 types
  [NETFILTER]: nf_conntrack_ftp: fix newline sequence number calculation
  [NETFILTER]: nf_conntrack_ftp: fix newline sequence number update
  [NET_SCHED]: sch_htb: fix event cache time calculation
  [DCCP]: Fix build warning when debugging is disabled.
  [TIPC]: Fixed erroneous introduction of for_each_netdev
  [RTNETLINK]: Fix sending netlink message when replace route.
  [TR]: Use menuconfig objects.
  [ARCNET]: Use menuconfig objects.
  [TIPC]: Use menuconfig objects.
  [SCTP]: Use menuconfig objects.
  [IPVS]: Use menuconfig objects.
  [DCCP]: Use menuconfig objects.
  ...
2007-05-24 18:41:28 -07:00
Linus Torvalds
91396c1e2d Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
  pata_via: Handle laptops via DMI
  libata: -ENODEV during prereset isn't an error
  libata: don't consider 0xff as port empty if SStatus is available
  ata_piix: add short 40c quirk for Acer Aspire 2030, take #2
  pata_sis: Fix and clean up some timing setups
  hpt3x2n: Correct revision boundary
2007-05-24 18:20:42 -07:00
David S. Miller
14e50e57ae [XFRM]: Allow packet drops during larval state resolution.
The current IPSEC rule resolution behavior we have does not work for a
lot of people, even though technically it's an improvement from the
-EAGAIN buisness we had before.

Right now we'll block until the key manager resolves the route.  That
works for simple cases, but many folks would rather packets get
silently dropped until the key manager resolves the IPSEC rules.

We can't tell these folks to "set the socket non-blocking" because
they don't have control over the non-block setting of things like the
sockets used to resolve DNS deep inside of the resolver libraries in
libc.

With that in mind I coded up the patch below with some help from
Herbert Xu which provides packet-drop behavior during larval state
resolution, controllable via sysctl and off by default.

This lays the framework to either:

1) Make this default at some point or...

2) Move this logic into xfrm{4,6}_policy.c and implement the
   ARP-like resolution queue we've all been dreaming of.
   The idea would be to queue packets to the policy, then
   once the larval state is resolved by the key manager we
   re-resolve the route and push the packets out.  The
   packets would timeout if the rule didn't get resolved
   in a certain amount of time.

Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-24 18:17:54 -07:00
David S. Miller
04efb8787e [CASSINI]: Check pci_set_mwi() return value.
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-24 17:54:15 -07:00
Linus Torvalds
9059b45424 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] acpi_get_sysname() should be __init
  [IA64] Cleanup acpi header to reuse the generic _PDC defines
  [IA64] Fix using uninitialized data in _PDC setup
  [IA64] start_secondary() and smp_callin() should be __cpuinit
2007-05-24 17:38:18 -07:00
Alan Cox
cf5792d20c pata_via: Handle laptops via DMI
Oh the joy of saving a fraction of a cent using short 40 wire cables and
not faking 80wire

Teach the VIA driver that there are some systems we need to know are
magically wired for high speeds.

Signed-off-by: Alan Cox <alan@redhat.com>
Tested-by: Francis Russell <FrancisRussell@btinternet.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 20:34:48 -04:00
Tejun Heo
6dffaf61e2 libata: -ENODEV during prereset isn't an error
During prereset, -ENODEV return from ata_wait_ready() is not an error.
This causes unnecessary bug message on controllers which uses 0xff to
indicate empty port.  Fix it.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 20:34:48 -04:00
Tejun Heo
fd7fe70161 libata: don't consider 0xff as port empty if SStatus is available
Some SATA controllers (sata_sil) use 0xff to indicate port not ready
status, not port empty.  As libata interprets 0xff as port empty, this
causes unnecessary reset failure and retry.  Don't consider 0xff as
port empty if SStatus is available and indicates that port is online.

Signed-off-by: tejun Heo <htejun@gmail.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Indan Zupancic <indan@nul.nu>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 20:34:48 -04:00
Tejun Heo
b33620f9fa ata_piix: add short 40c quirk for Acer Aspire 2030, take #2
Acer Aspire 2023WLMi uses short 40c cable.  Add quirk for it.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Steve H. <mail.pandor@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 20:34:48 -04:00
Alan Cox
dd668d150c pata_sis: Fix and clean up some timing setups
- Rename sis_port_base to sis_old_port_base() so nobody uses it for new
generation controllers in error.
- Use byte size operations where it is cleaner for mode setup
- Fix a couple of masking errors on certai chip revs when setting speeds

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 20:34:48 -04:00
Alan Cox
824cf333db hpt3x2n: Correct revision boundary
We have a revision that isn't correctly claimed as two drivers both go
for it: Fix the test accordingly. Noticed originally by Bill Nottingham.

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-24 20:34:47 -04:00
Vasily Averin
ba78073e6f [NET]: "wrong timeout value" in sk_wait_data() v2
sys_setsockopt() do not check properly timeout values for
SO_RCVTIMEO/SO_SNDTIMEO, for example it's possible to set negative timeout
values. POSIX do not defines behaviour for sys_setsockopt in case negative
timeouts, but requires that setsockopt() shall fail with -EDOM if the send and
receive timeout values are too big to fit into the timeout fields in the socket
structure.
In current implementation negative timeout can lead to error messages like
"schedule_timeout: wrong timeout value".

Proposed patch:
- checks tv_usec and returns -EDOM if it is wrong
- do not allows to set negative timeout values (sets 0 instead) and outputs
ratelimited information message about such attempts.

Signed-off-By: Vasily Averin <vvs@sw.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-24 16:58:54 -07:00
David S. Miller
c883f215a2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/holtmann/bluetooth-2.6 2007-05-24 16:54:12 -07:00