Age | Commit message (Collapse) | Author |
|
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Print messages when
device is present but powered down.
|
|
* linux/dev/include/linux/types.h (int8_t, uint8_t, int16_t, uint16_t,
int32_t, uint32_t, int64_t, uint64_t): New types.
|
|
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Show odd number of ports.
|
|
If the loop above completes at least one iteration, `i' will be larger
than zero.
* linux/dev/glue/block.c (rdwr_full): Add assertion to appease the
compiler.
|
|
* linux/dev/arch/i386/kernel/irq.c (init_IRQ): Properly mask 8 bits of
PIT counter.
|
|
* linux/dev/drivers/block/genhd.c: Include <linux/hdreg.h> and
<alloca.h>
(device_setup): Look for ide and hd options, and call ide_setup with
them.
* linux/src/drivers/block/ide.c (ide_setup) [MACH]: Parse hd[0-7] instead
of hd[a-h].
|
|
* linux/dev/glue/block.c (device_set_status): Fix prototype.
|
|
by reducing possible number of partitions to 32.
* linux/dev/drivers/block/ahci.c (MAX_PORTS): Set to 8.
(PARTN_BITS): Set to 5.
|
|
* linux/dev/drivers/block/ahci.c (struct port): Add id and is_cd fields.
(ahci_end_request): Only print error if quiet flag of the request is not
set.
(ahci_do_port_request): Upgrade sector parameter to 64 bit. Include
those bits in the LBA48 request.
(ahci_do_request): Upgrade sector count to 64bit. Only print errors if
quiet flag of the request is not set.
(ahci_probe_port): Move identify code...
(ahci_identify): ... to new function. Handle WIN_PIDENTIFY case to
recognize ATAPI devices.
(ahci_probe_port): Also try WIN_PIDENTIFY command.
(ahci_geninit): Avoid checking partition table on empty devices.
|
|
This avoids grub & such making Mach print flurries of floppy errors.
* linux/dev/include/linux/blkdev.h (request): Add `quiet' field.
* linux/dev/include/linux/blk.h (end_request): Print I/O error only if
the `quiet' field of the request is 0.
* linux/dev/include/linux/fs.h (ll_rw_block): Add `quiet' parameter.
* linux/dev/glue/block.c (ll_rw_block): Add `quiet' parameter, copied into
the request.
(bread, rdwr_partial, rdwr_full): Pass 0 to `ll_rw_block''s `quiet' parameter.
* linux/dev/drivers/block/floppy.c (floppy_revalidate): Pass 1 to
`ll_rw_block''s `quiet' parameter.
|
|
* linux/dev/drivers/block/ahci.c (port): Add `gd' field.
(ahci_ioctl): New function.
(ahci_fops): Fill `ioctl' field with `ahci_ioctl'.
(ahci_probe_pci): Fill `gd' field with `gd'.
|
|
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Compute `dev' and `fun'
earlier so they can be printed.
|
|
We rather rely on the announced PCI type to determine whether to use IDE or
AHCI.
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Do not skip AHCI
controller without HOST_CAP_ONLY.
|
|
* linux/dev/drivers/block/ahci.c (identify_timeout): New function.
(identify_timer): New variable.
(ahci_probe_port): Add timer to abandon identify command.
|
|
* linux/dev/drivers/block/ahci.c (ahci_do_request): Cast capacity into unsigned
long and use %lu format.
(ahci_probe_port): Cast size into unsigned and use %u format.
|
|
|
|
* linux/dev/drivers/block/ahci.c (port): Extend `capacity' field type to
unsigned long long. Add `lba48' field. Make `identify' field unsigned.
(ahci_do_port_request): When `lba48' is true, use WIN_READDMA_EXT and
WIN_WRITEDMA_EXT commands.
(ahci_probe_port): Test lba48 flag, read capacity and set `lba48'
accordingly. Display size in GiB above 10GiB.
* linux/src/include/linux/hdreg.h (WIN_READDMA_EXT, WIN_WRITEDMA_EXT): New
macros
(hd_driveid): Add `command_set_2' and lba_capacity_2' fields.
|
|
* linux/dev/drivers/block/ahci.c (ahci_probe_dev): Add missing parameters to
printf.
|
|
* linux/dev/glue/kmem.c (vmtophys): New function.
* linux/dev/include/linux/mm.h (vmtophys): New prototype.
* linux/src/include/linux/pci.h (PCI_CLASS_STORAGE_SATA,
PCI_CLASS_STORAGE_SATA_AHCI): New macros.
* linux/dev/drivers/block/ahci.c: New file.
* linux/dev/include/ahci.h: New file.
* linux/Makefrag.am (liblinux_a_SOURCES): Add linux/dev/drivers/block/ahci.c
and linux/dev/drivers/block/ahci.h.
* linux/src/drivers/block/ide.c: Include <ahci.h>.
(probe_for_hwifs): Call ahci_probe_pci.
|
|
This fixes grave issues when device_read is called with non-block-aligned
offset, e.g. when using grub-probe with a non-block-aligned partition table.
* linux/dev/glue/block.c (rdwr_full): Use current position instead of base
buffer position to check for alignment.
|
|
* linux/dev/glue/block.c (device_get_status): Use
DEV_GET_RECORDS_RECORD_SIZE for DEV_GET_RECORDS instead of
DEV_GET_SIZE_RECORD_SIZE.
|
|
Cherry picked from Linux kernel commit 76c25284e0d845bff4ee1031721556148af4db1c
* linux/dev/drivers/block/floppy.c (config_types): Clear from
`allowed_drive_mask' floppy drives whose cmos type is 0.
|
|
* linux/dev/glue/block.c
(device_open): Properly return devp on multiple opens.
(device_close_forced): Renamed from device_close, when force parameter is 1, do
not wait for open_count to become 0 before closing.
(device_close): New function.
(device_no_senders): New function.
linux_block_emulation_ops: Use (device_no_senders).
|
|
* i386/i386/vm_param.h [!MACH_XEN]: Do not include <xen/public/xen.h>.
* i386/i386at/model_dep.c (init_alloc_aligned): Use phystokv to compare physical
memory addresses with kernel start, end, and symbol table.
* i386/intel/pmap.c (pmap_enter): Use kvtophys to convert ptp pointer to pte
entry.
* linux/dev/init/main.c (alloc_contig_mem, linux_init): Use phystokv to convert
allocated pages to virtual pointer.
* linux/src/include/asm-i386/io.h: Include <machine/vm_param.h>.
(virt_to_phys): Call _kvtophys.
(phys_to_virt): Call phystokv.
* linux/src/include/linux/compatmac.h: Include <asm/io.h>.
(ioremap): Use phys_to_virt to convert physical address to virtual pointer.
(my_iounmap): Likewise.
* linux/dev/include/asm-i386/page.h: Include <mach/vm_param.h>.
(PAGE_SHIFT, PAGE_SIZE, PAGE_MASK): Remove macros.
* linux/src/drivers/scsi/ncr53c8xx.c (vm_size_t): Remove type.
* linux/dev/glue/net.c: Include <machine/vm_param.h>
(device_write): Call phystokv to convert from physical page address to
virtual pointer.
* linux/dev/glue/block.c (alloc_buffer, free_buffer, rdwr_full): Likewise.
|
|
* linux/dev/glue/misc.c (issig): Return 0 if current_thread() is NULL.
|
|
* ddb/db_examine.c (db_xcdump): Do not cast addr before passing to
db_read_bytes.
* ddb/db_macro.c (db_arg_variable): Return long.
* ddb/db_macro.h (db_arg_variable): Likewise.
* ddb/db_sym.c (db_maxoff): Set type to unsigned long.
* ddb/db_task_thread.c (db_set_default_thread, db_get_task_thread): Return
long.
* ddb/db_variables.h (db_variable): Make fcn function field to return long.
(FCN_NULL): Make function type return long.
* i386/i386/db_interface.c (int_regs): Set field sizes to long.
* i386/i386/db_machdep.h (db_expr_t): Set type to long.
* i386/i386/db_trace.c (db_i386_reg_value): Return long. Use long types.
(i386_frame, i386_kregs, interrupt_frame, db_nextframe): Set field sizes to
long.
(db_regs, i386_kregs): Use long * pointers.
(db_lookup_i386_kreg): Return long *.
(db_numargs, db_nextframe, db_stack_trace_cmd, db_i386_stack_trace): Use long
types.
* i386/i386/debug_i386.c (dump_ss): Fix format.
* i386/i386/ktss.c (ktss_init): Use long type.
* i386/i386/pcb.c (set_user_regs): Likewise.
* i386/i386/thread.h (i386_saved_state, v86_segs, i386_kernel_state,
i386_interrupt_state): Set field sizes to long.
* i386/i386/trap.c (kernel_trap, user_trap): Fix formats.
* kern/ast.h (ast_t): Set type to long.
* kern/boot_script.c (create_task, resume_task, prompt_resume_task,
boot_script_set_variable): Use long types.
* kern/boot_script.h (boot_script_set_variable): Use long type.
* kern/bootstrap.c (bootstrap_create): Pass long type.
* kern/lock.c (simple_lock, simple_lock_try): Use long type.
* linux/dev/kernel/softirq.c (linux_soft_intr): Fix format.
|
|
On amd64 the cpu flags is a 64-bit word, and long on 32-bit systems is
32-bit wide anyway.
* linux/dev/glue/kmem.c (linux_kmalloc, linux_kfree, __get_free_pages,
free_pages): Use unsigned long instead of unsigned.
* linux/dev/include/asm-i386/system.h (__save_flags, __restore_flags):
Likewise.
* linux/dev/kernel/printk.c (printk): Likewise.
* linux/src/drivers/scsi/advansys.c (DvcEnterCritical, DvcLeaveCritical,
advansys_queuecommand, advansys_abort, advansys_reset, advansys_interrupt,
interrupts_enabled, AdvISR): Likewise.
* linux/src/drivers/scsi/aha152x.c (aha152x_intr): Likewise.
* linux/src/drivers/scsi/aha1542.c (aha1542_intr_handle): Likewise.
* linux/src/drivers/scsi/aic7xxx.c (aic7xxx_done_cmds_complete): Likewise.
* linux/src/drivers/scsi/ultrastor.c (log_ultrastor_abort,
ultrastor_queuecommand, ultrastor_abort): Likewise.
|
|
* linux/dev/arch/i386/kernel/irq.c (intr_count): Set to int type.
* linux/dev/kernel/softirq.c (bh_active, bh_mask): Likewise.
(linux_soft_intr: active, mask, left): Likewise
* linux/src/include/linux/interrupt.h (bh_active, bh_mask): Likewise.
* linux/src/kernel/softirq.c (intr_count, bh_active, bh_mask): Likewise.
(do_bottom_half: active, mask, left): Likewise
|
|
* device/dev_pager.c: Remove #include <kern/kalloc.h>.
* i386/i386/io_perm.c: Add #include <kern/kalloc.h>.
* kern/bootstrap.c: Likewise.
* kern/ipc_tt.c: Likewise.
* kern/pc_sample.c: Likewise.
* kern/processor.c: Likewise.
* kern/server_loop.ch: Likewise.
* kern/thread.c: Likewise.
* linux/dev/glue/block.c: Likewise.
* linux/dev/glue/net.c: Likewise.
* vm/vm_map.c: Likewise.
* xen/block.c: Likewise.
* xen/net.c: Likewise.
* xen/store.c: Likewise.
|
|
* linux/dev/drivers/block/genhd.c (device_setup): Set linux_intr_pri to
SPL6.
* linux/dev/glue/block.c (init_partition, device_open): Likewise.
|
|
* linux/dev/glue/kmem.c (MEM_CHUNKS): Increase to 32.
|
|
This driver supports qemu's SCSI host device.
Unfortunately it seems to be breaking the network device, so test with care.
* linux/Makefrag.am (liblinux_a_SOURCES): Add
linux/src/drivers/scsi/sym53c8xx{.c,_comm.h,.h,_defs.h}
* linux/configfrag.ac: Add AC_Linux_DRIVER([sym53c8xx] to enable
CONFIG_SCSI_SYM53C8XX.
* linux/dev/glue/kmem.c (MEM_CHUNKS): Increase to 16.
* linux/src/drivers/scsi/hosts.c [CONFIG_SCSI_SYM53C8XX]: Include "sym53c8xx.h".
(builtin_scsi_hosts): include SYM53C8XX.
|
|
Mach no longer uses any of the old and clashing errno E* codes, so
it's safe to use them now w/o namespacing. This also means one less
modification needed to the Linux code.
* linux/dev/include/asm-i386/errno.h: Remove file.
* linux/dev/kernel/dma.c (notifier_chain_unregister) [MACH_INCLUDE]: Remove
code.
* linux/dev/include/linux/notifier.h: Likewise.
* linux/dev/arch/i386/kernel/irq.c (setup_x86_irq): Rename LINUX_EBUSY
to EBUSY.
(request_irq): Rename LINUX_EINVAL to EINVAL.
* linux/dev/glue/block.c (register_blkdev): Rename LINUX_EBUSY to EBUSY
and LINUX_EINVAL to EINVAL.
(unregister_blkdev): Rename LINUX_EINVAL to EINVAL.
(rdwr_partial) Rename LINUX_ENOMEM to ENOMEM and LINUX_EIO to EIO.
* linux/dev/glue/misc.c (linux_to_mach_error): Rename LINUX_EPERM to
EPERM, LINUX_EIO to EIO, LINUX_ENXIO to ENXIO, LINUX_EACCES to EACCES,
LINUX_EFAULT to EFAULT, LINUX_EBUSY to EBUSY, LINUX_EINVAL to EINVAL,
LINUX_EROFS to EROFS, LINUX_EWOULDBLOCK to EWOULDBLOCK and LINUX_ENOMEM
to ENOMEM.
(verify_area): Rename LINUX_EFAULT to EFAULT.
* linux/dev/kernel/resource.c (check_region): Rename LINUX_EBUSY to
EBUSY.
* linux/dev/kernel/sched.c (__do_down): Rename LINUX_EINTR to EINTR.
|
|
* linux/dev/drivers/block/floppy.c (setup_rw_floppy): Remove `dflags'.
(floppy_eject): Remove `dummy'.
* linux/src/drivers/net/8390.c (ethdev_init): Remove `ei_local'.
* linux/src/drivers/scsi/ppa.c (ppa_detect): Remove `ppb'.
|
|
* linux/dev/glue/kmem.c (vfree): Cast `addr' argument on kfree_mem
function to vm_offset_t.
|
|
* linux/dev/init/main.c: Include <linux/pci.h>.
* linux/dev/kernel/printk.c: Include <kern/printf.h>.
|
|
* linux/dev/lib/vsprintf.c (linux_vsprintf): Use `int' when retrieving
a `short' through `va_arg'.
|
|
* linux/src/include/linux/compiler.h: New file.
* linux/src/include/linux/compiler-gcc.h: Likewise.
* linux/src/include/linux/compiler-gcc3.h: Likewise.
* linux/src/include/linux/compiler-gcc4.h: Likewise.
* linux/dev/include/linux/kernel.h (barrier): Remove definition and
include <linux/compiler.h> instead.
|
|
* device/ds_routines.h (io_done_list): Add variable declaration.
(device_io_map): Keep variable declaration and move definition to...
* device/ds_routines.c: ... here.
* i386/i386/fpu.c: Include <i386/pic.h>
(curr_ipl): Remove declaration.
(fpintr): Add int unit parameter.
* linux/dev/glue/glue.h: New header.
* i386/i386/fpu.h (fpintr): Add function prototype.
* i386/i386/hardclock.c (clock_interrupt, linux_timer_intr): Remove prototypes.
[LINUX_DEV]: Include <linux/dev/glue/glue.h>
* i386/i386/ipl.h (curr_ipl): Add declaration.
* i386/i386/pic.h (curr_pic_mask, pic_mask, prtnull, intnull): Add
declarations.
* i386/i386at/kd.h (kdintr): Add declaration.
* i386/i386at/pic_isa.c: Include <i386/fpu.h> and <i386at/kd.h>
(intnull, fpintr, hardclock, kdintr, prtnull): Remove prototypes.
* i386/xen/xen.c: Include <kern/mach_clock.h>
(clock_interrupt): Remove prototype.
* linux/dev/arch/i386/kernel/irq.c: Include <linux/dev/glue/glue.h> and
<machine/machspl.h>
(linux_timer_intr, splhigh, spl0, curr_ipl, curr_pic_mask, pic_mask,
get_options): Remove declarations.
* linux/dev/drivers/block/floppy.c: Include <linux/dev/glue/glue.h>
(issig, get_options): Remove declarations.
* linux/dev/drivers/block/genhd.c: Include <linux/dev/glue/glue.h>
(linux_intr_pri): Remove declaration.
* linux/dev/glue/block.c: Include <devices/ds_routines.h> and
<linux/dev/glue/glue.h>.
(device_io_map, blksize_size): Remove declarations.
* linux/dev/glue/kmem.c: Include <kern/printf.h> and <linux/dev/glue/glue.h>
(alloc_contig_mem, printf): Remove declarations.
* linux/dev/glue/misc.c: Include <printf.h> and <linux/dev/glue/glue.h>
(vm_map_lookup_entry, printf): Remove prototypes.
* linux/dev/glue/net.c: Include <kern/printf.h>, <device/ds_routines.h> and
<linux/dev/glue/glue.h>.
(linux_intr_pri, io_done_list): Remove declarations.
* linux/dev/init/main.c: Include <machine/model_dep.h> and
<linux/dev/glue/glue.h>.
(phys_last_addr, alloc_contig_mem, free_contig_mem, init_IRQ,
restore_IRQ, startrtclock, linux_version_init, linux_kmem_init, pci_init,
linux_net_emulation_init, device_setup, linux_printk, linux_timer_intr, spl0,
splhigh, form_pic_mask, linux_bad_intr, prtnull, intnull, linux_sched_init,
pcmcia_init): Remove declarations.
* linux/dev/kernel/sched.c: Include <kern/printf.h>, <machine/machspl.h> and
<linux/dev/glue/glue.h>.
(alloc_contig_mem, free_contig_mem, splhigh, splx, linux_soft_intr, issig,
printf, linux_auto_config): Remove prototypes.
* linux/dev/kernel/softirq.c: Include <linux/dev/glue/glue.h>.
* linux/src/drivers/block/floppy.c: Include <linux/dev/glue/glue.h>.
(get_options): Remove prototype.
* linux/src/init/main.c: Include <linux/dev/glue/glue.h>
(init_IRQ): Remove prototype.
|
|
* linux/dev/glue/misc.c (do_gettimeofday): Cast arguments to
`host_get_time'.
|
|
* linux/dev/kernel/sched.c (cdrom_sleep): Move to ...
* linux/src/drivers/block/ide-cd.c [MACH]: ... here, make it static.
Include <kern/sched_prim.h>.
|
|
* linux/dev/glue/block.c (device_get_status): Cast `hg' to `unsigned long'
in ioctl call.
|
|
* linux/dev/drivers/block/genhd.c (msdos_partition): Cast `data' assignment
to `unsigned char *'.
* linux/src/drivers/block/ide-cd.c (cdrom_queue_request_sense): Cast
`buffer' assignment to `unsigned char *'.
(cdrom_transfer_packet_command): Change `cmd_buf' argument type to
`unsigned char *'.
(cdrom_read_capacity): Cast `pc.buffer' assignments to `unsigned char *'.
Use temporary `model' and `fw_rev' `const char *' variables to compare
against literal strings and characters.
* linux/src/drivers/block/ide.c (execute_drive_cmd): Cast `args'
assignment to `byte *'.
(ide_open): Cast `rq.buffer' assignment to `char *'.
(ide_release): Likewise.
(ide_ioctl): Likewise.
(do_identify): Cast variables being compared against literal string to
`char *'.
(probe_for_drive): Likewise.
* linux/src/drivers/block/ide.h (struct packet_command): Change `buffer'
type to `unsigned char *'.
|
|
* i386/i386at/com.c (comstart): Disable `i' variable.
* linux/src/drivers/net/at1700.c (net_close): Disable `lp' variable.
* linux/dev/include/linux/blk.h (end_request): Disable `nsect' variable
on MACH.
|
|
* vm/memory_object_proxy.c (memory_object_create_proxy): Remove unused
`kr' variable.
* linux/dev/glue/block.c (free_buffer): Remove unused `i' variable.
(register_blkdev): Remove unused `err' variable.
(unregister_blkdev): Likewise.
(bread): Likewise.
(init_partition): Likewise.
* linux/dev/glue/net.c (device_write): Likewise.
|
|
* linux/dev/include/linux/skbuff.h (skb_put, skb_push): Do not print the
address of a local label, gcc 4.6 does not build this and the debugger can
output it anyway.
* linux/src/include/linux/skbuff.h (skb_put, skb_push): Likewise.
|
|
* linux/dev/arch/i386/kernel/irq.c (setup_x86_irq): Return -LINUX_EBUSY when
trying to share an IRQ between two different interrupt levels.
|
|
* linux/dev/glue/net.c (device_get_status): Compare count with 1 instead
of sizeof(short). Access *status instead of *(short *) status.
(device_set_status): Likewise.
|
|
* linux/dev/glue/kmem.c (MEM_DMA_LIMIT): New macro
(linux_kmem_init): Replace 16 * 1024 * 1024 occurrences with
MEM_DMA_LIMIT.
|
|
* linux/dev/glue/block.c (device_set_status): New function
(linux_block_emulation_ops): Set set_status field to device_set_status.
|