Commit bc6e5443 authored by Linus Torvalds's avatar Linus Torvalds

Merge bk://kernel.bkbits.net/davem/sparc-2.6

into ppc970.osdl.org:/home/torvalds/v2.6/linux
parents db34fc9e 1514a193
......@@ -676,13 +676,25 @@ SMBus communication
extern s32 i2c_smbus_read_word_data(struct i2c_client * client, u8 command);
extern s32 i2c_smbus_write_word_data(struct i2c_client * client,
u8 command, u16 value);
extern s32 i2c_smbus_process_call(struct i2c_client * client,
u8 command, u16 value);
extern s32 i2c_smbus_write_block_data(struct i2c_client * client,
u8 command, u8 length,
u8 *values);
These ones were removed in Linux 2.6.10 because they had no users, but could
be added back later if needed:
extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
u8 command, u8 *values);
extern s32 i2c_smbus_read_block_data(struct i2c_client * client,
u8 command, u8 *values);
extern s32 i2c_smbus_write_block_data(struct i2c_client * client,
extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
u8 command, u8 length,
u8 *values);
extern s32 i2c_smbus_process_call(struct i2c_client * client,
u8 command, u16 value);
extern s32 i2c_smbus_block_process_call(struct i2c_client *client,
u8 command, u8 length,
u8 *values)
All these transactions return -1 on failure. The 'write' transactions
return 0 on success; the 'read' transactions return the read value, except
......
......@@ -312,8 +312,24 @@ running once the system is up.
condev= [HW,S390] console device
conmode=
console= [KNL] Output console
Console device and comm spec (speed, control, parity).
console= [KNL] Output console device and options.
tty<n> Use the virtual console device <n>.
ttyS<n>[,options]
Use the specified serial port. The options are of
the form "bbbbpn", where "bbbb" is the baud rate,
"p" is parity ("n", "o", or "e"), and "n" is bits.
Default is "9600n8".
See also Documentation/serial-console.txt.
uart,io,<addr>[,options]
uart,mmio,<addr>[,options]
Start an early, polled-mode console on the 8250/16550
UART at the specified I/O port or MMIO address,
switching to the matching ttyS device later. The
options are the same as for ttyS, above.
cpcihp_generic= [HW,PCI] Generic port I/O CompactPCI driver
Format: <first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]
......@@ -655,9 +671,10 @@ running once the system is up.
maxcpus= [SMP] Maximum number of processors that an SMP kernel
should make use of
max_scsi_luns= [SCSI]
max_luns= [SCSI] Maximum number of LUNs to probe
Should be between 1 and 2^32-1.
max_scsi_report_luns=
max_report_luns=
[SCSI] Maximum number of LUNs received
Should be between 1 and 16384.
......@@ -787,8 +804,6 @@ running once the system is up.
nofxsr [BUGS=IA-32]
nohighio [BUGS=IA-32] Disable highmem block I/O.
nohlt [BUGS=ARM]
no-hlt [BUGS=IA-32] Tells the kernel that the hlt
......
......@@ -54,6 +54,20 @@ then the system has crashed so hard (eg. hardware-wise) that either it
cannot even accept NMI interrupts, or the crash has made the kernel
unable to print messages.
Be aware that when using local APIC, the frequency of NMI interrupts
it generates, depends on the system load. The local APIC NMI watchdog,
lacking a better source, uses the "cycles unhalted" event. As you may
guess it doesn't tick when the CPU is in the halted state (which happens
when the system is idle), but if your system locks up on anything but the
"hlt" processor instruction, the watchdog will trigger very soon as the
"cycles unhalted" event will happen every clock tick. If it locks up on
"hlt", then you are out of luck -- the event will not happen at all and the
watchdog won't trigger. This is a shortcoming of the local APIC watchdog
-- unfortunately there is no "clock ticks" event that would work all the
time. The I/O APIC watchdog is driven externally and has no such shortcoming.
But its NMI frequency is much higher, resulting in a more significant hit
to the overall system performance.
NOTE: starting with 2.4.2-ac18 the NMI-oopser is disabled by default,
you have to enable it with a boot time parameter. Prior to 2.4.2-ac18
the NMI-oopser is enabled unconditionally on x86 SMP boxes.
......
......@@ -156,11 +156,9 @@ Searching by both vendor/device and subsystem vendor/device ID:
VENDOR_ID or DEVICE_ID. This allows searching for any device from a
specific vendor, for example.
Note that these functions are not hotplug-safe. Their hotplug-safe
replacements are pci_get_device(), pci_get_class() and pci_get_subsys().
They increment the reference count on the pci_dev that they return.
You must eventually (possibly at module unload) decrement the reference
count on these devices by calling pci_dev_put().
These functions are hotplug-safe. They increment the reference count on
the pci_dev that they return. You must eventually (possibly at module unload)
decrement the reference count on these devices by calling pci_dev_put().
3. Enabling and disabling devices
......
Release Date : Thu Nov 4 18:24:56 EST 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
Current Version : 2.20.4.1 (scsi module), 2.20.2.2 (cmm module)
Older Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
i. Handle IOCTL cmd timeouts more properly.
ii. pci_dma_sync_{sg,single}_for_cpu was introduced into megaraid_mbox
incorrectly (instead of _for_device). Changed to appropriate
pci_dma_sync_{sg,single}_for_device.
Release Date : Wed Oct 06 11:15:29 EDT 2004 - Sreenivas Bagalkote <sreenib@lsil.com>
Current Version : 2.20.4.0 (scsi module), 2.20.2.1 (cmm module)
Older Version : 2.20.4.0 (scsi module), 2.20.2.0 (cmm module)
......
ver.0.4.3p4
- Bug fix for invalid memory detection when initialized twice
- Add sample sharing function - works together with awesfx-0.4.3p3
- Add AWE_PROBE_DATA for probing sample id
ver.0.4.3p3
- Replace memset to MEMSET (for FreeBSD)
- Add PAN_EXCHANGE switch
ver.0.4.3p2
- MIDI emulation device is added
- Controls volume and filter targets
- Include chorus/reverb/equalizer values in MISC_MODE
ver.0.4.3p1
- Change the volume calculation method
- Support for Tom Lees' PnP driver (v0.3)
ver.0.4.2d
- Support for OSS/Free 3.8 on 2.0 kernels.
- Support for Linux PnP driver
- Support for module (for recent 2.1 kernels and RH5.0)
- Support for FreeBSD-3.0 system
ver.0.4.2c
- Add a mode to enable drum channel toggle via bank number
change.
ver.0.4.2b
- Clear voice position after note on
- Change nrvoices according to the current playing mode
ver.0.4.2a
- Fix a bug in pitch calculation with scale parameter
- Change default chorus & reverb modes
ver.0.4.2
- Use indirect voice allocation mode; used as default mode
- Add preset mapping
- Free buffers when resetting samples
- Set default preset/bank/drumset as variable
- Fix a bug in exclusive note-off
- Add channel reset control macro
- Change modwheel sensitivity as variable
- Add lock option in open_patch
- Add channel priority mode macro, and disable it as default
- Add unset effect macro
- Add user defined chorus/reverb modes
- Do not initialize effect parameters when allocating voices
- Accept realtime filter-Q parameter change
- Check value range of set/add effects
- Change drum flags automatically when receiving bank #128
ver.0.4.1 development versions
ver.0.4.0c
- Fix kernel oops when setting AWE_FX_ATTEN
ver.0.4.0b
- Do not kill_note in start_note when velocity is zero
ver.0.4.0a
- Fix a bug in channel pressure effects
ver.0.4.0
- Support dynamic buffer allocation
- Add functions to open/close/unload a patch
- Change from pointer to integer index in voice/sample lists
- Support for Linux/Alpha-AXP
- Fix for FreeBSD
- Add sostenuto control
- Add midi channel priority
- Fix a bug in all notes off control
- Use AWE_DEFAULT_MEMSIZE always if defined
- Fix a bug in awe_reset causes seg fault when no DRAM onboard
- Use awe_mem_start variable instead of constant
ver.0.3.3c
- Fix IOCTL_TO_USER for OSS-3.8 (on Linux-2.1.25)
- Fix i/o macros for mixer controls
ver.0.3.3b
- Fix version number in awe_version.h
- Fix a small bug in noteoff/release all
ver.0.3.3a
- Fix all notes/sounds off
- Add layer effect control
- Add misc mode controls; realtime pan, version number, etc.
- Move gus bank control in misc mode control
- Modify awe_operations for OSS3.8b5
- Fix installation script
ver.0.3.3
- Add bass/treble control in Emu8000 chip
- Add mixer device
- Fix sustain on to value 127
ver.0.3.2
- Refuse linux-2.0.0 at installation
- Move awe_voice.h to /usr/include/linux
ver.0.3.1b (not released)
- Rewrite chorus/reverb mode change functions
- Rewrite awe_detect & awe_check_dram routines
ver.0.3.1a
- Fix a bug to reset voice counter in awe_reset
- Fix voice balance on GUS mode
- Make symlink on /usr/include/asm in install script
ver.0.3.1
- Remove zero size arrays from awe_voice.h
- Fix init_fm routine
- Remove all samples except primary samples in REMOVE_LAST_SAMPLES
ver.0.3.0a
- Add AWE_NOTEOFF_ALL control
- Remove AWE_INIT_ATTEN control
ver.0.3.0
- Fix decay time table
- Add exclusive sounds mode
- Add capability to get current status
ver.0.2.99e
- Add #ifdef for all sounds/notes off controls.
- Fix bugs on searching the default drumset/preset.
- Fix usslite patch to modify the default Config.in.
ver.0.2.99d
- Fix bugs of attack/hold parameters
- Fix attack & decay time table
ver.0.2.99c
- Change volume control messages (main & expression volume)
to accesspt normal MIDI parameters in channel mode.
- Use channel mode in SEQ2 controls.
ver.0.2.99b
- #ifdef patch manager functions (for OSS-3.7)
ver.0.2.99a
- Fix sustain bug
ver.0.2.99 (0.3 beta)
- Support multiple instruments
ver.0.2.0c
- Add copyright notice
- FreeBSD 2.2-ALPHA integration
ver.0.2.0b
- Remove buffered reading appended in v0.2.0a
- Remove SMAxW register check on writing
- Support Linux 2.1.x kernel
- Rewrite installation script
ver.0.2.0a
- Define SEQUENCER_C for tuning.h for FreeBSD system
- Improvement of sample loading speed
- Fix installation script
- Add PnP driver functions for ISA PnP driver support
ver.0.2.0
- Includes FreeBSD port
- Can load GUS compatible patches
- Change values of hardware control parameters for compatibility
with GUS driver
- Accept 8bit or unsigned wave data
- Accept no blank loop data
- Add sample mode flags in sample_info
ver.0.1.6
- Add voice effects control
- Fix awe_voice.h for word alignment
ver.0.1.5c
- Fix FM(OPL) playback problem
ver.0.1.5b
- Fix pitch calculation for fixed midi key
ver.0.1.5a
- Fix bugs in removing samples from linked list.
ver.0.1.5
- Add checksum verification for sample uploading
(not compatible from older sample_info structure)
- Fix sample offset pointers to (actual value - 1)
- Add sequencer command to initialize awe32
ver.0.1.4c
- Fix card detection and memory check function to avoid system crash
at booting
ver.0.1.4b
- Add release sustain mode
- Initialize FM each time after loading samples
ver.0.1.4a
- Fix AWE card detection code
- Correct FM initialize position
- Add non-releasing mode on voice info
ver.0.1.4
- Add AWE card and DRAM detection codes
- Add FM initialization code
- Modify volume control
- Remove linear volume mode
- Change memory management; not using malloc dynamically
- Add remove-samples command
- Use internal id implicitly at loading samples
ver.0.1.3
- Fix a bug on patch uploading to RAM
ver.0.1.2
- Divide to separated packages
- Fix disagreed macro conditions
- Fix unresolved function bugs
- Integrate VoxWare and USS-Lite driver source (awe_voice.c)
and remove awe_card.c
ver.0.1.1
- Fix wrong sample numbers in sbktext
- Fix txt2sfx bug
- Fix pan parameter calculation
- Append USS-Lite/Linux2.0 driver
1998-12-04 Andrew T. Veliath <andrewtv@usa.net>
* Update version to 0.8.2.2
* Add msndreset program to shell archive.
1998-11-11 Andrew T. Veliath <andrewv@usa.net>
* msnd_pinnacle.c (mixer_ioctl): Add a mixer ioctl for
SOUND_MIXER_PRIVATE1 which does a full reset on the card.
(mixer_set): Move line in recording source to input monitor, aux
input level added, some mixer fixes.
1998-09-10 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.8.2
* Add SNDCTL_DSP_GETOSPACE and SNDCTL_DSP_GETISPACE ioctls.
1998-09-09 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.8.1
* msnd_pinnacle.c: Fix resetting of default audio parameters. Turn
flush code from dsp_halt into dsp_write_flush, and use that for
SNDCTL_DSP_SYNC.
1998-09-07 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.8.0
* Provide separate signal parameters for play and record.
* Cleanups to locking and interrupt handling, change default
fifosize to 128kB.
* Update version to 0.7.15
* Interprocess full-duplex support (ie `cat /dev/dsp > /dev/dsp').
* More mutex sections for read and write fifos (read + write locks
added).
1998-09-05 Andrew Veliath <andrewtv@usa.net>
* msnd_pinnacle.c: (chk_send_dsp_cmd) Do full DSP reset upon DSP
timeout (when not in interrupt; maintains mixer settings). Fixes
to flushing and IRQ ref counting. Rewrote queuing for smoother
playback and fixed initial playback cutoff problem.
1998-09-03 Andrew Veliath <andrewtv@usa.net>
* Replaced packed structure accesses with standard C equivalents.
1998-09-01 Andrew Veliath <andrewtv@usa.net>
* msnd_pinnacle.c: Add non-PnP configuration to driver code, which
will facilitate compiled-in operation.
1998-08-29 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.7.6
* msnd_pinnacle.c (dsp_ioctl): Add DSP_GETFMTS, change SAMPLESIZE
to DSP_SETFMT.
* Update version to 0.7.5
* Create pinnaclecfg.c and turn MultiSound doc into a shell
archive with pinnaclecfg.c included. pinnaclecfg.c can
now fully configure the card in non-PnP mode, including the
joystick and IDE controller. Also add an isapnp conf
example.
* Reduce DSP reset timeout from 20000 to 100
1998-08-06 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.7.2
* After A/D calibration, do an explicit set to the line input,
rather than using set_recsrc
1998-07-20 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.7.1
* Add more OSS ioctls
1998-07-19 Andrew Veliath <andrewtv@usa.net>
* Update doc file
* Bring back DIGITAL1 with digital parameter to msnd_pinnacle.c
and CONFIG_MSNDPIN_DIGITAL. I'm not sure this actually works,
since I find audio playback goes into a very speeded mode of
operation, however it might be due to a lack of a digital
source, which I don't have to test.
1998-07-18 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.7.0
* Can now compile with Alan Cox' 2.0.34-modular-sound patch (so
now it requires >= 2.1.106 or 2.0.34-ms) (note for 2.0.34-ms it
is in the Experimental section)
* More modularization, consolidation, also some MIDI hooks
installed for future MIDI modules
* Write flush
* Change default speed, channels, bit size to OSS/Free defaults
1998-06-02 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.5b
* Fix version detection
* Remove underflow and overflow resets (delay was too long)
* Replace spinlocked bitops with atomic bit ops
1998-05-27 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.5a
* Better recovery from underflow or overflow conditions
* Fix a deadlock condition with one thread reading and the other
writing
1998-05-26 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.5
* Separate reset queue functions for play and record
* Add delays in dsp_halt
1998-05-24 Andrew Veliath <andrewtv@usa.net>
* Add a check for Linux >= 2.1.95
* Remove DIGITAL1 input until I figure out how to make it work
* Add HAVE_DSPCODEH which when not defined will load firmware from
files using mod_firmware_load, then release memory after they
are uploaded (requires reorganized OSS).
1998-05-22 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.4c
* Hopefully fix the mixer volume problem
1998-05-19 Andrew Veliath <andrewtv@usa.net>
* Add __initfuncs and __initdatas to reduce resident code size
* Move bunch of code around, remove some protos
* Integrate preliminary changes for Alan Cox's OSS reorganization
for non-OSS drivers to coexist with OSS devices on the same
major. To compile standalone, must now define STANDALONE.
1998-05-16 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.4b
* Integrated older card support into a unified driver, tested on a
MultiSound Classic c/o Kendrick Vargas.
1998-05-15 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.4
* Fix read/write return values
1998-05-13 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.3
* Stop play gracefully
* Add busy flag
* Add major and calibrate_signal module parameters
* Add ADC calibration
* Add some OSS compatibility ioctls
* Add mixer record selection
* Add O_NONBLOCK support, separate read/write wait queues
* Add sample bit size ioctl, expanded sample rate ioctl
* Playback suspension now resumes
* Use signal_pending after interruptible_sleep_on
* Add recording, change ints to bit flags
1998-05-11 Andrew Veliath <andrewtv@usa.net>
* Update version to 0.2
* Add preliminary playback support
* Use new Turtle Beach DSP code
\ No newline at end of file
......@@ -805,7 +805,7 @@ S: Maintained
EXT3 FILE SYSTEM
P: Stephen Tweedie, Andrew Morton
M: sct@redhat.com, akpm@digeo.com, adilger@clusterfs.com
M: sct@redhat.com, akpm@osdl.org, adilger@clusterfs.com
L: ext3-users@redhat.com
S: Maintained
......@@ -1532,7 +1532,7 @@ S: Maintained
NETWORK DEVICE DRIVERS
P: Andrew Morton
M: akpm@digeo.com
M: akpm@osdl.org
P: Jeff Garzik
M: jgarzik@pobox.com
L: linux-net@vger.kernel.org
......
......@@ -1149,7 +1149,7 @@ inline void smp_local_timer_interrupt(struct pt_regs * regs)
* interrupt as well. Thus we cannot inline the local irq ... ]
*/
void smp_apic_timer_interrupt(struct pt_regs regs)
fastcall void smp_apic_timer_interrupt(struct pt_regs *regs)
{
int cpu = smp_processor_id();
......@@ -1169,14 +1169,14 @@ void smp_apic_timer_interrupt(struct pt_regs regs)
* interrupt lock, which is the WrongThing (tm) to do.
*/
irq_enter();
smp_local_timer_interrupt(&regs);
smp_local_timer_interrupt(regs);
irq_exit();
}
/*
* This interrupt should _never_ happen with our APIC/SMP architecture
*/
asmlinkage void smp_spurious_interrupt(void)
fastcall void smp_spurious_interrupt(struct pt_regs *regs)
{
unsigned long v;
......@@ -1200,7 +1200,7 @@ asmlinkage void smp_spurious_interrupt(void)
* This interrupt should never happen with our APIC/SMP architecture
*/
asmlinkage void smp_error_interrupt(void)
fastcall void smp_error_interrupt(struct pt_regs *regs)
{
unsigned long v, v1;
......
......@@ -117,6 +117,11 @@ static inline int kprobe_handler(struct pt_regs *regs)
p = get_kprobe(addr);
if (!p) {
unlock_kprobes();
if (regs->eflags & VM_MASK) {
/* We are in virtual-8086 mode. Return 0 */
goto no_kprobe;
}
if (*addr != BREAKPOINT_INSTRUCTION) {
/*
* The breakpoint instruction was removed right
......
......@@ -308,7 +308,7 @@ static inline void leave_mm (unsigned long cpu)
* 2) Leave the mm if we are in the lazy tlb mode.
*/
asmlinkage void smp_invalidate_interrupt (void)
fastcall void smp_invalidate_interrupt(struct pt_regs *regs)
{
unsigned long cpu;
......@@ -579,12 +579,12 @@ void smp_send_stop(void)
* all the work is done automatically when
* we return from the interrupt.
*/
asmlinkage void smp_reschedule_interrupt(void)
fastcall void smp_reschedule_interrupt(struct pt_regs *regs)
{
ack_APIC_irq();
}
asmlinkage void smp_call_function_interrupt(void)
fastcall void smp_call_function_interrupt(struct pt_regs *regs)
{
void (*func) (void *info) = call_data->func;
void *info = call_data->info;
......
......@@ -358,16 +358,7 @@ static inline void die_if_kernel(const char * str, struct pt_regs * regs, long e
die(str, regs, err);
}
static inline unsigned long get_cr2(void)
{
unsigned long address;
/* get the address */
__asm__("movl %%cr2,%0":"=r" (address));
return address;
}
static inline void do_trap(int trapnr, int signr, char *str, int vm86,
static void do_trap(int trapnr, int signr, char *str, int vm86,
struct pt_regs * regs, long error_code, siginfo_t *info)
{
if (regs->eflags & VM_MASK) {
......
......@@ -785,8 +785,8 @@ initialize_secondary(void)
* System interrupts occur because some problem was detected on the
* various busses. To find out what you have to probe all the
* hardware via the CAT bus. FIXME: At the moment we do nothing. */
asmlinkage void
smp_vic_sys_interrupt(void)
fastcall void
smp_vic_sys_interrupt(struct pt_regs *regs)
{
ack_CPI(VIC_SYS_INT);
printk("Voyager SYSTEM INTERRUPT\n");
......@@ -795,8 +795,8 @@ smp_vic_sys_interrupt(void)
/* Handle a voyager CMN_INT; These interrupts occur either because of
* a system status change or because a single bit memory error
* occurred. FIXME: At the moment, ignore all this. */
asmlinkage void
smp_vic_cmn_interrupt(void)
fastcall void
smp_vic_cmn_interrupt(struct pt_regs *regs)
{
static __u8 in_cmn_int = 0;
static spinlock_t cmn_int_lock = SPIN_LOCK_UNLOCKED;
......@@ -824,7 +824,7 @@ smp_vic_cmn_interrupt(void)
/*
* Reschedule call back. Nothing to do, all the work is done
* automatically when we return from the interrupt. */
asmlinkage void
static void
smp_reschedule_interrupt(void)
{
/* do nothing */
......@@ -855,7 +855,7 @@ leave_mm (unsigned long cpu)
/*
* Invalidate call-back
*/
asmlinkage void
static void
smp_invalidate_interrupt(void)
{
__u8 cpu = smp_processor_id();
......@@ -989,7 +989,7 @@ void flush_tlb_page(struct vm_area_struct * vma, unsigned long va)
}
/* enable the requested IRQs */
asmlinkage void
static void
smp_enable_irq_interrupt(void)
{
__u8 irq;
......@@ -1038,7 +1038,7 @@ static struct call_data_struct * call_data;
* previously set up. This is used to schedule a function for
* execution on all CPU's - set up the function then broadcast a
* function_interrupt CPI to come here on each CPU */
asmlinkage void
static void
smp_call_function_interrupt(void)
{
void (*func) (void *info) = call_data->func;
......@@ -1133,50 +1133,50 @@ smp_call_function (void (*func) (void *info), void *info, int retry,
* no local APIC, so I can't do this
*
* This function is currently a placeholder and is unused in the code */
asmlinkage void
smp_apic_timer_interrupt(struct pt_regs regs)
fastcall void
smp_apic_timer_interrupt(struct pt_regs *regs)
{
wrapper_smp_local_timer_interrupt(&regs);
wrapper_smp_local_timer_interrupt(regs);
}
/* All of the QUAD interrupt GATES */
asmlinkage void
smp_qic_timer_interrupt(struct pt_regs regs)
fastcall void
smp_qic_timer_interrupt(struct pt_regs *regs)
{
ack_QIC_CPI(QIC_TIMER_CPI);
wrapper_smp_local_timer_interrupt(&regs);
wrapper_smp_local_timer_interrupt(regs);
}
asmlinkage void
smp_qic_invalidate_interrupt(void)
fastcall void
smp_qic_invalidate_interrupt(struct pt_regs *regs)
{
ack_QIC_CPI(QIC_INVALIDATE_CPI);
smp_invalidate_interrupt();
}
asmlinkage void
smp_qic_reschedule_interrupt(void)
fastcall void
smp_qic_reschedule_interrupt(struct pt_regs *regs)
{
ack_QIC_CPI(QIC_RESCHEDULE_CPI);
smp_reschedule_interrupt();
}
asmlinkage void
smp_qic_enable_irq_interrupt(void)
fastcall void
smp_qic_enable_irq_interrupt(struct pt_regs *regs)
{
ack_QIC_CPI(QIC_ENABLE_IRQ_CPI);
smp_enable_irq_interrupt();
}
asmlinkage void
smp_qic_call_function_interrupt(void)
fastcall void
smp_qic_call_function_interrupt(struct pt_regs *regs)
{
ack_QIC_CPI(QIC_CALL_FUNCTION_CPI);
smp_call_function_interrupt();
}
asmlinkage void
smp_vic_cpi_interrupt(struct pt_regs regs)
fastcall void
smp_vic_cpi_interrupt(struct pt_regs *regs)
{
__u8 cpu = smp_processor_id();
......@@ -1186,7 +1186,7 @@ smp_vic_cpi_interrupt(struct pt_regs regs)
ack_VIC_CPI(VIC_CPI_LEVEL0);
if(test_and_clear_bit(VIC_TIMER_CPI, &vic_cpi_mailbox[cpu]))
wrapper_smp_local_timer_interrupt(&regs);
wrapper_smp_local_timer_interrupt(regs);
if(test_and_clear_bit(VIC_INVALIDATE_CPI, &vic_cpi_mailbox[cpu]))
smp_invalidate_interrupt();
if(test_and_clear_bit(VIC_RESCHEDULE_CPI, &vic_cpi_mailbox[cpu]))
......
......@@ -258,25 +258,6 @@ io_port_init (void)
num_io_spaces = 1;
}
#ifdef CONFIG_SERIAL_8250_CONSOLE
static void __init
setup_serial_legacy (void)
{
struct uart_port port;
unsigned int i, iobase[] = {0x3f8, 0x2f8};
printk(KERN_INFO "Registering legacy COM ports for serial console\n");
memset(&port, 0, sizeof(port));
port.iotype = SERIAL_IO_PORT;
port.uartclk = BASE_BAUD * 16;
for (i = 0; i < ARRAY_SIZE(iobase); i++) {
port.line = i;
port.iobase = iobase[i];
early_serial_setup(&port);
}
}
#endif
/**
* early_console_setup - setup debugging console
*
......@@ -287,15 +268,23 @@ setup_serial_legacy (void)
* Returns non-zero if a console couldn't be setup.
*/
static inline int __init
early_console_setup (void)
early_console_setup (char *cmdline)
{
#ifdef CONFIG_SERIAL_SGI_L1_CONSOLE
{
extern int sn_serial_console_early_setup(void);
if(!sn_serial_console_early_setup())
if (!sn_serial_console_early_setup())
return 0;
}
#endif
#ifdef CONFIG_EFI_PCDP
if (!efi_setup_pcdp_console(cmdline))
return 0;
#endif
#ifdef CONFIG_SERIAL_8250_CONSOLE
if (!early_serial_console_init(cmdline))
return 0;
#endif
return -1;
}
......@@ -319,7 +308,7 @@ setup_arch (char **cmdline_p)
#ifdef CONFIG_SMP
/* If we register an early console, allow CPU 0 to printk */
if (!early_console_setup())
if (!early_console_setup(*cmdline_p))
cpu_set(smp_processor_id(), cpu_online_map);
#endif
......@@ -349,13 +338,6 @@ setup_arch (char **cmdline_p)
#ifdef CONFIG_ACPI_BOOT
acpi_boot_init();
#endif
#ifdef CONFIG_EFI_PCDP
efi_setup_pcdp_console(*cmdline_p);
#endif
#ifdef CONFIG_SERIAL_8250_CONSOLE
if (!efi.hcdp)
setup_serial_legacy();
#endif
#ifdef CONFIG_VT
if (!conswitchp) {
......
......@@ -3,7 +3,7 @@
# see Documentation/kbuild/kconfig-language.txt.
#
mainmenu "Linux Kernel Configuration"
mainmenu "Linux/M32R Kernel Configuration"
config M32R
bool
......@@ -20,6 +20,10 @@ config GENERIC_ISA_DMA
bool
default y
#config GENERIC_HARDIRQS
# bool
# default y
source "init/Kconfig"
......@@ -189,6 +193,10 @@ config RWSEM_XCHGADD_ALGORITHM
bool
default n
config GENERIC_CALIBRATE_DELAY
bool
default y
config PREEMPT
bool "Preemptible Kernel"
help
......@@ -346,96 +354,10 @@ source "fs/Kconfig"
source "arch/m32r/oprofile/Kconfig"
menu "Kernel hacking"
config DEBUG_KERNEL
bool "Kernel debugging"
help
Say Y here if you are developing drivers or trying to debug and
identify kernel problems.
config DEBUG_STACKOVERFLOW
bool "Check for stack overflows"
depends on DEBUG_KERNEL
config DEBUG_SLAB
bool "Debug memory allocations"
depends on DEBUG_KERNEL
help
Say Y here to have the kernel do limited verification on memory
allocation as well as poisoning memory on free to catch use of freed
memory.
config DEBUG_IOVIRT
bool "Memory mapped I/O debugging"
depends on DEBUG_KERNEL
help
Say Y here to get warned whenever an attempt is made to do I/O on
obviously invalid addresses such as those generated when ioremap()
calls are forgotten. Memory mapped I/O will go through an extra
check to catch access to unmapped ISA addresses, an access method
that can still be used by old drivers that are being ported from
2.0/2.2.
config MAGIC_SYSRQ
bool "Magic SysRq key"
depends on DEBUG_KERNEL
help
If you say Y here, you will have some control over the system even
if the system crashes for example during kernel debugging (e.g., you
will be able to flush the buffer cache to disk, reboot the system
immediately or dump some status information). This is accomplished
by pressing various keys while holding SysRq (Alt+PrintScreen). It
also works on a serial console (on PC hardware at least), if you
send a BREAK and then within 5 seconds a command keypress. The
keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
unless you really know what this hack does.
config DEBUG_SPINLOCK
bool "Spinlock debugging"
depends on DEBUG_KERNEL
help
Say Y here and build SMP to catch missing spinlock initialization
and certain other kinds of spinlock errors commonly made. This is
best used in conjunction with the NMI watchdog so that spinlock
deadlocks are also debuggable.
config DEBUG_PAGEALLOC
bool "Page alloc debugging"
depends on DEBUG_KERNEL
help
Unmap pages from the kernel linear mapping after free_pages().
This results in a large slowdown, but helps to find certain types
of memory corruptions.
config DEBUG_INFO
bool "Compile the kernel with debug info"
depends on DEBUG_KERNEL
help
If you say Y here the resulting kernel image will include
debugging info resulting in a larger kernel image.
Say Y here only if you plan to use gdb to debug the kernel.
If you don't debug the kernel, you can say N.
config DEBUG_SPINLOCK_SLEEP
bool "Sleep-inside-spinlock checking"
help
If you say Y here, various routines which may sleep will become very
noisy if they are called with a spinlock held.
config FRAME_POINTER
bool "Compile the kernel with frame pointers"
help
If you say Y here the resulting kernel image will be slightly larger
and slower, but it will give very useful debugging information.
If you don't debug the kernel, you can say N, but we may not be able
to solve problems without frame pointers.
endmenu
source "arch/m32r/Kconfig.debug"
source "security/Kconfig"
source "crypto/Kconfig"
source "lib/Kconfig"
menu "Kernel hacking"
source "lib/Kconfig.debug"
config DEBUG_STACKOVERFLOW
bool "Check for stack overflows"
depends on DEBUG_KERNEL
config DEBUG_STACK_USAGE
bool "Stack utilization instrumentation"
depends on DEBUG_KERNEL
help
Enables the display of the minimum amount of free stack which each
task has ever had available in the sysrq-T and sysrq-P debug output.
This option will slow down process creation somewhat.
config DEBUG_PAGEALLOC
bool "Page alloc debugging"
depends on DEBUG_KERNEL
help
Unmap pages from the kernel linear mapping after free_pages().
This results in a large slowdown, but helps to find certain types
of memory corruptions.
config FRAME_POINTER
bool "Compile the kernel with frame pointers"
help
If you say Y here the resulting kernel image will be slightly larger
and slower, but it will give very useful debugging information.
If you don't debug the kernel, you can say N, but we may not be able
to solve problems without frame pointers.
endmenu
......@@ -41,6 +41,8 @@ boot := arch/m32r/boot
.PHONY: zImage
all: zImage
zImage: vmlinux
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
......@@ -50,5 +52,5 @@ archclean:
$(Q)$(MAKE) $(clean)=$(boot)
define archhelp
@echo ' zImage - Compressed kernel image (arch/m32r/boot/zImage)'
echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage)'
endef
......@@ -9,7 +9,6 @@
* This file is subject to the terms and conditions of the GNU General
* Public License. See the file "COPYING" in the main directory of this
* archive for more details.
*
*/
#include <linux/config.h>
......@@ -35,13 +34,13 @@ extern void pcc_iowrite_word(int, unsigned long, void *, size_t, size_t, int);
#define PORT2ADDR(port) _port2addr(port)
#define PORT2ADDR_USB(port) _port2addr_usb(port)
static __inline__ void *_port2addr(unsigned long port)
static inline void *_port2addr(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET);
}
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
static __inline__ void *__port2addr_ata(unsigned long port)
static inline void *__port2addr_ata(unsigned long port)
{
static int dummy_reg;
......@@ -67,16 +66,16 @@ static __inline__ void *__port2addr_ata(unsigned long port)
*/
#define LAN_IOSTART 0x300
#define LAN_IOEND 0x320
static __inline__ void *_port2addr_ne(unsigned long port)
static inline void *_port2addr_ne(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET + 0x10000000);
}
static __inline__ void *_port2addr_usb(unsigned long port)
static inline void *_port2addr_usb(unsigned long port)
{
return (void *)((port & 0x0f) + NONCACHE_OFFSET + 0x10303000);
}
static __inline__ void delay(void)
static inline void delay(void)
{
__asm__ __volatile__ ("push r0; \n\t pop r0;" : : :"memory");
}
......@@ -87,29 +86,30 @@ static __inline__ void delay(void)
#define PORT2ADDR_NE(port) _port2addr_ne(port)
static __inline__ unsigned char _ne_inb(void *portp)
static inline unsigned char _ne_inb(void *portp)
{
return *(volatile unsigned char *)portp;
}
static __inline__ unsigned short _ne_inw(void *portp)
static inline unsigned short _ne_inw(void *portp)
{
return (unsigned short)le16_to_cpu(*(volatile unsigned short *)portp);
}
static __inline__ void _ne_insb(void *portp, void * addr, unsigned long count)
static inline void _ne_insb(void *portp, void *addr, unsigned long count)
{
unsigned char *buf = (unsigned char *)addr;
while (count--) *buf++ = _ne_inb(portp);
while (count--)
*buf++ = _ne_inb(portp);
}
static __inline__ void _ne_outb(unsigned char b, void *portp)
static inline void _ne_outb(unsigned char b, void *portp)
{
*(volatile unsigned char *)portp = b;
}
static __inline__ void _ne_outw(unsigned short w, void *portp)
static inline void _ne_outw(unsigned short w, void *portp)
{
*(volatile unsigned short *)portp = cpu_to_le16(w);
}
......@@ -336,7 +336,7 @@ void _outl_p(unsigned long l, unsigned long port)
delay();
}
void _insb(unsigned int port, void * addr, unsigned long count)
void _insb(unsigned int port, void *addr, unsigned long count)
{
if (port >= LAN_IOSTART && port < LAN_IOEND)
_ne_insb(PORT2ADDR_NE(port), addr, count);
......@@ -344,22 +344,25 @@ void _insb(unsigned int port, void * addr, unsigned long count)
else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
unsigned char *buf = addr;
unsigned char *portp = __port2addr_ata(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
#endif
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread_byte(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_ioread_byte(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
}
#endif
else {
unsigned char *buf = addr;
unsigned char *portp = PORT2ADDR(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
}
void _insw(unsigned int port, void * addr, unsigned long count)
void _insw(unsigned int port, void *addr, unsigned long count)
{
unsigned short *buf = addr;
unsigned short *portp;
......@@ -370,55 +373,64 @@ void _insw(unsigned int port, void * addr, unsigned long count)
* from the DATA_REG. Do not swap the data.
*/
portp = PORT2ADDR_NE(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread_word(9, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_ioread_word(9, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
} else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
portp = __port2addr_ata(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
#endif
} else {
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
}
}
void _insl(unsigned int port, void * addr, unsigned long count)
void _insl(unsigned int port, void *addr, unsigned long count)
{
unsigned long *buf = addr;
unsigned long *portp;
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned long *)portp;
while (count--)
*buf++ = *(volatile unsigned long *)portp;
}
void _outsb(unsigned int port, const void * addr, unsigned long count)
void _outsb(unsigned int port, const void *addr, unsigned long count)
{
const unsigned char *buf = addr;
unsigned char *portp;
if (port >= LAN_IOSTART && port < LAN_IOEND) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outb(*buf++, portp);
while (count--)
_ne_outb(*buf++, portp);
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
} else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
portp = __port2addr_ata(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
#endif
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite_byte(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_iowrite_byte(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
}
}
void _outsw(unsigned int port, const void * addr, unsigned long count)
void _outsw(unsigned int port, const void *addr, unsigned long count)
{
const unsigned short *buf = addr;
unsigned short *portp;
......@@ -429,27 +441,32 @@ void _outsw(unsigned int port, const void * addr, unsigned long count)
* into the DATA_REG. Do not swap the data.
*/
portp = PORT2ADDR_NE(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
} else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
portp = __port2addr_ata(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
#endif
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite_word(9, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_iowrite_word(9, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
}
}
void _outsl(unsigned int port, const void * addr, unsigned long count)
void _outsl(unsigned int port, const void *addr, unsigned long count)
{
const unsigned long *buf = addr;
unsigned char *portp;
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned long *)portp = *buf++;
while (count--)
*(volatile unsigned long *)portp = *buf++;
}
......@@ -7,8 +7,6 @@
* Hitoshi Yamamoto
*/
/* $Id: io_mappi.c,v 1.9 2003/12/02 07:18:08 fujiwara Exp $ */
#include <linux/config.h>
#include <asm/m32r.h>
#include <asm/page.h>
......@@ -31,17 +29,17 @@ extern void pcc_iowrite(int, unsigned long, void *, size_t, size_t, int);
#define PORT2ADDR(port) _port2addr(port)
static __inline__ void *_port2addr(unsigned long port)
static inline void *_port2addr(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET);
}
static __inline__ void *_port2addr_ne(unsigned long port)
static inline void *_port2addr_ne(unsigned long port)
{
return (void *)((port<<1) + NONCACHE_OFFSET + 0x0C000000);
}
static __inline__ void delay(void)
static inline void delay(void)
{
__asm__ __volatile__ ("push r0; \n\t pop r0;" : : :"memory");
}
......@@ -52,12 +50,12 @@ static __inline__ void delay(void)
#define PORT2ADDR_NE(port) _port2addr_ne(port)
static __inline__ unsigned char _ne_inb(void *portp)
static inline unsigned char _ne_inb(void *portp)
{
return (unsigned char) *(volatile unsigned short *)portp;
}
static __inline__ unsigned short _ne_inw(void *portp)
static inline unsigned short _ne_inw(void *portp)
{
unsigned short tmp;
......@@ -65,12 +63,12 @@ static __inline__ unsigned short _ne_inw(void *portp)
return le16_to_cpu(tmp);
}
static __inline__ void _ne_outb(unsigned char b, void *portp)
static inline void _ne_outb(unsigned char b, void *portp)
{
*(volatile unsigned short *)portp = (unsigned short)b;
}
static __inline__ void _ne_outw(unsigned short w, void *portp)
static inline void _ne_outw(unsigned short w, void *portp)
{
*(volatile unsigned short *)portp = cpu_to_le16(w);
}
......@@ -269,100 +267,118 @@ void _outl_p(unsigned long l, unsigned long port)
delay();
}
void _insb(unsigned int port, void * addr, unsigned long count)
void _insb(unsigned int port, void *addr, unsigned long count)
{
unsigned short *buf = addr;
unsigned short *portp;
if (port >= 0x300 && port < 0x320){
portp = PORT2ADDR_NE(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_PCC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_ioread(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
} else if (port >= M32R_PCC_IOSTART1 && port <= M32R_PCC_IOEND1) {
pcc_ioread(1, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_ioread(1, port, (void *)addr, sizeof(unsigned char),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
}
void _insw(unsigned int port, void * addr, unsigned long count)
void _insw(unsigned int port, void *addr, unsigned long count)
{
unsigned short *buf = addr;
unsigned short *portp;
if (port >= 0x300 && port < 0x320) {
portp = PORT2ADDR_NE(port);
while (count--) *buf++ = _ne_inw(portp);
while (count--)
*buf++ = _ne_inw(portp);
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_PCC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread(0, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_ioread(0, port, (void *)addr, sizeof(unsigned short),
count, 1);
} else if (port >= M32R_PCC_IOSTART1 && port <= M32R_PCC_IOEND1) {
pcc_ioread(1, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_ioread(1, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
}
}
void _insl(unsigned int port, void * addr, unsigned long count)
void _insl(unsigned int port, void *addr, unsigned long count)
{
unsigned long *buf = addr;
unsigned long *portp;
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned long *)portp;
while (count--)
*buf++ = *(volatile unsigned long *)portp;
}
void _outsb(unsigned int port, const void * addr, unsigned long count)
void _outsb(unsigned int port, const void *addr, unsigned long count)
{
const unsigned char *buf = addr;
unsigned char *portp;
if (port >= 0x300 && port < 0x320) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outb(*buf++, portp);
while (count--)
_ne_outb(*buf++, portp);
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_PCC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_iowrite(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
} else if (port >= M32R_PCC_IOSTART1 && port <= M32R_PCC_IOEND1) {
pcc_iowrite(1, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_iowrite(1, port, (void *)addr, sizeof(unsigned char),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
}
}
void _outsw(unsigned int port, const void * addr, unsigned long count)
void _outsw(unsigned int port, const void *addr, unsigned long count)
{
const unsigned short *buf = addr;
unsigned short *portp;
if (port >= 0x300 && port < 0x320) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outw(*buf++, portp);
while (count--)
_ne_outw(*buf++, portp);
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_PCC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite(0, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_iowrite(0, port, (void *)addr, sizeof(unsigned short),
count, 1);
} else if (port >= M32R_PCC_IOSTART1 && port <= M32R_PCC_IOEND1) {
pcc_iowrite(1, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_iowrite(1, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
}
}
void _outsl(unsigned int port, const void * addr, unsigned long count)
void _outsl(unsigned int port, const void *addr, unsigned long count)
{
const unsigned long *buf = addr;
unsigned char *portp;
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned long *)portp = *buf++;
while (count--)
*(volatile unsigned long *)portp = *buf++;
}
......@@ -7,8 +7,6 @@
* Hitoshi Yamamoto, Mamoru Sakugawa
*/
/* $Id:$ */
#include <linux/config.h>
#include <asm/m32r.h>
#include <asm/page.h>
......@@ -33,7 +31,7 @@ extern void pcc_iowrite_word(int, unsigned long, void *, size_t, size_t, int);
#define PORT2ADDR_NE(port) _port2addr_ne(port)
#define PORT2ADDR_USB(port) _port2addr_usb(port)
static __inline__ void *_port2addr(unsigned long port)
static inline void *_port2addr(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET);
}
......@@ -42,7 +40,7 @@ static __inline__ void *_port2addr(unsigned long port)
#define LAN_IOEND 0x320
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
static __inline__ void *__port2addr_ata(unsigned long port)
static inline void *__port2addr_ata(unsigned long port)
{
static int dummy_reg;
......@@ -62,21 +60,21 @@ static __inline__ void *__port2addr_ata(unsigned long port)
#endif
#ifdef CONFIG_CHIP_OPSP
static __inline__ void *_port2addr_ne(unsigned long port)
static inline void *_port2addr_ne(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET + 0x10000000);
}
#else
static __inline__ void *_port2addr_ne(unsigned long port)
static inline void *_port2addr_ne(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET + 0x04000000);
}
#endif
static __inline__ void *_port2addr_usb(unsigned long port)
static inline void *_port2addr_usb(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET + 0x14000000);
}
static __inline__ void delay(void)
static inline void delay(void)
{
__asm__ __volatile__ ("push r0; \n\t pop r0;" : : :"memory");
}
......@@ -85,29 +83,30 @@ static __inline__ void delay(void)
* NIC I/O function
*/
static __inline__ unsigned char _ne_inb(void *portp)
static inline unsigned char _ne_inb(void *portp)
{
return (unsigned char) *(volatile unsigned char *)portp;
}
static __inline__ unsigned short _ne_inw(void *portp)
static inline unsigned short _ne_inw(void *portp)
{
return (unsigned short)le16_to_cpu(*(volatile unsigned short *)portp);
}
static __inline__ void _ne_insb(void *portp, void * addr, unsigned long count)
static inline void _ne_insb(void *portp, void * addr, unsigned long count)
{
unsigned char *buf = addr;
while (count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
static __inline__ void _ne_outb(unsigned char b, void *portp)
static inline void _ne_outb(unsigned char b, void *portp)
{
*(volatile unsigned char *)portp = (unsigned char)b;
}
static __inline__ void _ne_outw(unsigned short w, void *portp)
static inline void _ne_outw(unsigned short w, void *portp)
{
*(volatile unsigned short *)portp = cpu_to_le16(w);
}
......@@ -342,18 +341,21 @@ void _insb(unsigned int port, void * addr, unsigned long count)
else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
unsigned char *buf = addr;
unsigned char *portp = __port2addr_ata(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
#endif
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread_byte(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_ioread_byte(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
}
#endif
else {
unsigned char *buf = addr;
unsigned char *portp = PORT2ADDR(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
}
......@@ -364,19 +366,23 @@ void _insw(unsigned int port, void * addr, unsigned long count)
if (port >= LAN_IOSTART && port < LAN_IOEND) {
portp = PORT2ADDR_NE(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread_word(9, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_ioread_word(9, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
} else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
portp = __port2addr_ata(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
#endif
} else {
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
}
}
......@@ -386,7 +392,8 @@ void _insl(unsigned int port, void * addr, unsigned long count)
unsigned long *portp;
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned long *)portp;
while (count--)
*buf++ = *(volatile unsigned long *)portp;
}
void _outsb(unsigned int port, const void * addr, unsigned long count)
......@@ -396,19 +403,23 @@ void _outsb(unsigned int port, const void * addr, unsigned long count)
if (port >= LAN_IOSTART && port < LAN_IOEND) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outb(*buf++, portp);
while (count--)
_ne_outb(*buf++, portp);
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
} else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
portp = __port2addr_ata(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
#endif
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite_byte(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_iowrite_byte(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
}
}
......@@ -419,19 +430,23 @@ void _outsw(unsigned int port, const void * addr, unsigned long count)
if (port >= LAN_IOSTART && port < LAN_IOEND) {
portp = PORT2ADDR_NE(port);
while (count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
#if defined(CONFIG_IDE) && !defined(CONFIG_M32R_CFC)
} else if ((port >= 0x1f0 && port <=0x1f7) || port == 0x3f6) {
portp = __port2addr_ata(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
#endif
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite_word(9, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_iowrite_word(9, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
}
}
......@@ -441,5 +456,6 @@ void _outsl(unsigned int port, const void * addr, unsigned long count)
unsigned char *portp;
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned long *)portp = *buf++;
while (count--)
*(volatile unsigned long *)portp = *buf++;
}
......@@ -7,8 +7,6 @@
* Hitoshi Yamamoto, Mamoru Sakugawa
*/
/* $Id$ */
#include <linux/config.h>
#include <asm/m32r.h>
#include <asm/page.h>
......@@ -16,17 +14,17 @@
#define PORT2ADDR(port) _port2addr(port)
static __inline__ void *_port2addr(unsigned long port)
static inline void *_port2addr(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET);
}
static __inline__ void *_port2addr_ne(unsigned long port)
static inline void *_port2addr_ne(unsigned long port)
{
return (void *)((port<<1) + NONCACHE_OFFSET + 0x02000000);
}
static __inline__ void delay(void)
static inline void delay(void)
{
__asm__ __volatile__ ("push r0; \n\t pop r0;" : : :"memory");
}
......@@ -37,12 +35,12 @@ static __inline__ void delay(void)
#define PORT2ADDR_NE(port) _port2addr_ne(port)
static __inline__ unsigned char _ne_inb(void *portp)
static inline unsigned char _ne_inb(void *portp)
{
return *(volatile unsigned char *)(portp+1);
}
static __inline__ unsigned short _ne_inw(void *portp)
static inline unsigned short _ne_inw(void *portp)
{
unsigned short tmp;
......@@ -51,18 +49,19 @@ static __inline__ unsigned short _ne_inw(void *portp)
return tmp;
}
static __inline__ void _ne_insb(void *portp, void * addr, unsigned long count)
static inline void _ne_insb(void *portp, void *addr, unsigned long count)
{
unsigned char *buf = addr;
while (count--) *buf++ = *(volatile unsigned char *)(portp+1);
while (count--)
*buf++ = *(volatile unsigned char *)(portp+1);
}
static __inline__ void _ne_outb(unsigned char b, void *portp)
static inline void _ne_outb(unsigned char b, void *portp)
{
*(volatile unsigned char *)(portp+1) = b;
}
static __inline__ void _ne_outw(unsigned short w, void *portp)
static inline void _ne_outw(unsigned short w, void *portp)
{
*(volatile unsigned short *)portp = (w >> 8);
*(volatile unsigned short *)(portp+2) = (w & 0xff);
......@@ -171,73 +170,82 @@ void _outl_p(unsigned long l, unsigned long port)
delay();
}
void _insb(unsigned int port, void * addr, unsigned long count)
void _insb(unsigned int port, void *addr, unsigned long count)
{
if (port >= 0x300 && port < 0x320)
_ne_insb(PORT2ADDR_NE(port), addr, count);
else {
unsigned char *buf = addr;
unsigned char *portp = PORT2ADDR(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
}
void _insw(unsigned int port, void * addr, unsigned long count)
void _insw(unsigned int port, void *addr, unsigned long count)
{
unsigned short *buf = addr;
unsigned short *portp;
if (port >= 0x300 && port < 0x320) {
portp = PORT2ADDR_NE(port);
while (count--) *buf++ = _ne_inw(portp);
while (count--)
*buf++ = _ne_inw(portp);
} else {
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
}
}
void _insl(unsigned int port, void * addr, unsigned long count)
void _insl(unsigned int port, void *addr, unsigned long count)
{
unsigned long *buf = addr;
unsigned long *portp;
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned long *)portp;
while (count--)
*buf++ = *(volatile unsigned long *)portp;
}
void _outsb(unsigned int port, const void * addr, unsigned long count)
void _outsb(unsigned int port, const void *addr, unsigned long count)
{
const unsigned char *buf = addr;
unsigned char *portp;
if (port >= 0x300 && port < 0x320) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outb(*buf++, portp);
while (count--)
_ne_outb(*buf++, portp);
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
}
}
void _outsw(unsigned int port, const void * addr, unsigned long count)
void _outsw(unsigned int port, const void *addr, unsigned long count)
{
const unsigned short *buf = addr;
unsigned short *portp;
if (port >= 0x300 && port < 0x320) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outw(*buf++, portp);
while (count--)
_ne_outw(*buf++, portp);
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
}
}
void _outsl(unsigned int port, const void * addr, unsigned long count)
void _outsl(unsigned int port, const void *addr, unsigned long count)
{
const unsigned long *buf = addr;
unsigned char *portp;
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned long *)portp = *buf++;
while (count--)
*(volatile unsigned long *)portp = *buf++;
}
......@@ -9,7 +9,6 @@
* This file is subject to the terms and conditions of the GNU General
* Public License. See the file "COPYING" in the main directory of this
* archive for more details.
*
*/
#include <linux/config.h>
......@@ -35,7 +34,7 @@ extern void pcc_iowrite_word(int, unsigned long, void *, size_t, size_t, int);
#define PORT2ADDR(port) _port2addr(port)
#define PORT2ADDR_USB(port) _port2addr_usb(port)
static __inline__ void *_port2addr(unsigned long port)
static inline void *_port2addr(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET);
}
......@@ -47,16 +46,16 @@ static __inline__ void *_port2addr(unsigned long port)
*/
#define LAN_IOSTART 0x300
#define LAN_IOEND 0x320
static __inline__ void *_port2addr_ne(unsigned long port)
static inline void *_port2addr_ne(unsigned long port)
{
return (void *)(port + NONCACHE_OFFSET + 0x10000000);
}
static __inline__ void *_port2addr_usb(unsigned long port)
static inline void *_port2addr_usb(unsigned long port)
{
return (void *)((port & 0x0f) + NONCACHE_OFFSET + 0x10303000);
}
static __inline__ void delay(void)
static inline void delay(void)
{
__asm__ __volatile__ ("push r0; \n\t pop r0;" : : :"memory");
}
......@@ -67,29 +66,30 @@ static __inline__ void delay(void)
#define PORT2ADDR_NE(port) _port2addr_ne(port)
static __inline__ unsigned char _ne_inb(void *portp)
static inline unsigned char _ne_inb(void *portp)
{
return *(volatile unsigned char *)portp;
}
static __inline__ unsigned short _ne_inw(void *portp)
static inline unsigned short _ne_inw(void *portp)
{
return (unsigned short)le16_to_cpu(*(volatile unsigned short *)portp);
}
static __inline__ void _ne_insb(void *portp, void * addr, unsigned long count)
static inline void _ne_insb(void *portp, void *addr, unsigned long count)
{
unsigned char *buf = (unsigned char *)addr;
while (count--) *buf++ = _ne_inb(portp);
while (count--)
*buf++ = _ne_inb(portp);
}
static __inline__ void _ne_outb(unsigned char b, void *portp)
static inline void _ne_outb(unsigned char b, void *portp)
{
*(volatile unsigned char *)portp = b;
}
static __inline__ void _ne_outw(unsigned short w, void *portp)
static inline void _ne_outw(unsigned short w, void *portp)
{
*(volatile unsigned short *)portp = cpu_to_le16(w);
}
......@@ -280,23 +280,25 @@ void _outl_p(unsigned long l, unsigned long port)
delay();
}
void _insb(unsigned int port, void * addr, unsigned long count)
void _insb(unsigned int port, void *addr, unsigned long count)
{
if (port >= LAN_IOSTART && port < LAN_IOEND)
_ne_insb(PORT2ADDR_NE(port), addr, count);
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread_byte(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_ioread_byte(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
}
#endif
else {
unsigned char *buf = addr;
unsigned char *portp = PORT2ADDR(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
}
void _insw(unsigned int port, void * addr, unsigned long count)
void _insw(unsigned int port, void *addr, unsigned long count)
{
unsigned short *buf = addr;
unsigned short *portp;
......@@ -307,45 +309,52 @@ void _insw(unsigned int port, void * addr, unsigned long count)
* from the DATA_REG. Do not swap the data.
*/
portp = PORT2ADDR_NE(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_ioread_word(9, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_ioread_word(9, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
}
}
void _insl(unsigned int port, void * addr, unsigned long count)
void _insl(unsigned int port, void *addr, unsigned long count)
{
unsigned long *buf = addr;
unsigned long *portp;
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned long *)portp;
while (count--)
*buf++ = *(volatile unsigned long *)portp;
}
void _outsb(unsigned int port, const void * addr, unsigned long count)
void _outsb(unsigned int port, const void *addr, unsigned long count)
{
const unsigned char *buf = addr;
unsigned char *portp;
if (port >= LAN_IOSTART && port < LAN_IOEND) {
portp = PORT2ADDR_NE(port);
while (count--) _ne_outb(*buf++, portp);
while (count--)
_ne_outb(*buf++, portp);
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite_byte(0, port, (void *)addr, sizeof(unsigned char), count, 1);
pcc_iowrite_byte(0, port, (void *)addr, sizeof(unsigned char),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned char *)portp = *buf++;
while (count--)
*(volatile unsigned char *)portp = *buf++;
}
}
void _outsw(unsigned int port, const void * addr, unsigned long count)
void _outsw(unsigned int port, const void *addr, unsigned long count)
{
const unsigned short *buf = addr;
unsigned short *portp;
......@@ -356,22 +365,26 @@ void _outsw(unsigned int port, const void * addr, unsigned long count)
* into the DATA_REG. Do not swap the data.
*/
portp = PORT2ADDR_NE(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
#if defined(CONFIG_PCMCIA) && defined(CONFIG_M32R_CFC)
} else if (port >= M32R_PCC_IOSTART0 && port <= M32R_PCC_IOEND0) {
pcc_iowrite_word(9, port, (void *)addr, sizeof(unsigned short), count, 1);
pcc_iowrite_word(9, port, (void *)addr, sizeof(unsigned short),
count, 1);
#endif
} else {
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned short *)portp = *buf++;
while (count--)
*(volatile unsigned short *)portp = *buf++;
}
}
void _outsl(unsigned int port, const void * addr, unsigned long count)
void _outsl(unsigned int port, const void *addr, unsigned long count)
{
const unsigned long *buf = addr;
unsigned char *portp;
portp = PORT2ADDR(port);
while(count--) *(volatile unsigned long *)portp = *buf++;
while (count--)
*(volatile unsigned long *)portp = *buf++;
}
......@@ -178,7 +178,8 @@ void _insb(unsigned int port, void * addr, unsigned long count)
else {
unsigned char *buf = addr;
unsigned char *portp = PORT2ADDR(port);
while(count--) *buf++ = *(volatile unsigned char *)portp;
while (count--)
*buf++ = *(volatile unsigned char *)portp;
}
}
......@@ -192,7 +193,8 @@ void _insw(unsigned int port, void * addr, unsigned long count)
1);
else {
portp = PORT2ADDR(port);
while (count--) *buf++ = *(volatile unsigned short *)portp;
while (count--)
*buf++ = *(volatile unsigned short *)portp;
}
}
......
......@@ -193,7 +193,7 @@ EXPORT_SYMBOL(do_settimeofday);
* BUG: This routine does not handle hour overflow properly; it just
* sets the minutes. Usually you won't notice until after reboot!
*/
static __inline__ int set_rtc_mmss(unsigned long nowtime)
static inline int set_rtc_mmss(unsigned long nowtime)
{
return 0;
}
......@@ -205,11 +205,17 @@ static long last_rtc_update = 0;
* timer_interrupt() needs to keep up the real-time clock,
* as well as call the "do_timer()" routine every clocktick
*/
static __inline__ void do_timer_interrupt(int irq, void *dev_id,
struct pt_regs * regs)
static inline void
do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
{
#ifndef CONFIG_SMP
profile_tick(CPU_PROFILING, regs);
#endif
do_timer(regs);
#ifndef CONFIG_SMP
update_process_times(user_mode(regs));
#endif
/*
* If we have an externally synchronized Linux clock, then update
* CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
......@@ -241,10 +247,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
do_timer_interrupt(irq, NULL, regs);
write_sequnlock(&xtime_lock);
#ifndef CONFIG_SMP
profile_tick(CPU_PROFILING, regs);
#endif
return IRQ_HANDLED;
}
......@@ -314,4 +316,3 @@ unsigned long long sched_clock(void)
{
return (unsigned long long)jiffies * (1000000000 / HZ);
}
......@@ -182,7 +182,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code,
goto bad_area;
}
#endif
if (expand_stack(vma, address, NULL))
if (expand_stack(vma, address))
goto bad_area;
/*
* Ok, we have a good vm_area for this memory access, so
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:22:56 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:46:49 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -137,6 +139,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -155,7 +169,6 @@ CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
......@@ -253,6 +266,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -296,6 +310,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -316,6 +332,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -345,6 +362,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -368,6 +387,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -426,7 +447,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -661,6 +681,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
CONFIG_FB_CIRRUS=m
CONFIG_FB_AMIGA=y
CONFIG_FB_AMIGA_OCS=y
......@@ -697,6 +718,8 @@ CONFIG_DMASOUND=m
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -740,6 +763,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -772,6 +796,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -833,6 +858,7 @@ CONFIG_CODA_FS=m
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_AMIGA_PARTITION=y
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
......@@ -883,13 +909,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -914,6 +943,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:22:58 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:47:18 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -122,6 +124,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -175,6 +189,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -221,6 +236,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -241,6 +258,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -270,6 +288,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -293,6 +313,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -351,7 +373,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -556,6 +577,8 @@ CONFIG_DUMMY_CONSOLE=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -597,6 +620,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -629,6 +653,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -741,13 +766,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -772,6 +800,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:00 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:48:18 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -129,6 +131,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -147,7 +161,6 @@ CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
......@@ -208,6 +221,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -251,6 +265,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -271,6 +287,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -300,6 +317,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -323,6 +342,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -381,7 +402,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -581,6 +601,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_VIRTUAL is not set
......@@ -608,6 +629,8 @@ CONFIG_DMASOUND=m
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -652,6 +675,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -684,6 +708,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -744,6 +769,7 @@ CONFIG_CODA_FS=m
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_ATARI_PARTITION=y
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
......@@ -794,13 +820,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -825,6 +854,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:01 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:48:27 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -122,6 +124,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -175,6 +189,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -221,6 +236,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -241,6 +258,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -270,6 +288,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -293,6 +313,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -350,7 +372,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -555,6 +576,8 @@ CONFIG_DUMMY_CONSOLE=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -596,6 +619,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -628,6 +652,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -740,13 +765,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -771,6 +799,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:04 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:48:53 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -123,6 +125,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -176,6 +190,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -222,6 +237,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -242,6 +259,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -271,6 +289,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -294,6 +314,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -352,7 +374,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -557,6 +578,8 @@ CONFIG_DUMMY_CONSOLE=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -596,6 +619,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -628,6 +652,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -740,13 +765,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -771,6 +799,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:06 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:49:04 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -124,6 +126,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -142,7 +156,6 @@ CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
......@@ -203,6 +216,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -258,6 +272,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -278,6 +294,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -307,6 +324,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -330,6 +349,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -391,7 +412,6 @@ CONFIG_IPDDP_DECAP=y
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -587,6 +607,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
CONFIG_FB_VALKYRIE=y
CONFIG_FB_MAC=y
# CONFIG_FB_VIRTUAL is not set
......@@ -618,6 +639,8 @@ CONFIG_LOGO_MAC_CLUT224=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -661,6 +684,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -693,6 +717,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -819,13 +844,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -850,6 +878,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:08 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:49:10 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -122,6 +124,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -176,6 +190,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -222,6 +237,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -242,6 +259,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -271,6 +289,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -294,6 +314,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -352,7 +374,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -544,6 +565,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_VIRTUAL is not set
#
......@@ -571,6 +593,8 @@ CONFIG_LOGO_LINUX_CLUT224=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -612,6 +636,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -646,6 +671,7 @@ CONFIG_DEVFS_FS=y
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -758,13 +784,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -789,6 +818,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:09 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:49:35 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -122,6 +124,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -175,6 +189,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -221,6 +236,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -241,6 +258,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -270,6 +288,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -293,6 +313,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -351,7 +373,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -543,6 +564,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_VIRTUAL is not set
#
......@@ -570,6 +592,8 @@ CONFIG_LOGO_LINUX_CLUT224=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -611,6 +635,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -645,6 +670,7 @@ CONFIG_DEVFS_FS=y
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -757,13 +783,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -788,6 +817,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:11 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:49:42 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -127,6 +129,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -145,7 +159,6 @@ CONFIG_BLK_DEV_IDETAPE=m
CONFIG_BLK_DEV_IDEFLOPPY=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# CONFIG_IDE_TASKFILE_IO is not set
#
# IDE chipset support/bugfixes
......@@ -230,6 +243,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -276,6 +290,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -296,6 +312,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -325,6 +342,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -348,6 +367,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -406,7 +427,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -524,7 +544,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=m
# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_CT82C710 is not set
CONFIG_SERIO_Q40KBD=m
......@@ -619,6 +638,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
CONFIG_FB_Q40=y
# CONFIG_FB_VIRTUAL is not set
......@@ -649,6 +669,8 @@ CONFIG_DMASOUND=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -688,6 +710,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -720,6 +743,7 @@ CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -832,13 +856,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -863,6 +890,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:13 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:49:50 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -110,6 +112,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -164,6 +178,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -210,6 +225,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -230,6 +247,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -259,6 +277,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -282,6 +302,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -340,7 +362,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -533,6 +554,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_VIRTUAL is not set
#
......@@ -560,6 +582,8 @@ CONFIG_LOGO_LINUX_CLUT224=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -599,6 +623,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -633,6 +658,7 @@ CONFIG_DEVFS_MOUNT=y
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -745,13 +771,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -776,6 +805,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:15 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:49:55 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -28,6 +28,7 @@ CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_LOG_BUF_SHIFT=16
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
......@@ -35,12 +36,12 @@ CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -51,6 +52,7 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y
#
......@@ -121,6 +123,18 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -175,6 +189,7 @@ CONFIG_MD_RAID1=m
CONFIG_MD_RAID5=m
CONFIG_MD_RAID6=m
CONFIG_MD_MULTIPATH=m
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=m
CONFIG_DM_CRYPT=m
CONFIG_DM_SNAPSHOT=m
......@@ -221,6 +236,8 @@ CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_TUNNEL=m
CONFIG_IP_TCPDIAG=m
CONFIG_IP_TCPDIAG_IPV6=y
#
# IP: Virtual Server Configuration
......@@ -241,6 +258,7 @@ CONFIG_NETFILTER=y
#
CONFIG_IP_NF_CONNTRACK=m
# CONFIG_IP_NF_CT_ACCT is not set
CONFIG_IP_NF_CONNTRACK_MARK=y
# CONFIG_IP_NF_CT_PROTO_SCTP is not set
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
......@@ -270,6 +288,8 @@ CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_REALM=m
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
CONFIG_IP_NF_MATCH_CONNMARK=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
......@@ -293,6 +313,8 @@ CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_MARK=m
CONFIG_IP_NF_TARGET_CLASSIFY=m
CONFIG_IP_NF_TARGET_CONNMARK=m
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=m
......@@ -351,7 +373,6 @@ CONFIG_ATALK=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -543,6 +564,7 @@ CONFIG_GEN_RTC_X=y
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_VIRTUAL is not set
#
......@@ -570,6 +592,8 @@ CONFIG_LOGO_LINUX_CLUT224=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -609,6 +633,7 @@ CONFIG_QUOTA=y
# CONFIG_QFMT_V1 is not set
# CONFIG_QFMT_V2 is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
CONFIG_AUTOFS4_FS=m
......@@ -643,6 +668,7 @@ CONFIG_DEVFS_MOUNT=y
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
......@@ -755,13 +781,16 @@ CONFIG_NLS_UTF8=m
#
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_BUGVERBOSE is not set
# CONFIG_DEBUG_INFO is not set
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......@@ -786,6 +815,7 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_ANUBIS=m
CONFIG_CRYPTO_DEFLATE=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_CRC32C=m
......
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.9-m68k
# Thu Oct 28 21:23:03 2004
# Linux kernel version: 2.6.10-rc2-m68k
# Mon Nov 15 12:48:44 2004
#
CONFIG_M68K=y
CONFIG_MMU=y
......@@ -27,18 +27,19 @@ CONFIG_SYSCTL=y
# CONFIG_AUDIT is not set
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_HOTPLUG is not set
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
......@@ -116,6 +117,18 @@ CONFIG_AMIGA_FLOPPY=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_CDROM_PKTCDVD=y
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
#
# ATA/ATAPI/MFM/RLL support
......@@ -208,6 +221,8 @@ CONFIG_INET=y
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
......@@ -227,7 +242,6 @@ CONFIG_INET=y
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_HW_FLOWCONTROL is not set
#
# QoS and/or fair queueing
......@@ -406,6 +420,7 @@ CONFIG_LEGACY_PTY_COUNT=256
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_CIRRUS is not set
CONFIG_FB_AMIGA=y
CONFIG_FB_AMIGA_OCS=y
......@@ -433,6 +448,8 @@ CONFIG_DUMMY_CONSOLE=y
#
# USB support
#
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
#
# USB Gadget Support
......@@ -460,6 +477,7 @@ CONFIG_EXT2_FS=y
CONFIG_MINIX_FS=y
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
......@@ -531,6 +549,7 @@ CONFIG_SUNRPC=y
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_AMIGA_PARTITION=y
CONFIG_MSDOS_PARTITION=y
#
# Native Language Support
......@@ -584,6 +603,7 @@ CONFIG_NLS_CODEPAGE_437=y
#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set
#
......
......@@ -706,4 +706,7 @@ sys_call_table:
.long sys_mq_getsetattr
.long sys_waitid
.long sys_ni_syscall /* for sys_vserver */
.long sys_add_key
.long sys_request_key /* 280 */
.long sys_keyctl
......@@ -16,7 +16,7 @@ SECTIONS
SCHED_TEXT
*(.fixup)
*(.gnu.warning)
} = 0x4e75
} :text = 0x4e75
RODATA
_etext = .; /* End of text section */
......@@ -28,7 +28,7 @@ SECTIONS
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
}
} :data
/* End of data goes *here* so that freeing init code works properly. */
_edata = .;
......
......@@ -287,9 +287,9 @@ asmlinkage int irix_syssgi(struct pt_regs *regs)
int pid = (int) regs->regs[base + 5];
char *buf = (char *) regs->regs[base + 6];
struct task_struct *p;
char comm[16];
char tcomm[sizeof(current->comm)];
retval = verify_area(VERIFY_WRITE, buf, 16);
retval = verify_area(VERIFY_WRITE, buf, sizeof(tcomm));
if (retval)
break;
read_lock(&tasklist_lock);
......@@ -299,11 +299,11 @@ asmlinkage int irix_syssgi(struct pt_regs *regs)
retval = -ESRCH;
break;
}
memcpy(comm, p->comm, 16);
get_task_comm(tcomm, p);
read_unlock(&tasklist_lock);
/* XXX Need to check sizes. */
copy_to_user(buf, p->comm, 16);
copy_to_user(buf, tcomm, sizeof(tcomm));
retval = 0;
break;
}
......
......@@ -16,6 +16,7 @@
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/initrd.h>
#include <linux/root_dev.h>
#include <linux/seq_file.h>
#include <linux/irq.h>
......
......@@ -59,13 +59,18 @@ static int __init setup_iommu(char *str)
__setup("iommu=", setup_iommu);
static unsigned long iommu_range_alloc(struct iommu_table *tbl, unsigned long npages,
unsigned long *handle)
static unsigned long iommu_range_alloc(struct iommu_table *tbl,
unsigned long npages,
unsigned long *handle,
unsigned int align_order)
{
unsigned long n, end, i, start;
unsigned long limit;
int largealloc = npages > 15;
int pass = 0;
unsigned long align_mask;
align_mask = 0xffffffffffffffffl >> (64 - align_order);
/* This allocator was derived from x86_64's bit string search */
......@@ -97,6 +102,10 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl, unsigned long np
again:
n = find_next_zero_bit(tbl->it_map, limit, start);
/* Align allocation */
n = (n + align_mask) & ~align_mask;
end = n + npages;
if (unlikely(end >= limit)) {
......@@ -141,14 +150,15 @@ static unsigned long iommu_range_alloc(struct iommu_table *tbl, unsigned long np
}
static dma_addr_t iommu_alloc(struct iommu_table *tbl, void *page,
unsigned int npages, enum dma_data_direction direction)
unsigned int npages, enum dma_data_direction direction,
unsigned int align_order)
{
unsigned long entry, flags;
dma_addr_t ret = DMA_ERROR_CODE;
spin_lock_irqsave(&(tbl->it_lock), flags);
entry = iommu_range_alloc(tbl, npages, NULL);
entry = iommu_range_alloc(tbl, npages, NULL, align_order);
if (unlikely(entry == DMA_ERROR_CODE)) {
spin_unlock_irqrestore(&(tbl->it_lock), flags);
......@@ -264,7 +274,7 @@ int iommu_map_sg(struct device *dev, struct iommu_table *tbl,
vaddr = (unsigned long)page_address(s->page) + s->offset;
npages = PAGE_ALIGN(vaddr + slen) - (vaddr & PAGE_MASK);
npages >>= PAGE_SHIFT;
entry = iommu_range_alloc(tbl, npages, &handle);
entry = iommu_range_alloc(tbl, npages, &handle, 0);
DBG(" - vaddr: %lx, size: %lx\n", vaddr, slen);
......@@ -478,7 +488,7 @@ dma_addr_t iommu_map_single(struct iommu_table *tbl, void *vaddr,
npages >>= PAGE_SHIFT;
if (tbl) {
dma_handle = iommu_alloc(tbl, vaddr, npages, direction);
dma_handle = iommu_alloc(tbl, vaddr, npages, direction, 0);
if (dma_handle == DMA_ERROR_CODE) {
if (printk_ratelimit()) {
printk(KERN_INFO "iommu_alloc failed, "
......@@ -537,7 +547,7 @@ void *iommu_alloc_consistent(struct iommu_table *tbl, size_t size,
memset(ret, 0, size);
/* Set up tces to cover the allocated range */
mapping = iommu_alloc(tbl, ret, npages, DMA_BIDIRECTIONAL);
mapping = iommu_alloc(tbl, ret, npages, DMA_BIDIRECTIONAL, order);
if (mapping == DMA_ERROR_CODE) {
free_pages((unsigned long)ret, order);
ret = NULL;
......
......@@ -82,11 +82,11 @@ static unsigned long get_purr(void)
for_each_cpu(cpu) {
lpaca = paca + cpu;
sum_purr += lpaca->xLpPaca.xEmulatedTimeBase;
sum_purr += lpaca->lppaca.xEmulatedTimeBase;
#ifdef PURR_DEBUG
printk(KERN_INFO "get_purr for cpu (%d) has value (%ld) \n",
cpu, lpaca->xLpPaca.xEmulatedTimeBase);
cpu, lpaca->lppaca.xEmulatedTimeBase);
#endif
}
return sum_purr;
......
......@@ -15,3 +15,4 @@ ifdef CONFIG_PPC_ISERIES
obj-$(CONFIG_PCI) += e2a.o
endif
lib-$(CONFIG_XMON) += sstep.o
/*
* Single-step support.
*
* Copyright (C) 2004 Paul Mackerras <paulus@au.ibm.com>, IBM
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#include <linux/kernel.h>
#include <linux/ptrace.h>
#include <asm/sstep.h>
#include <asm/processor.h>
extern char SystemCall_common[];
/* Bits in SRR1 that are copied from MSR */
#define MSR_MASK 0xffffffff87c0ffff
/*
* Determine whether a conditional branch instruction would branch.
*/
static int branch_taken(unsigned int instr, struct pt_regs *regs)
{
unsigned int bo = (instr >> 21) & 0x1f;
unsigned int bi;
if ((bo & 4) == 0) {
/* decrement counter */
--regs->ctr;
if (((bo >> 1) & 1) ^ (regs->ctr == 0))
return 0;
}
if ((bo & 0x10) == 0) {
/* check bit from CR */
bi = (instr >> 16) & 0x1f;
if (((regs->ccr >> (31 - bi)) & 1) != ((bo >> 3) & 1))
return 0;
}
return 1;
}
/*
* Emulate instructions that cause a transfer of control.
* Returns 1 if the step was emulated, 0 if not,
* or -1 if the instruction is one that should not be stepped,
* such as an rfid, or a mtmsrd that would clear MSR_RI.
*/
int emulate_step(struct pt_regs *regs, unsigned int instr)
{
unsigned int opcode, rd;
unsigned long int imm;
opcode = instr >> 26;
switch (opcode) {
case 16: /* bc */
imm = (signed short)(instr & 0xfffc);
if ((instr & 2) == 0)
imm += regs->nip;
regs->nip += 4;
if ((regs->msr & MSR_SF) == 0)
regs->nip &= 0xffffffffUL;
if (instr & 1)
regs->link = regs->nip;
if (branch_taken(instr, regs))
regs->nip = imm;
return 1;
case 17: /* sc */
/*
* N.B. this uses knowledge about how the syscall
* entry code works. If that is changed, this will
* need to be changed also.
*/
regs->gpr[9] = regs->gpr[13];
regs->gpr[11] = regs->nip + 4;
regs->gpr[12] = regs->msr & MSR_MASK;
regs->gpr[13] = (unsigned long) get_paca();
regs->nip = (unsigned long) &SystemCall_common;
regs->msr = MSR_KERNEL;
return 1;
case 18: /* b */
imm = instr & 0x03fffffc;
if (imm & 0x02000000)
imm -= 0x04000000;
if ((instr & 2) == 0)
imm += regs->nip;
if (instr & 1) {
regs->link = regs->nip + 4;
if ((regs->msr & MSR_SF) == 0)
regs->link &= 0xffffffffUL;
}
if ((regs->msr & MSR_SF) == 0)
imm &= 0xffffffffUL;
regs->nip = imm;
return 1;
case 19:
switch (instr & 0x7fe) {
case 0x20: /* bclr */
case 0x420: /* bcctr */
imm = (instr & 0x400)? regs->ctr: regs->link;
regs->nip += 4;
if ((regs->msr & MSR_SF) == 0) {
regs->nip &= 0xffffffffUL;
imm &= 0xffffffffUL;
}
if (instr & 1)
regs->link = regs->nip;
if (branch_taken(instr, regs))
regs->nip = imm;
return 1;
case 0x24: /* rfid, scary */
return -1;
}
case 31:
rd = (instr >> 21) & 0x1f;
switch (instr & 0x7fe) {
case 0xa6: /* mfmsr */
regs->gpr[rd] = regs->msr & MSR_MASK;
regs->nip += 4;
if ((regs->msr & MSR_SF) == 0)
regs->nip &= 0xffffffffUL;
return 1;
case 0x164: /* mtmsrd */
/* only MSR_EE and MSR_RI get changed if bit 15 set */
/* mtmsrd doesn't change MSR_HV and MSR_ME */
imm = (instr & 0x10000)? 0x8002: 0xefffffffffffefffUL;
imm = (regs->msr & MSR_MASK & ~imm)
| (regs->gpr[rd] & imm);
if ((imm & MSR_RI) == 0)
/* can't step mtmsrd that would clear MSR_RI */
return -1;
regs->msr = imm;
regs->nip += 4;
if ((imm & MSR_SF) == 0)
regs->nip &= 0xffffffffUL;
return 1;
}
}
return 0;
}
......@@ -31,6 +31,7 @@
#include <asm/ppcdebug.h>
#include <asm/cputable.h>
#include <asm/rtas.h>
#include <asm/sstep.h>
#include "nonstdio.h"
#include "privinst.h"
......@@ -85,9 +86,6 @@ static unsigned bpinstr = 0x7fe00008; /* trap */
#define BP_NUM(bp) ((bp) - bpts + 1)
/* Bits in SRR1 that are copied from MSR */
#define MSR_MASK 0xffffffff87c0ffff
/* Prototypes */
static int cmds(struct pt_regs *);
static int mread(unsigned long, void *, int);
......@@ -132,7 +130,6 @@ static void csum(void);
static void bootcmds(void);
void dump_segments(void);
static void symbol_lookup(void);
static int emulate_step(struct pt_regs *regs, unsigned int instr);
static void xmon_print_symbol(unsigned long address, const char *mid,
const char *after);
static const char *getvecname(unsigned long vec);
......@@ -148,7 +145,6 @@ extern int xmon_read_poll(void);
extern int setjmp(long *);
extern void longjmp(long *, int);
extern unsigned long _ASR;
extern char SystemCall_common[];
pte_t *find_linux_pte(pgd_t *pgdir, unsigned long va); /* from htab.c */
......@@ -488,6 +484,9 @@ int xmon_core(struct pt_regs *regs, int fromipi)
if (stepped == 0) {
regs->nip = (unsigned long) &bp->instr[0];
atomic_inc(&bp->ref_count);
} else if (stepped < 0) {
printf("Couldn't single-step %s instruction\n",
(IS_RFID(bp->instr[0])? "rfid": "mtmsrd"));
}
}
}
......@@ -755,108 +754,6 @@ static void remove_cpu_bpts(void)
set_iabr(0);
}
static int branch_taken(unsigned int instr, struct pt_regs *regs)
{
unsigned int bo = (instr >> 21) & 0x1f;
unsigned int bi;
if ((bo & 4) == 0) {
/* decrement counter */
--regs->ctr;
if (((bo >> 1) & 1) ^ (regs->ctr == 0))
return 0;
}
if ((bo & 0x10) == 0) {
/* check bit from CR */
bi = (instr >> 16) & 0x1f;
if (((regs->ccr >> (31 - bi)) & 1) != ((bo >> 3) & 1))
return 0;
}
return 1;
}
/*
* Emulate instructions that cause a transfer of control.
* Returns 1 if the step was emulated, 0 if not,
* or -1 if the instruction is one that should not be stepped,
* such as an rfid, or a mtmsrd that would clear MSR_RI.
*/
static int emulate_step(struct pt_regs *regs, unsigned int instr)
{
unsigned int opcode, rd;
unsigned long int imm;
opcode = instr >> 26;
switch (opcode) {
case 16: /* bc */
imm = (signed short)(instr & 0xfffc);
if ((instr & 2) == 0)
imm += regs->nip;
regs->nip += 4; /* XXX check 32-bit mode */
if (instr & 1)
regs->link = regs->nip;
if (branch_taken(instr, regs))
regs->nip = imm;
return 1;
case 17: /* sc */
regs->gpr[9] = regs->gpr[13];
regs->gpr[11] = regs->nip + 4;
regs->gpr[12] = regs->msr & MSR_MASK;
regs->gpr[13] = (unsigned long) get_paca();
regs->nip = (unsigned long) &SystemCall_common;
regs->msr = MSR_KERNEL;
return 1;
case 18: /* b */
imm = instr & 0x03fffffc;
if (imm & 0x02000000)
imm -= 0x04000000;
if ((instr & 2) == 0)
imm += regs->nip;
if (instr & 1)
regs->link = regs->nip + 4;
regs->nip = imm;
return 1;
case 19:
switch (instr & 0x7fe) {
case 0x20: /* bclr */
case 0x420: /* bcctr */
imm = (instr & 0x400)? regs->ctr: regs->link;
regs->nip += 4; /* XXX check 32-bit mode */
if (instr & 1)
regs->link = regs->nip;
if (branch_taken(instr, regs))
regs->nip = imm;
return 1;
case 0x24: /* rfid, scary */
printf("Can't single-step an rfid instruction\n");
return -1;
}
case 31:
rd = (instr >> 21) & 0x1f;
switch (instr & 0x7fe) {
case 0xa6: /* mfmsr */
regs->gpr[rd] = regs->msr & MSR_MASK;
regs->nip += 4;
return 1;
case 0x164: /* mtmsrd */
/* only MSR_EE and MSR_RI get changed if bit 15 set */
/* mtmsrd doesn't change MSR_HV and MSR_ME */
imm = (instr & 0x10000)? 0x8002: 0xefffffffffffefffUL;
imm = (regs->msr & MSR_MASK & ~imm)
| (regs->gpr[rd] & imm);
if ((imm & MSR_RI) == 0) {
printf("Can't step an instruction that would "
"clear MSR.RI\n");
return -1;
}
regs->msr = imm;
regs->nip += 4;
return 1;
}
}
return 0;
}
/* Command interpreting routine */
static char *last_cmd;
......@@ -988,8 +885,11 @@ static int do_step(struct pt_regs *regs)
if ((regs->msr & (MSR_SF|MSR_PR|MSR_IR)) == (MSR_SF|MSR_IR)) {
if (mread(regs->nip, &instr, 4) == 4) {
stepped = emulate_step(regs, instr);
if (stepped < 0)
if (stepped < 0) {
printf("Couldn't single-step %s instruction\n",
(IS_RFID(instr)? "rfid": "mtmsrd"));
return 0;
}
if (stepped > 0) {
regs->trap = 0xd00 | (regs->trap & 1);
printf("stepped to ");
......
......@@ -29,14 +29,14 @@ MAKEFILE-$(CONFIG_MODE_TT) += Makefile-tt
MAKEFILE-$(CONFIG_MODE_SKAS) += Makefile-skas
ifneq ($(MAKEFILE-y),)
include $(addprefix $(ARCH_DIR)/,$(MAKEFILE-y))
include $(addprefix $(srctree)/$(ARCH_DIR)/,$(MAKEFILE-y))
endif
ARCH_INCLUDE := -I$(ARCH_DIR)/include
SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH)
include $(ARCH_DIR)/Makefile-$(SUBARCH)
include $(ARCH_DIR)/Makefile-os-$(OS)
include $(srctree)/$(ARCH_DIR)/Makefile-$(SUBARCH)
include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS)
# -Derrno=kernel_errno - This turns all kernel references to errno into
# kernel_errno to separate them from the libc errno. This allows -fno-common
......
/*
* Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
* Copyright (C) 2002 - 2003 Jeff Dike (jdike@addtoit.com)
* Licensed under the GPL
*/
......
/*
* Copyright (C) 2001 - 2003 Jeff Dike (jdike@addtoit.com)
* Licensed under the GPL
*/
#include "linux/kernel.h"
#include "linux/smp.h"
#include "linux/sched.h"
......
......@@ -325,7 +325,7 @@ static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
set_fs(USER_DS);
if (regs->eflags & TF_MASK) {
if (current->ptrace & PT_PTRACED) {
if ((current->ptrace & (PT_PTRACED | PT_DTRACE)) == (PT_PTRACED | PT_DTRACE)) {
ptrace_notify(SIGTRAP);
} else {
regs->eflags &= ~TF_MASK;
......
......@@ -305,13 +305,13 @@ static void __smp_call_function (void (*func) (void *info), void *info,
/* Send a message to all other CPUs and wait for them to respond */
send_IPI_allbutself(CALL_FUNCTION_VECTOR);
if (!wait)
return;
/* Wait for response */
while (atomic_read(&data.started) != cpus)
cpu_relax();
if (!wait)
return;
while (atomic_read(&data.finished) != cpus)
cpu_relax();
}
......
......@@ -331,7 +331,7 @@ static noinline void handle_lost_ticks(int lost, struct pt_regs *regs)
print_symbol("rip %s)\n", regs->rip);
}
if (lost_count == 100 && !warned) {
if (lost_count == 1000 && !warned) {
printk(KERN_WARNING
"warning: many lost ticks.\n"
KERN_WARNING "Your time source seems to be instable or "
......
......@@ -45,32 +45,31 @@ SECTIONS
}
__bss_end = .;
. = ALIGN(64);
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
#define AFTER(x) BINALIGN(LOADADDR(x) + SIZEOF(x), 16)
#define BINALIGN(x,y) (((x) + (y) - 1) & ~((y) - 1))
#define CACHE_ALIGN(x) BINALIGN(x, CONFIG_X86_L1_CACHE_BYTES)
.vsyscall_0 -10*1024*1024: AT ((LOADADDR(.data.cacheline_aligned) + SIZEOF(.data.cacheline_aligned) + 4095) & ~(4095)) { *(.vsyscall_0) }
__vsyscall_0 = LOADADDR(.vsyscall_0);
. = ALIGN(64);
.xtime_lock : AT ((LOADADDR(.vsyscall_0) + SIZEOF(.vsyscall_0) + 63) & ~(63)) { *(.xtime_lock) }
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
.xtime_lock : AT CACHE_ALIGN(AFTER(.vsyscall_0)) { *(.xtime_lock) }
xtime_lock = LOADADDR(.xtime_lock);
. = ALIGN(16);
.vxtime : AT ((LOADADDR(.xtime_lock) + SIZEOF(.xtime_lock) + 15) & ~(15)) { *(.vxtime) }
.vxtime : AT AFTER(.xtime_lock) { *(.vxtime) }
vxtime = LOADADDR(.vxtime);
. = ALIGN(16);
.wall_jiffies : AT ((LOADADDR(.vxtime) + SIZEOF(.vxtime) + 15) & ~(15)) { *(.wall_jiffies) }
.wall_jiffies : AT AFTER(.vxtime) { *(.wall_jiffies) }
wall_jiffies = LOADADDR(.wall_jiffies);
. = ALIGN(16);
.sys_tz : AT ((LOADADDR(.wall_jiffies) + SIZEOF(.wall_jiffies) + 15) & ~(15)) { *(.sys_tz) }
.sys_tz : AT AFTER(.wall_jiffies) { *(.sys_tz) }
sys_tz = LOADADDR(.sys_tz);
. = ALIGN(16);
.sysctl_vsyscall : AT ((LOADADDR(.sys_tz) + SIZEOF(.sys_tz) + 15) & ~(15)) { *(.sysctl_vsyscall) }
.sysctl_vsyscall : AT AFTER(.sys_tz) { *(.sysctl_vsyscall) }
sysctl_vsyscall = LOADADDR(.sysctl_vsyscall);
. = ALIGN(16);
.jiffies : AT ((LOADADDR(.sysctl_vsyscall) + SIZEOF(.sysctl_vsyscall) + 15) & ~(15)) { *(.jiffies) }
jiffies = LOADADDR(.jiffies);
. = ALIGN(16);
.xtime : AT ((LOADADDR(.jiffies) + SIZEOF(.jiffies) + 15) & ~(15)) { *(.xtime) }
.xtime : AT AFTER(.sysctl_vsyscall) { *(.xtime) }
xtime = LOADADDR(.xtime);
. = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
.jiffies : AT CACHE_ALIGN(AFTER(.xtime)) { *(.jiffies) }
jiffies = LOADADDR(.jiffies);
.vsyscall_1 ADDR(.vsyscall_0) + 1024: AT (LOADADDR(.vsyscall_0) + 1024) { *(.vsyscall_1) }
. = LOADADDR(.vsyscall_0) + 4096;
......
......@@ -166,14 +166,12 @@ static void __init map_vsyscall(void)
static int __init vsyscall_init(void)
{
if ((unsigned long) &vgettimeofday != VSYSCALL_ADDR(__NR_vgettimeofday))
panic("vgettimeofday link addr broken");
if ((unsigned long) &vtime != VSYSCALL_ADDR(__NR_vtime))
panic("vtime link addr broken");
if (VSYSCALL_ADDR(0) != __fix_to_virt(VSYSCALL_FIRST_PAGE))
panic("fixmap first vsyscall %lx should be %lx", __fix_to_virt(VSYSCALL_FIRST_PAGE),
VSYSCALL_ADDR(0));
BUG_ON(((unsigned long) &vgettimeofday !=
VSYSCALL_ADDR(__NR_vgettimeofday)));
BUG_ON((unsigned long) &vtime != VSYSCALL_ADDR(__NR_vtime));
BUG_ON((VSYSCALL_ADDR(0) != __fix_to_virt(VSYSCALL_FIRST_PAGE)));
map_vsyscall();
sysctl_vsyscall = 1;
return 0;
}
......
......@@ -127,6 +127,7 @@ static int verify_command(struct file *file, unsigned char *cmd)
safe_for_read(INQUIRY),
safe_for_read(MODE_SENSE),
safe_for_read(MODE_SENSE_10),
safe_for_read(LOG_SENSE),
safe_for_read(START_STOP),
safe_for_read(GPCMD_VERIFY_10),
safe_for_read(VERIFY_16),
......@@ -169,6 +170,7 @@ static int verify_command(struct file *file, unsigned char *cmd)
safe_for_write(ERASE),
safe_for_write(GPCMD_MODE_SELECT_10),
safe_for_write(MODE_SELECT),
safe_for_write(LOG_SELECT),
safe_for_write(GPCMD_BLANK),
safe_for_write(GPCMD_CLOSE_TRACK),
safe_for_write(GPCMD_FLUSH_CACHE),
......
......@@ -764,8 +764,8 @@ static int viodasd_remove(struct vio_dev *vdev)
d = &viodasd_devices[vdev->unit_address];
if (d->disk) {
del_gendisk(d->disk);
put_disk(d->disk);
blk_cleanup_queue(d->disk->queue);
put_disk(d->disk);
d->disk = NULL;
}
d->dev = NULL;
......
......@@ -3336,7 +3336,6 @@ ctl_table cdrom_cdrom_table[] = {
/* Make sure that /proc/sys/dev is there */
ctl_table cdrom_root_table[] = {
#ifdef CONFIG_PROC_FS
{
.ctl_name = CTL_DEV,
.procname = "dev",
......@@ -3344,7 +3343,6 @@ ctl_table cdrom_root_table[] = {
.mode = 0555,
.child = cdrom_cdrom_table,
},
#endif /* CONFIG_PROC_FS */
{ .ctl_name = 0 }
};
static struct ctl_table_header *cdrom_sysctl_header;
......
......@@ -14,8 +14,8 @@
* 11/01/01 - jbarnes - initial revision
* 9/10/04 - Christoph Lameter - remove interrupt support for kernel inclusion
* 10/1/04 - Christoph Lameter - provide posix clock CLOCK_SGI_CYCLE
* 10/13/04 - Christoph Lameter, Dimitri Sivanich - provide timer interrupt support
* via the posix timer interface
* 10/13/04 - Christoph Lameter, Dimitri Sivanich - provide timer interrupt
* support via the posix timer interface
*/
#include <linux/types.h>
......@@ -82,45 +82,23 @@ static struct file_operations mmtimer_fops = {
* node. RTC0 is used by SAL.
*/
#define NUM_COMPARATORS 3
/*
* Check for an interrupt and clear the pending bit if
* one is waiting.
*/
/* Check for an RTC interrupt pending */
static int inline mmtimer_int_pending(int comparator)
{
int pending = 0;
switch (comparator) {
case 0:
if (HUB_L((unsigned long *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED)) &
SH_EVENT_OCCURRED_RTC1_INT_MASK) {
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS),
SH_EVENT_OCCURRED_RTC1_INT_MASK);
pending = 1;
}
break;
case 1:
if (HUB_L((unsigned long *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED)) &
SH_EVENT_OCCURRED_RTC2_INT_MASK) {
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS),
SH_EVENT_OCCURRED_RTC2_INT_MASK);
pending = 1;
}
break;
case 2:
if (HUB_L((unsigned long *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED)) &
SH_EVENT_OCCURRED_RTC3_INT_MASK) {
SH_EVENT_OCCURRED_RTC1_INT_MASK << comparator)
return 1;
else
return 0;
}
/* Clear the RTC interrupt pending bit */
static void inline mmtimer_clr_int_pending(int comparator)
{
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS),
SH_EVENT_OCCURRED_RTC3_INT_MASK);
pending = 1;
}
break;
default:
return -EFAULT;
}
return pending;
SH_EVENT_OCCURRED_RTC1_INT_MASK << comparator);
}
/* Setup timer on comparator RTC1 */
static void inline mmtimer_setup_int_0(u64 expires)
{
u64 val;
......@@ -131,8 +109,8 @@ static void inline mmtimer_setup_int_0(u64 expires)
/* Initialize comparator value */
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_INT_CMPB), -1L);
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS),
SH_EVENT_OCCURRED_RTC1_INT_MASK);
/* Clear pending bit */
mmtimer_clr_int_pending(0);
val = ((u64)SGI_MMTIMER_VECTOR << SH_RTC1_INT_CONFIG_IDX_SHFT) |
((u64)cpu_physical_id(smp_processor_id()) <<
......@@ -150,6 +128,7 @@ static void inline mmtimer_setup_int_0(u64 expires)
}
/* Setup timer on comparator RTC2 */
static void inline mmtimer_setup_int_1(u64 expires)
{
u64 val;
......@@ -158,8 +137,7 @@ static void inline mmtimer_setup_int_1(u64 expires)
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_INT_CMPC), -1L);
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS),
SH_EVENT_OCCURRED_RTC2_INT_MASK);
mmtimer_clr_int_pending(1);
val = ((u64)SGI_MMTIMER_VECTOR << SH_RTC2_INT_CONFIG_IDX_SHFT) |
((u64)cpu_physical_id(smp_processor_id()) <<
......@@ -172,6 +150,7 @@ static void inline mmtimer_setup_int_1(u64 expires)
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_INT_CMPC), expires);
}
/* Setup timer on comparator RTC3 */
static void inline mmtimer_setup_int_2(u64 expires)
{
u64 val;
......@@ -180,8 +159,7 @@ static void inline mmtimer_setup_int_2(u64 expires)
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_INT_CMPD), -1L);
HUB_S((u64 *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS),
SH_EVENT_OCCURRED_RTC3_INT_MASK);
mmtimer_clr_int_pending(2);
val = ((u64)SGI_MMTIMER_VECTOR << SH_RTC3_INT_CONFIG_IDX_SHFT) |
((u64)cpu_physical_id(smp_processor_id()) <<
......@@ -220,8 +198,7 @@ static int inline mmtimer_setup(int comparator, unsigned long expires)
/* We might've missed our expiration time */
diff = rtc_time() - expires;
if (diff > 0) {
if (HUB_L((unsigned long *)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED)) &
(SH_EVENT_OCCURRED_RTC1_INT_MASK << comparator)) {
if (mmtimer_int_pending(comparator)) {
/* We'll get an interrupt for this once we're done */
return 0;
}
......@@ -259,6 +236,9 @@ static int inline mmtimer_disable_int(long nasid, int comparator)
typedef struct mmtimer {
spinlock_t lock ____cacheline_aligned;
struct k_itimer *timer;
int i;
int cpu;
struct tasklet_struct tasklet;
} mmtimer_t;
/*
......@@ -435,12 +415,12 @@ static int sgi_clock_set(struct timespec *tp)
* exponentially in order to ensure that the next interrupt
* can be properly scheduled..
*/
static int inline reschedule_periodic_timer(mmtimer_t *base, struct k_itimer *t, int i)
static int inline reschedule_periodic_timer(mmtimer_t *x)
{
int n;
struct k_itimer *t = x->timer;
t->it_timer.magic = i;
base[i].timer = t;
t->it_timer.magic = x->i;
t->it_overrun--;
n = 0;
......@@ -452,7 +432,7 @@ static int inline reschedule_periodic_timer(mmtimer_t *base, struct k_itimer *t,
if (n > 20)
return 1;
} while (mmtimer_setup(i, t->it_timer.expires));
} while (mmtimer_setup(x->i, t->it_timer.expires));
return 0;
}
......@@ -475,57 +455,70 @@ static irqreturn_t
mmtimer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
int i;
mmtimer_t *base = timers + cpuid_to_cnodeid(smp_processor_id()) * NUM_COMPARATORS;
mmtimer_t *base = timers + cpuid_to_cnodeid(smp_processor_id()) *
NUM_COMPARATORS;
unsigned long expires = 0;
int result = IRQ_NONE;
/*
* Do this once for each comparison register
*/
for (i = 0; i < NUM_COMPARATORS; i++) {
unsigned long flags;
if (mmtimer_int_pending(i) > 0) {
struct k_itimer *t;
int m = 0;
mmtimer_disable_int(-1, i);
/* Make sure this doesn't get reused before tasklet_sched */
spin_lock(&base[i].lock);
t = base[i].timer;
base[i].timer = NULL;
if (t) {
m = t->it_timer.magic;
t->it_timer.magic = TIMER_OFF;
if (base[i].cpu == smp_processor_id()) {
if (base[i].timer)
expires = base[i].timer->it_timer.expires;
/* expires test won't work with shared irqs */
if ((mmtimer_int_pending(i) > 0) ||
(expires && (expires < rtc_time()))) {
mmtimer_clr_int_pending(i);
tasklet_schedule(&base[i].tasklet);
result = IRQ_HANDLED;
}
}
spin_unlock(&base[i].lock);
expires = 0;
}
return result;
}
if (t == NULL || m == TIMER_OFF)
/* No timer left here, bail out */
goto out;
void mmtimer_tasklet(unsigned long data) {
mmtimer_t *x = (mmtimer_t *)data;
struct k_itimer *t = x->timer;
unsigned long flags;
if (t == NULL)
return;
/* Send signal and deal with periodic signals */
spin_lock_irqsave(&t->it_lock, flags);
spin_lock(&x->lock);
/* If timer was deleted between interrupt and here, leave */
if (t != x->timer)
goto out;
t->it_overrun = 0;
if (posix_timer_event(t, 0) == 0) {
if (tasklist_lock.write_lock || posix_timer_event(t, 0) != 0) {
// printk(KERN_WARNING "mmtimer: cannot deliver signal.\n");
t->it_overrun++;
}
if(t->it_incr) {
/* Periodic timer */
spin_lock(&base[i].lock);
if (base[i].timer == NULL)
reschedule_periodic_timer(base, t, i);
spin_unlock(&base[i].lock);
if (reschedule_periodic_timer(x)) {
printk(KERN_WARNING "mmtimer: unable to reschedule\n");
x->timer = NULL;
}
} else {
printk(KERN_WARNING "mmtimer: unable to deliver signal");
t->it_overrun++;
/* Ensure we don't false trigger in mmtimer_interrupt */
t->it_timer.expires = 0;
}
t->it_overrun_last = t->it_overrun;
spin_unlock_irqrestore(&t->it_lock, flags);
out:
result = IRQ_HANDLED;
}
}
return result;
spin_unlock(&x->lock);
spin_unlock_irqrestore(&t->it_lock, flags);
}
static int sgi_timer_create(struct k_itimer *timer)
......@@ -552,6 +545,7 @@ static int sgi_timer_del(struct k_itimer *timr)
mmtimer_disable_int(cnodeid_to_nasid(nodeid),i);
t->timer = NULL;
timr->it_timer.magic = TIMER_OFF;
timr->it_timer.expires = 0;
spin_unlock_irqrestore(&t->lock, irqflags);
}
return 0;
......@@ -625,8 +619,9 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
nodeid = cpuid_to_cnodeid(smp_processor_id());
base = timers + nodeid * NUM_COMPARATORS;
retry:
/* Don't use an allocated timer, or a deleted one that's pending */
for(i = 0; i< NUM_COMPARATORS; i++) {
if (!base[i].timer) {
if (!base[i].timer && !base[i].tasklet.state) {
break;
}
}
......@@ -638,11 +633,12 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
spin_lock_irqsave(&base[i].lock, irqflags);
if (base[i].timer) {
if (base[i].timer || base[i].tasklet.state != 0) {
spin_unlock_irqrestore(&base[i].lock, irqflags);
goto retry;
}
base[i].timer = timr;
base[i].cpu = smp_processor_id();
timr->it_timer.magic = i;
timr->it_timer.data = nodeid;
......@@ -653,10 +649,11 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
if (mmtimer_setup(i, when)) {
mmtimer_disable_int(-1, i);
posix_timer_event(timr, 0);
timr->it_timer.expires = 0;
}
} else {
timr->it_timer.expires -= period;
if (reschedule_periodic_timer(base, timr, i))
if (reschedule_periodic_timer(base+i))
err = -EINVAL;
}
......@@ -705,6 +702,9 @@ static int __init mmtimer_init(void)
for (i=0; i< NUM_COMPARATORS*MAX_COMPACT_NODES; i++) {
spin_lock_init(&timers[i].lock);
timers[i].timer = NULL;
timers[i].cpu = 0;
timers[i].i = i % NUM_COMPARATORS;
tasklet_init(&timers[i].tasklet, mmtimer_tasklet, (unsigned long) (timers+i));
}
if (request_irq(SGI_MMTIMER_VECTOR, mmtimer_interrupt, SA_PERCPU_IRQ, MMTIMER_NAME, NULL)) {
......
......@@ -232,6 +232,8 @@ static u8 sonypi_call3(u8 dev, u8 fn, u8 v)
return v1;
}
#if 0
/* Get brightness, hue etc. Unreliable... */
static u8 sonypi_read(u8 fn)
{
u8 v1, v2;
......@@ -245,6 +247,7 @@ static u8 sonypi_read(u8 fn)
}
return 0xff;
}
#endif
/* Set brightness, hue etc */
static void sonypi_set(u8 fn, u8 v)
......@@ -435,80 +438,48 @@ static irqreturn_t sonypi_irq(int irq, void *dev_id, struct pt_regs *regs)
}
/* External camera command (exported to the motion eye v4l driver) */
u8 sonypi_camera_command(int command, u8 value)
int sonypi_camera_command(int command, u8 value)
{
u8 ret = 0;
if (!camera)
return 0;
return -EIO;
down(&sonypi_device.lock);
switch (command) {
case SONYPI_COMMAND_GETCAMERA:
ret = sonypi_camera_ready();
break;
case SONYPI_COMMAND_SETCAMERA:
if (value)
sonypi_camera_on();
else
sonypi_camera_off();
break;
case SONYPI_COMMAND_GETCAMERABRIGHTNESS:
ret = sonypi_read(SONYPI_CAMERA_BRIGHTNESS);
break;
case SONYPI_COMMAND_SETCAMERABRIGHTNESS:
sonypi_set(SONYPI_CAMERA_BRIGHTNESS, value);
break;
case SONYPI_COMMAND_GETCAMERACONTRAST:
ret = sonypi_read(SONYPI_CAMERA_CONTRAST);
break;
case SONYPI_COMMAND_SETCAMERACONTRAST:
sonypi_set(SONYPI_CAMERA_CONTRAST, value);
break;
case SONYPI_COMMAND_GETCAMERAHUE:
ret = sonypi_read(SONYPI_CAMERA_HUE);
break;
case SONYPI_COMMAND_SETCAMERAHUE:
sonypi_set(SONYPI_CAMERA_HUE, value);
break;
case SONYPI_COMMAND_GETCAMERACOLOR:
ret = sonypi_read(SONYPI_CAMERA_COLOR);
break;
case SONYPI_COMMAND_SETCAMERACOLOR:
sonypi_set(SONYPI_CAMERA_COLOR, value);
break;
case SONYPI_COMMAND_GETCAMERASHARPNESS:
ret = sonypi_read(SONYPI_CAMERA_SHARPNESS);
break;
case SONYPI_COMMAND_SETCAMERASHARPNESS:
sonypi_set(SONYPI_CAMERA_SHARPNESS, value);
break;
case SONYPI_COMMAND_GETCAMERAPICTURE:
ret = sonypi_read(SONYPI_CAMERA_PICTURE);
break;
case SONYPI_COMMAND_SETCAMERAPICTURE:
sonypi_set(SONYPI_CAMERA_PICTURE, value);
break;
case SONYPI_COMMAND_GETCAMERAAGC:
ret = sonypi_read(SONYPI_CAMERA_AGC);
break;
case SONYPI_COMMAND_SETCAMERAAGC:
sonypi_set(SONYPI_CAMERA_AGC, value);
break;
case SONYPI_COMMAND_GETCAMERADIRECTION:
ret = sonypi_read(SONYPI_CAMERA_STATUS);
ret &= SONYPI_DIRECTION_BACKWARDS;
break;
case SONYPI_COMMAND_GETCAMERAROMVERSION:
ret = sonypi_read(SONYPI_CAMERA_ROMVERSION);
break;
case SONYPI_COMMAND_GETCAMERAREVISION:
ret = sonypi_read(SONYPI_CAMERA_REVISION);
default:
printk(KERN_ERR "sonypi: sonypi_camera_command invalid: %d\n",
command);
break;
}
up(&sonypi_device.lock);
return ret;
return 0;
}
EXPORT_SYMBOL(sonypi_camera_command);
......
......@@ -36,7 +36,7 @@
#ifdef __KERNEL__
#define SONYPI_DRIVER_VERSION "1.24"
#define SONYPI_DRIVER_VERSION "1.25"
#define SONYPI_DEVICE_MODEL_TYPE1 1
#define SONYPI_DEVICE_MODEL_TYPE2 2
......
......@@ -48,7 +48,11 @@ config EFI_PCDP
use the first serial port it describes as the Linux console,
say Y here. If your EFI ConOut path contains only a UART
device, it will become the console automatically. Otherwise,
you must specify the "console=ttyS0" kernel boot argument.
you must specify the "console=hcdp" kernel boot argument.
Neither the PCDP nor the HCDP affects naming of serial devices,
so a serial console may be /dev/ttyS0, /dev/ttyS1, etc, depending
on how the driver discovers devices.
You must also enable the appropriate drivers (serial, VGA, etc.)
......
This diff is collapsed.
......@@ -218,6 +218,7 @@ config I2C_NFORCE2
help
If you say yes to this option, support will be included for the Nvidia
Nforce2 family of mainboard I2C interfaces.
This driver also supports the nForce3 Pro 150 MCP.
This driver can also be built as a module. If so, the module
will be called i2c-nforce2.
......
......@@ -35,6 +35,7 @@
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/i2c.h>
......@@ -156,7 +157,9 @@ static int __init amd756_s4882_init(void)
/* Unregister physical bus */
error = i2c_del_adapter(&amd756_smbus);
if (error) {
if (error != -EINVAL)
if (error == -EINVAL)
error = -ENODEV;
else
dev_err(&amd756_smbus.dev, "Physical bus removal "
"failed\n");
goto ERROR0;
......@@ -200,7 +203,7 @@ static int __init amd756_s4882_init(void)
I2C_SMBUS_WRITE, 0x03,
I2C_SMBUS_BYTE_DATA, &ioconfig);
if (error) {
dev_dbg(&amd756_smbus.dev, "PCA9556 configuration failed\n");
dev_err(&amd756_smbus.dev, "PCA9556 configuration failed\n");
error = -EIO;
goto ERROR3;
}
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -12,6 +12,7 @@
#include <linux/module.h>
#include <linux/version.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include "isdn_divert.h"
......@@ -19,11 +20,6 @@ MODULE_DESCRIPTION("ISDN4Linux: Call diversion support");
MODULE_AUTHOR("Werner Cornelius");
MODULE_LICENSE("GPL");
/********************/
/* needed externals */
/********************/
extern int printk(const char *fmt,...);
/****************************************/
/* structure containing interface to hl */
/****************************************/
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -31,7 +31,7 @@
#define _MEYE_PRIV_H_
#define MEYE_DRIVER_MAJORVERSION 1
#define MEYE_DRIVER_MINORVERSION 11
#define MEYE_DRIVER_MINORVERSION 12
#define MEYE_DRIVER_VERSION __stringify(MEYE_DRIVER_MAJORVERSION) "." \
__stringify(MEYE_DRIVER_MINORVERSION)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment