Commit a376ed89 authored by David Mosberger's avatar David Mosberger

ia64: Sync up with 2.5.45.

parent cbbb5f84
This diff is collapsed.
...@@ -130,20 +130,6 @@ simscsi_info (struct Scsi_Host *host) ...@@ -130,20 +130,6 @@ simscsi_info (struct Scsi_Host *host)
return "simulated SCSI host adapter"; return "simulated SCSI host adapter";
} }
int
simscsi_abort (Scsi_Cmnd *cmd)
{
printk ("simscsi_abort: unimplemented\n");
return SCSI_ABORT_SUCCESS;
}
int
simscsi_reset (Scsi_Cmnd *cmd, unsigned int reset_flags)
{
printk ("simscsi_reset: unimplemented\n");
return SCSI_RESET_SUCCESS;
}
int int
simscsi_biosparam (struct scsi_device *sdev, struct block_device *n, simscsi_biosparam (struct scsi_device *sdev, struct block_device *n,
sector_t capacity, int ip[]) sector_t capacity, int ip[])
......
...@@ -21,20 +21,18 @@ extern int simscsi_biosparam (struct scsi_device *, struct block_device *, ...@@ -21,20 +21,18 @@ extern int simscsi_biosparam (struct scsi_device *, struct block_device *,
sector_t, int[]); sector_t, int[]);
#define SIMSCSI { \ #define SIMSCSI { \
detect: simscsi_detect, \ .detect = simscsi_detect, \
release: simscsi_release, \ .release = simscsi_release, \
info: simscsi_info, \ .info = simscsi_info, \
queuecommand: simscsi_queuecommand, \ .queuecommand = simscsi_queuecommand, \
abort: simscsi_abort, \ .bios_param = simscsi_biosparam, \
reset: simscsi_reset, \ .can_queue = SIMSCSI_REQ_QUEUE_LEN, \
bios_param: simscsi_biosparam, \ .this_id = -1, \
can_queue: SIMSCSI_REQ_QUEUE_LEN, \ .sg_tablesize = SG_ALL, \
this_id: -1, \ .cmd_per_lun = SIMSCSI_REQ_QUEUE_LEN, \
sg_tablesize: SG_ALL, \ .present = 0, \
cmd_per_lun: SIMSCSI_REQ_QUEUE_LEN, \ .unchecked_isa_dma = 0, \
present: 0, \ .use_clustering = DISABLE_CLUSTERING \
unchecked_isa_dma: 0, \
use_clustering: DISABLE_CLUSTERING \
} }
#endif /* SIMSCSI_H */ #endif /* SIMSCSI_H */
...@@ -1251,9 +1251,9 @@ sys_call_table: ...@@ -1251,9 +1251,9 @@ sys_call_table:
data8 sys_io_getevents // 1240 data8 sys_io_getevents // 1240
data8 sys_io_submit data8 sys_io_submit
data8 sys_io_cancel data8 sys_io_cancel
data8 ia64_ni_syscall data8 sys_epoll_create
data8 ia64_ni_syscall data8 sys_epoll_ctl
data8 ia64_ni_syscall // 1245 data8 sys_epoll_wait // 1245
data8 ia64_ni_syscall data8 ia64_ni_syscall
data8 ia64_ni_syscall data8 ia64_ni_syscall
data8 ia64_ni_syscall data8 ia64_ni_syscall
......
...@@ -625,21 +625,18 @@ cpu_init (void) ...@@ -625,21 +625,18 @@ cpu_init (void)
extern char __per_cpu_end[]; extern char __per_cpu_end[];
int cpu; int cpu;
if (__per_cpu_end - __per_cpu_start > PAGE_SIZE)
panic("Per-cpu data area too big! (%Zu > %Zu)",
__per_cpu_end - __per_cpu_start, PAGE_SIZE);
/* /*
* get_free_pages() cannot be used before cpu_init() done. BSP allocates * get_free_pages() cannot be used before cpu_init() done. BSP allocates
* "NR_CPUS" pages for all CPUs to avoid that AP calls get_zeroed_page(). * "NR_CPUS" pages for all CPUs to avoid that AP calls get_zeroed_page().
*/ */
if (smp_processor_id() == 0) { if (smp_processor_id() == 0) {
cpu_data = (unsigned long)alloc_bootmem_pages(PAGE_SIZE * NR_CPUS); cpu_data = (unsigned long) __alloc_bootmem(PERCPU_PAGE_SIZE * NR_CPUS,
PERCPU_PAGE_SIZE,
__pa(MAX_DMA_ADDRESS));
for (cpu = 0; cpu < NR_CPUS; cpu++) { for (cpu = 0; cpu < NR_CPUS; cpu++) {
memcpy(cpu_data, __phys_per_cpu_start, __per_cpu_end - __per_cpu_start); memcpy(cpu_data, __phys_per_cpu_start, __per_cpu_end - __per_cpu_start);
__per_cpu_offset[cpu] = (char *) cpu_data - __per_cpu_start; __per_cpu_offset[cpu] = (char *) cpu_data - __per_cpu_start;
cpu_data += PAGE_SIZE; cpu_data += PERCPU_PAGE_SIZE;
} }
} }
cpu_data = __per_cpu_start + __per_cpu_offset[smp_processor_id()]; cpu_data = __per_cpu_start + __per_cpu_offset[smp_processor_id()];
......
...@@ -287,7 +287,8 @@ ia64_mmu_init (void *my_cpu_data) ...@@ -287,7 +287,8 @@ ia64_mmu_init (void *my_cpu_data)
ia64_srlz_d(); ia64_srlz_d();
ia64_itr(0x2, IA64_TR_PERCPU_DATA, PERCPU_ADDR, ia64_itr(0x2, IA64_TR_PERCPU_DATA, PERCPU_ADDR,
pte_val(pfn_pte(__pa(my_cpu_data) >> PAGE_SHIFT, PAGE_KERNEL)), PAGE_SHIFT); pte_val(pfn_pte(__pa(my_cpu_data) >> PAGE_SHIFT, PAGE_KERNEL)),
PERCPU_PAGE_SHIFT);
ia64_set_psr(psr); ia64_set_psr(psr);
ia64_srlz_i(); ia64_srlz_i();
...@@ -455,8 +456,6 @@ mem_init (void) ...@@ -455,8 +456,6 @@ mem_init (void)
if (num_pgt_pages > pgt_cache_water[1]) if (num_pgt_pages > pgt_cache_water[1])
pgt_cache_water[1] = num_pgt_pages; pgt_cache_water[1] = num_pgt_pages;
show_mem();
/* install the gate page in the global page table: */ /* install the gate page in the global page table: */
put_gate_page(virt_to_page(__start_gate_section), GATE_ADDR); put_gate_page(virt_to_page(__start_gate_section), GATE_ADDR);
......
...@@ -137,7 +137,7 @@ SECTIONS ...@@ -137,7 +137,7 @@ SECTIONS
{ *(.kstrtab) } { *(.kstrtab) }
/* Per-cpu data: */ /* Per-cpu data: */
. = ALIGN(PAGE_SIZE); . = ALIGN(PERCPU_PAGE_SIZE);
__phys_per_cpu_start = .; __phys_per_cpu_start = .;
.data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - PAGE_OFFSET) .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - PAGE_OFFSET)
{ {
...@@ -145,7 +145,7 @@ SECTIONS ...@@ -145,7 +145,7 @@ SECTIONS
*(.data.percpu) *(.data.percpu)
__per_cpu_end = .; __per_cpu_end = .;
} }
. = __phys_per_cpu_start + 4096; /* ensure percpu fits into smallest page size (4KB) */ . = __phys_per_cpu_start + PERCPU_PAGE_SIZE; /* ensure percpu data fits into percpu page size */
.data : AT(ADDR(.data) - PAGE_OFFSET) .data : AT(ADDR(.data) - PAGE_OFFSET)
{ *(.data) *(.gnu.linkonce.d*) CONSTRUCTORS } { *(.data) *(.gnu.linkonce.d*) CONSTRUCTORS }
......
...@@ -83,6 +83,7 @@ ide_init_default_hwifs (void) ...@@ -83,6 +83,7 @@ ide_init_default_hwifs (void)
int index; int index;
for(index = 0; index < MAX_HWIFS; index++) { for(index = 0; index < MAX_HWIFS; index++) {
memset(&hw, 0, sizeof hw);
ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, NULL); ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, NULL);
hw.irq = ide_default_irq(ide_default_io_base(index)); hw.irq = ide_default_irq(ide_default_io_base(index));
ide_register_hw(&hw, NULL); ide_register_hw(&hw, NULL);
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
#define PAGE_MASK (~(PAGE_SIZE - 1)) #define PAGE_MASK (~(PAGE_SIZE - 1))
#define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) #define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK)
#define PERCPU_PAGE_SHIFT 16 /* log2() of max. size of per-CPU area */
#define PERCPU_PAGE_SIZE (__IA64_UL_CONST(1) << PERCPU_PAGE_SHIFT)
#ifdef CONFIG_HUGETLB_PAGE #ifdef CONFIG_HUGETLB_PAGE
# if defined(CONFIG_HUGETLB_PAGE_SIZE_4GB) # if defined(CONFIG_HUGETLB_PAGE_SIZE_4GB)
......
...@@ -202,7 +202,7 @@ ia64_phys_addr_valid (unsigned long addr) ...@@ -202,7 +202,7 @@ ia64_phys_addr_valid (unsigned long addr)
#define RGN_MAP_LIMIT ((1UL << (4*PAGE_SHIFT - 12)) - PAGE_SIZE) /* per region addr limit */ #define RGN_MAP_LIMIT ((1UL << (4*PAGE_SHIFT - 12)) - PAGE_SIZE) /* per region addr limit */
#define RGN_KERNEL 7 #define RGN_KERNEL 7
#define VMALLOC_START (0xa000000000000000 + 3*PAGE_SIZE) #define VMALLOC_START (0xa000000000000000 + 3*PERCPU_PAGE_SIZE)
#define VMALLOC_VMADDR(x) ((unsigned long)(x)) #define VMALLOC_VMADDR(x) ((unsigned long)(x))
#define VMALLOC_END (0xa000000000000000 + (1UL << (4*PAGE_SHIFT - 9))) #define VMALLOC_END (0xa000000000000000 + (1UL << (4*PAGE_SHIFT - 9)))
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
/* /*
* poll(2) bit definitions. Chosen to be compatible with Linux/x86. * poll(2) bit definitions. Chosen to be compatible with Linux/x86.
* *
* Copyright (C) 1998, 1999 Hewlett-Packard Co * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co
* Copyright (C) 1998, 1999 David Mosberger-Tang <davidm@hpl.hp.com> * David Mosberger-Tang <davidm@hpl.hp.com>
*/ */
#define POLLIN 0x0001 #define POLLIN 0x0001
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#define POLLWRNORM 0x0100 #define POLLWRNORM 0x0100
#define POLLWRBAND 0x0200 #define POLLWRBAND 0x0200
#define POLLMSG 0x0400 #define POLLMSG 0x0400
#define POLLREMOVE 0x1000
struct pollfd { struct pollfd {
int fd; int fd;
......
...@@ -20,8 +20,9 @@ ...@@ -20,8 +20,9 @@
#define KERNEL_START (PAGE_OFFSET + 68*1024*1024) #define KERNEL_START (PAGE_OFFSET + 68*1024*1024)
#define GATE_ADDR (0xa000000000000000 + PAGE_SIZE) /* 0xa000000000000000 - 0xa000000000000000+PERCPU_MAX_SIZE remain unmapped */
#define PERCPU_ADDR (0xa000000000000000 + 2*PAGE_SIZE) #define PERCPU_ADDR (0xa000000000000000 + PERCPU_PAGE_SIZE)
#define GATE_ADDR (0xa000000000000000 + 2*PERCPU_PAGE_SIZE)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
......
...@@ -232,6 +232,9 @@ ...@@ -232,6 +232,9 @@
#define __NR_io_getevents 1240 #define __NR_io_getevents 1240
#define __NR_io_submit 1241 #define __NR_io_submit 1241
#define __NR_io_cancel 1242 #define __NR_io_cancel 1242
#define __NR_epoll_create 1243
#define __NR_epoll_ctl 1244
#define __NR_epoll_wait 1245
#if !defined(__ASSEMBLY__) && !defined(ASSEMBLER) #if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)
......
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