aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
Commit message (Collapse)AuthorAgeFilesLines
* De-constify sched.hAlexey Dobriyan2007-10-261-14/+14
| | | | | | | | | | | | | | | [PATCH] De-constify sched.h This reverts commit a8972ccf00b7184a743eb6cd9bc7f3443357910c ("sched: constify sched.h") 1) Patch doesn't change any code here, so gcc is already smart enough to "feel" constness in such simple functions. 2) There is no such thing as const task_struct. Anyone who think otherwise deserves compiler warning. Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'master' of ↵Linus Torvalds2007-10-252-2/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: [IPV4]: Explicitly call fib_get_table() in fib_frontend.c [NET]: Use BUILD_BUG_ON in net/core/flowi.c [NET]: Remove in-code externs for some functions from net/core/dev.c [NET]: Don't declare extern variables in net/core/sysctl_net_core.c [TCP]: Remove unneeded implicit type cast when calling tcp_minshall_update() [NET]: Treat the sign of the result of skb_headroom() consistently [9P]: Fix missing unlock before return in p9_mux_poll_start [PKT_SCHED]: Fix sch_prio.c build with CONFIG_NETDEVICES_MULTIQUEUE [IPV4] ip_gre: sendto/recvfrom NBMA address [SCTP]: Consolidate sctp_ulpq_renege_xxx functions [NETLINK]: Fix ACK processing after netlink_dump_start [VLAN]: MAINTAINERS update [DCCP]: Implement SIOCINQ/FIONREAD [NET]: Validate device addr prior to interface-up
| * [NET]: Treat the sign of the result of skb_headroom() consistentlyChuck Lever2007-10-231-2/+2
| | | | | | | | | | | | | | | | | | In some places, the result of skb_headroom() is compared to an unsigned integer, and in others, the result is compared to a signed integer. Make the comparisons consistent and correct. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * [NET]: Validate device addr prior to interface-upJeff Garzik2007-10-231-0/+2
| | | | | | | | | | Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'sg' of git://git.kernel.dk/linux-2.6-blockLinus Torvalds2007-10-251-12/+31
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'sg' of git://git.kernel.dk/linux-2.6-block: fix sg_phys to use dma_addr_t ub: add sg_init_table for sense and read capacity commands x86: pci-gart fix blackfin: fix sg fallout xtensa: dma-mapping.h is using linux/scatterlist.h functions, so include it SG: audit of drivers that use blk_rq_map_sg() arch/um/drivers/ubd_kern.c: fix a building error SG: Change sg_set_page() to take length and offset argument AVR32: Fix sg_page breakage mmc: sg fallout m68k: sg fallout More SG build fixes sg: add missing sg_init_table calls to zfcp SG build fix
| * | fix sg_phys to use dma_addr_tHugh Dickins2007-10-251-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | x86_32 CONFIG_HIGHMEM64G with 5GB RAM hung when booting, after issuing some "request_module: runaway loop modprobe binfmt-0000" messages in trying to exec /sbin/init. The binprm buf doesn't see the right ".ELF" header because sg_phys() is providing the wrong physical addresses for high pages: a 32-bit unsigned long is too small in this case, we need to use dma_addr_t. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
| * | SG: Change sg_set_page() to take length and offset argumentJens Axboe2007-10-241-11/+29
| |/ | | | | | | | | | | | | | | | | | | Most drivers need to set length and offset as well, so may as well fold those three lines into one. Add sg_assign_page() for those two locations that only needed to set the page, where the offset/length is set outside of the function context. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguestLinus Torvalds2007-10-252-17/+11
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest: lguest: documentation update lguest: Add to maintainers file. lguest: build fix lguest: clean up lguest_launcher.h lguest: remove unused "wake" element from struct lguest lguest: use defines from x86 headers instead of magic numbers lguest: example launcher header cleanup.
| * | lguest: documentation updateRusty Russell2007-10-252-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | Went through the documentation doing typo and content fixes. This patch contains only comment and whitespace changes. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
| * | lguest: clean up lguest_launcher.hRusty Russell2007-10-251-14/+4
| |/ | | | | | | | | | | | | | | | | Remove now-unused defines. Fix old idempotent #ifndef _ASM_LGUEST_USER name. Fix comment on use of lguest_req. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | Merge branch 'upstream-linus' of ↵Linus Torvalds2007-10-251-0/+4
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: [netdrvr] forcedeth: add MCP77 device IDs rndis_host: reduce MTU instead of refusing to talk to devices with low max packet size cpmac: update to new fixed phy driver interface cpmac: convert to napi_struct interface cpmac: use print_mac() instead of MAC_FMT natsemi: fix oops, link back netdevice from private-struct ehea: fix port_napi_disable/enable bonding/bond_main.c: fix cut'n'paste error make bonding/bond_main.c:bond_deinit() static drivers/net/ipg.c: cleanups remove Documentation/networking/net-modules.txt
| * | [netdrvr] forcedeth: add MCP77 device IDsAyaz Abdulla2007-10-251-0/+4
| |/ | | | | | | Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* | Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-schedLinus Torvalds2007-10-252-25/+30
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched: sched: mark CONFIG_FAIR_GROUP_SCHED as !EXPERIMENTAL sched: isolate SMP balancing code a bit more sched: reduce balance-tasks overhead sched: make cpu_shares_{show,store}() static sched: clean up some control group code sched: constify sched.h sched: document profile=sleep requiring CONFIG_SCHEDSTATS sched: use show_regs() to improve __schedule_bug() output sched: clean up sched_domain_debug() sched: fix fastcall mismatch in completion APIs sched: fix sched_domain sysctl registration again
| * | sched: isolate SMP balancing code a bit morePeter Williams2007-10-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment, a lot of load balancing code that is irrelevant to non SMP systems gets included during non SMP builds. This patch addresses this issue and reduces the binary size on non SMP systems: text data bss dec hex filename 10983 28 1192 12203 2fab sched.o.before 10739 28 1192 11959 2eb7 sched.o.after Signed-off-by: Peter Williams <pwil3058@bigpond.net.au> Signed-off-by: Ingo Molnar <mingo@elte.hu>
| * | sched: reduce balance-tasks overheadPeter Williams2007-10-241-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment, balance_tasks() provides low level functionality for both move_tasks() and move_one_task() (indirectly) via the load_balance() function (in the sched_class interface) which also provides dual functionality. This dual functionality complicates the interfaces and internal mechanisms and makes the run time overhead of operations that are called with two run queue locks held. This patch addresses this issue and reduces the overhead of these operations. Signed-off-by: Peter Williams <pwil3058@bigpond.net.au> Signed-off-by: Ingo Molnar <mingo@elte.hu>
| * | sched: constify sched.hJoe Perches2007-10-241-14/+14
| | | | | | | | | | | | | | | | | | | | | Add const to some struct task_struct * uses Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
| * | sched: fix fastcall mismatch in completion APIsIngo Molnar2007-10-241-9/+9
| |/ | | | | | | | | | | | | | | | | | | Jeff Dike noticed that wait_for_completion_interruptible()'s prototype had a mismatched fastcall. Fix this by removing the fastcall attributes from all the completion APIs. Found-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* / Permit silencing of __deprecated warnings.Jeff Garzik2007-10-251-0/+6
|/ | | | | | | | | | | | | | | | | | The __deprecated marker is quite useful in highlighting the remnants of old APIs that want removing. However, it is quite normal for one or more years to pass, before the (usually ancient, bitrotten) code in question is either updated or deleted. Thus, like __must_check, add a Kconfig option that permits the silencing of this compiler warning. This change mimics the ifdef-ery and Kconfig defaults of MUST_CHECK as closely as possible. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* add port definition for mcf UART driverGreg Ungerer2007-10-231-0/+3
| | | | | | | Add a port type definition for the Freescale UART driver ports (mcf.c). Signed-off-by: Greg Ungerer <gerg@uclinux.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'irq-upstream' of ↵Linus Torvalds2007-10-231-11/+11
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 * 'irq-upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6: [SPARC, XEN, NET/CXGB3] use irq_handler_t where appropriate drivers/char/riscom8: clean up irq handling isdn/sc: irq handler clean isdn/act2000: fix major bug. clean irq handler. char/pcmcia/synclink_cs: trim trailing whitespace drivers/char/ip2: separate polling and irq-driven work entry points drivers/char/ip2: split out irq core logic into separate function [NETDRVR] lib82596, netxen: delete pointless tests from irq handler Eliminate pointless casts from void* in a few driver irq handlers. [PARPORT] Remove unused 'irq' argument from parport irq functions [PARPORT] Kill useful 'irq' arg from parport_{generic_irq,ieee1284_interrupt} [PARPORT] Consolidate code copies into a single generic irq handler
| * [PARPORT] Remove unused 'irq' argument from parport irq functionsJeff Garzik2007-10-231-8/+4
| | | | | | | | | | | | | | None of the drivers with a struct pardevice's ->irq_func() hook ever used the 'irq' argument passed to it, so remove it. Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * [PARPORT] Kill useful 'irq' arg from parport_{generic_irq,ieee1284_interrupt}Jeff Garzik2007-10-231-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | parport_ieee1284_interrupt() was not using its first arg at all. Delete. parport_generic_irq()'s second arg makes its first arg completely redundant. Delete, and use port->irq in the one place where we actually need it. Also, s/__inline__/inline/ to make the code look nicer. Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * [PARPORT] Consolidate code copies into a single generic irq handlerJeff Garzik2007-10-231-1/+5
| | | | | | | | | | | | | | | | | | Several arches used the exact same code for their parport irq handling. Make that code generic, in parport_irq_handler(). Also, s/__inline__/inline/ in include/linux/parport.h. Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* | Merge branch 'upstream-linus' of ↵Linus Torvalds2007-10-233-328/+33
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (39 commits) Remove Andrew Morton from list of net driver maintainers. bonding: Acquire correct locks in alb for promisc change bonding: Convert more locks to _bh, acquire rtnl, for new locking bonding: Convert locks to _bh, rework alb locking for new locking bonding: Convert miimon to new locking bonding: Convert balance-rr transmit to new locking Convert bonding timers to workqueues Update MAINTAINERS to reflect my (jgarzik's) current efforts. pasemi_mac: fix typo defxx.c: dfx_bus_init() is __devexit not __devinit s390 MAINTAINERS remove header_ops bug in qeth driver sky2: crash on remove MIPSnet: Delete all the useless debugging printks. AR7 ethernet: small post-merge cleanups and fixes mv643xx_eth: Hook up mv643xx_get_sset_count mv643xx_eth: Remove obsolete checksum offload comment mv643xx_eth: Merge drivers/net/mv643xx_eth.h into mv643xx_eth.c mv643xx_eth: Remove unused register defines mv643xx_eth: Clean up mv643xx_eth.h ...
| * | remove header_ops bug in qeth driverUrsula Braun2007-10-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove qeth bug caused by commit: [NET]: Move hardware header operations out of netdevice. This is the second part of the qeth header_ops patch, since first patch sent 10/19 has been insufficient. Nevertheless first patch is still valid and should be kept. Signed-off-by: Ursula Braun <braunu@de.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | Merge branch 'features' of git://farnsworth.org/dale/linux-2.6-mv643xx_eth ↵Jeff Garzik2007-10-232-327/+32
| |\ \ | | |/ | |/| | | | into upstream
| | * mv643xx_eth: Move ethernet register definitions into private headerLennert Buytenhek2007-10-231-302/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the mv643xx's ethernet-related register definitions from include/linux/mv643xx.h into drivers/net/mv643xx_eth.h, since they aren't of any use outside the ethernet driver. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Acked-by: Tzachi Perelstein <tzachi@marvell.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
| | * mv643xx_eth: Split off mv643xx_eth platform device dataLennert Buytenhek2007-10-232-25/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The mv643xx ethernet silicon block is also found in a couple of other Marvell chips. As a first step towards splitting off the mv643xx_eth bits from the rest of the mv643xx bits, this patch splits the mv643xx ethernet platform device data struct in linux/mv643xx.h off into linux/mv643xx_eth.h, and includes the latter from the former. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Acked-by: Tzachi Perelstein <tzachi@marvell.com> Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
* | | [libata] checkpatch-inspired cleanupsJeff Garzik2007-10-232-14/+14
|/ / | | | | | | | | | | | | | | | | | | | | | | Tackle the relatively sane complaints of checkpatch --file. The vast majority is indentation and whitespace changes, the rest are * #include fixes * printk KERN_xxx prefix addition * BSS/initializer cleanups Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* | Merge branch 'for-linus' of ↵Linus Torvalds2007-10-231-0/+10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs: 9p: v9fs_vfs_rename incorrect clunk order 9p: fix memleak in fs/9p/v9fs.c 9p: add virtio transport
| * | 9p: add virtio transportEric Van Hensbergen2007-10-231-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a transport to 9p for communicating between guests and a host using a virtio based transport. Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
* | | [SG] Add debug check for page alignmentJens Axboe2007-10-231-0/+5
|/ / | | | | | | | | | | Suggested by Boaz Harrosh <bharrosh@panasas.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* | Merge branch 'for-linus' of ↵Linus Torvalds2007-10-231-11/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: mlx4_core: Increase command timeout for INIT_HCA to 10 seconds IPoIB/cm: Use common CQ for CM send completions IB/uverbs: Fix checking of userspace object ownership IB/mlx4: Sanity check userspace send queue sizes IPoIB: Rewrite "if (!likely(...))" as "if (unlikely(!(...)))" IB/ehca: Enable large page MRs by default IB/ehca: Change meaning of hca_cap_mr_pgsize IB/ehca: Fix ehca_encode_hwpage_size() and alloc_fmr() IB/ehca: Fix masking error in {,re}reg_phys_mr() IB/ehca: Supply QP token for SRQ base QPs IPoIB: Use round_jiffies() for ah_reap_task RDMA/cma: Fix deadlock destroying listen requests RDMA/cma: Add locking around QP accesses IB/mthca: Avoid alignment traps when writing doorbells mlx4_core: Kill mlx4_write64_raw()
| * | mlx4_core: Kill mlx4_write64_raw()Roland Dreier2007-10-141-11/+0
| | | | | | | | | | | | | | | | | | It's a leftover from development that's never used in the real driver. Signed-off-by: Roland Dreier <rolandd@cisco.com>
* | | Lguest support for VirtioRusty Russell2007-10-231-28/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes lguest able to use the virtio devices. We change the device descriptor page from a simple array to a variable length "type, config_len, status, config data..." format, and implement virtio_config_ops to read from that config data. We use the virtio ring implementation for an efficient Guest <-> Host virtqueue mechanism, and the new LHCALL_NOTIFY hypercall to kick the host when it changes. We also use LHCALL_NOTIFY on kernel addresses for very very early console output. We could have another hypercall, but this hack works quite well. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Remove old lguest I/O infrrasructure.Rusty Russell2007-10-231-35/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch gets rid of the old lguest host I/O infrastructure and replaces it with a single hypercall "LHCALL_NOTIFY" which takes an address. The main change is the removal of io.c: that mainly did inter-guest I/O, which virtio doesn't yet support. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Remove old lguest bus and drivers.Rusty Russell2007-10-232-77/+0
| | | | | | | | | | | | | | | | | | | | | This gets rid of the lguest bus, drivers and DMA mechanism, to make way for a generic virtio mechanism. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Virtio helper routines for a descriptor ringbuffer implementationRusty Russell2007-10-231-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These helper routines supply most of the virtqueue_ops for hypervisors which want to use a ring for virtio. Unlike the previous lguest implementation: 1) The rings are variable sized (2^n-1 elements). 2) They have an unfortunate limit of 65535 bytes per sg element. 3) The page numbers are always 64 bit (PAE anyone?) 4) They no longer place used[] on a separate page, just a separate cacheline. 5) We do a modulo on a variable. We could be tricky if we cared. 6) Interrupts and notifies are suppressed using flags within the rings. Users need only get the ring pages and provide a notify hook (KVM wants the guest to allocate the rings, lguest does it sanely). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Dor Laor <dor.laor@qumranet.com>
* | | Virtio console driverRusty Russell2007-10-231-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an hvc-based virtio console driver. It's suboptimal becuase hvc expects to have raw access to interrupts and virtio doesn't assume that, so it currently polls. There are two solutions: expose hvc's "kick" interface, or wean off hvc. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Block driver using virtio.Rusty Russell2007-10-232-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The block driver uses scatter-gather lists with sg[0] being the request information (struct virtio_blk_outhdr) with the type, sector and inbuf id. The next N sg entries are the bio itself, then the last sg is the status byte. Whether the N entries are in or out depends on whether it's a read or a write. We accept the normal (SCSI) ioctls: they get handed through to the other side which can then handle it or reply that it's unsupported. It's not clear that this actually works in general, since I don't know if blk_pc_request() requests have an accurate rq_data_dir(). Although we try to reply -ENOTTY on unsupported commands, ioctl(fd, CDROMEJECT) returns success to userspace. This needs a separate patch. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Jens Axboe <jens.axboe@oracle.com>
* | | Net driver using virtioRusty Russell2007-10-232-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The network driver uses two virtqueues: one for input packets and one for output packets. This has nice locking properties (ie. we don't do any for recv vs send). TODO: 1) Big packets. 2) Multi-client devices (maybe separate driver?). 3) Resolve freeing of old xmit skbs (Christian Borntraeger) Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: netdev@vger.kernel.org
* | | Virtio interfaceRusty Russell2007-10-234-0/+228
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This attempts to implement a "virtual I/O" layer which should allow common drivers to be efficiently used across most virtual I/O mechanisms. It will no-doubt need further enhancement. The virtio drivers add buffers to virtio queues; as the buffers are consumed the driver "interrupt" callbacks are invoked. There is also a generic implementation of config space which drivers can query to get setup information from the host. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Dor Laor <dor.laor@qumranet.com> Cc: Arnd Bergmann <arnd@arndb.de>
* | | Boot with virtual == physical to get closer to native Linux.Rusty Russell2007-10-231-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) This allows us to get alot closer to booting bzImages. 2) It means we don't have to know page_offset. 3) The Guest needs to modify the boot pagetables to create the PAGE_OFFSET mapping before jumping to C code. 4) guest_pa() walks the page tables rather than using page_offset. 5) We don't use page_offset to figure out whether to emulate: it was always kinda quesationable, and won't work for instructions done before remapping (bzImage unpacking in particular). 6) We still want the kernel address for tlb flushing: have the initial hypercall give us that, too. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Allow guest to specify syscall vector to use.Rusty Russell2007-10-231-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (Based on Ron Minnich's LGUEST_PLAN9_SYSCALL patch). This patch allows Guests to specify what system call vector they want, and we try to reserve it. We only allow one non-Linux system call vector, to try to avoid DoS on the Host. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | lguest.h declares a struct timespec, make it include linux/time.hJes Sorensen2007-10-231-0/+1
| | | | | | | | | | | | | | | Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Make hypercalls arch-independent.Jes Sorensen2007-10-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clean up the hypercall code to make the code in hypercalls.c architecture independent. First process the common hypercalls and then call lguest_arch_do_hcall() if the call hasn't been handled. Rename struct hcall_ring to hcall_args. This patch requires the previous patch which reorganize the layout of struct lguest_regs on i386 so they match the layout of struct hcall_args. Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Remove fixed limit on number of guests, and lguests array.Rusty Russell2007-10-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Back when we had all the Guest state in the switcher, we had a fixed array of them. This is no longer necessary. If we switch the network code to using random_ether_addr (46 bits is enough to avoid clashes), we can get rid of the concept of "guest id" altogether. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Move lguest hcalls to arch-specific headerJes Sorensen2007-10-231-65/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move architecture specific portion of lg_hcall code to asm-i386/lg_hcall.h and have it included from linux/lguest.h. [Changed to asm-i386/lguest_hcall.h so documentation finds it -RR] Signed-off-by: Jes Sorensen <jes@sgi.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Cc: Jes Sorensen <jes@sgi.com>
* | | Make lguest_launcher.h types userspace-friendlyRusty Russell2007-10-231-10/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | lguest_launcher.h uses "u32" not "__u32", which sets a bad example. Fix that, and include <linux/types.h>. This means we need to use -I on the Launcher build line so types.h is found. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
* | | Make asm-x86/bootparam.h includable from userspace.Rusty Russell2007-10-234-118/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To actually write a bootloader (or, say, the lguest launcher) currently requires duplication of these structures. Making them includable from userspace is much nicer. We merge the common userspace-required definitions of e820_32/64.h into e820.h for export. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>