Commit c1a959d8 authored by Len Brown's avatar Len Brown

Pull linus into release branch

parents 6968e50c 9e625ff8
...@@ -514,7 +514,7 @@ void __init htab_initialize(void) ...@@ -514,7 +514,7 @@ void __init htab_initialize(void)
#undef KB #undef KB
#undef MB #undef MB
void __init htab_initialize_secondary(void) void htab_initialize_secondary(void)
{ {
if (!platform_is_lpar()) if (!platform_is_lpar())
mtspr(SPRN_SDR1, _SDR1); mtspr(SPRN_SDR1, _SDR1);
......
...@@ -116,16 +116,16 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode, ...@@ -116,16 +116,16 @@ static int stop_ptraced_child(int pid, void *stack, int exitcode,
if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) { if(!WIFEXITED(status) || (WEXITSTATUS(status) != exitcode)) {
int exit_with = WEXITSTATUS(status); int exit_with = WEXITSTATUS(status);
if (exit_with == 2) if (exit_with == 2)
printk("check_ptrace : child exited with status 2. " printf("check_ptrace : child exited with status 2. "
"Serious trouble happening! Try updating your " "Serious trouble happening! Try updating your "
"host skas patch!\nDisabling SYSEMU support."); "host skas patch!\nDisabling SYSEMU support.");
printk("check_ptrace : child exited with exitcode %d, while " printf("check_ptrace : child exited with exitcode %d, while "
"expecting %d; status 0x%x", exit_with, "expecting %d; status 0x%x", exit_with,
exitcode, status); exitcode, status);
if (mustpanic) if (mustpanic)
panic("\n"); panic("\n");
else else
printk("\n"); printf("\n");
ret = -1; ret = -1;
} }
...@@ -183,7 +183,7 @@ static void __init check_sysemu(void) ...@@ -183,7 +183,7 @@ static void __init check_sysemu(void)
void *stack; void *stack;
int pid, n, status, count=0; int pid, n, status, count=0;
printk("Checking syscall emulation patch for ptrace..."); printf("Checking syscall emulation patch for ptrace...");
sysemu_supported = 0; sysemu_supported = 0;
pid = start_ptraced_child(&stack); pid = start_ptraced_child(&stack);
...@@ -207,10 +207,10 @@ static void __init check_sysemu(void) ...@@ -207,10 +207,10 @@ static void __init check_sysemu(void)
goto fail_stopped; goto fail_stopped;
sysemu_supported = 1; sysemu_supported = 1;
printk("OK\n"); printf("OK\n");
set_using_sysemu(!force_sysemu_disabled); set_using_sysemu(!force_sysemu_disabled);
printk("Checking advanced syscall emulation patch for ptrace..."); printf("Checking advanced syscall emulation patch for ptrace...");
pid = start_ptraced_child(&stack); pid = start_ptraced_child(&stack);
if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0,
...@@ -246,7 +246,7 @@ static void __init check_sysemu(void) ...@@ -246,7 +246,7 @@ static void __init check_sysemu(void)
goto fail_stopped; goto fail_stopped;
sysemu_supported = 2; sysemu_supported = 2;
printk("OK\n"); printf("OK\n");
if ( !force_sysemu_disabled ) if ( !force_sysemu_disabled )
set_using_sysemu(sysemu_supported); set_using_sysemu(sysemu_supported);
...@@ -255,7 +255,7 @@ static void __init check_sysemu(void) ...@@ -255,7 +255,7 @@ static void __init check_sysemu(void)
fail: fail:
stop_ptraced_child(pid, stack, 1, 0); stop_ptraced_child(pid, stack, 1, 0);
fail_stopped: fail_stopped:
printk("missing\n"); printf("missing\n");
} }
static void __init check_ptrace(void) static void __init check_ptrace(void)
...@@ -263,7 +263,7 @@ static void __init check_ptrace(void) ...@@ -263,7 +263,7 @@ static void __init check_ptrace(void)
void *stack; void *stack;
int pid, syscall, n, status; int pid, syscall, n, status;
printk("Checking that ptrace can change system call numbers..."); printf("Checking that ptrace can change system call numbers...");
pid = start_ptraced_child(&stack); pid = start_ptraced_child(&stack);
if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, (void *)PTRACE_O_TRACESYSGOOD) < 0) if(ptrace(PTRACE_OLDSETOPTIONS, pid, 0, (void *)PTRACE_O_TRACESYSGOOD) < 0)
...@@ -292,7 +292,7 @@ static void __init check_ptrace(void) ...@@ -292,7 +292,7 @@ static void __init check_ptrace(void)
} }
} }
stop_ptraced_child(pid, stack, 0, 1); stop_ptraced_child(pid, stack, 0, 1);
printk("OK\n"); printf("OK\n");
check_sysemu(); check_sysemu();
} }
...@@ -472,6 +472,8 @@ int can_do_skas(void) ...@@ -472,6 +472,8 @@ int can_do_skas(void)
int have_devanon = 0; int have_devanon = 0;
/* Runs on boot kernel stack - already safe to use printk. */
void check_devanon(void) void check_devanon(void)
{ {
int fd; int fd;
......
...@@ -34,6 +34,11 @@ EXPORT_SYMBOL(strstr); ...@@ -34,6 +34,11 @@ EXPORT_SYMBOL(strstr);
int sym(void); \ int sym(void); \
EXPORT_SYMBOL(sym); EXPORT_SYMBOL(sym);
extern void readdir64(void) __attribute__((weak));
EXPORT_SYMBOL(readdir64);
extern void truncate64(void) __attribute__((weak));
EXPORT_SYMBOL(truncate64);
#ifdef SUBARCH_i386 #ifdef SUBARCH_i386
EXPORT_SYMBOL(vsyscall_ehdr); EXPORT_SYMBOL(vsyscall_ehdr);
EXPORT_SYMBOL(vsyscall_end); EXPORT_SYMBOL(vsyscall_end);
......
obj-y = bitops.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ obj-y := bitops.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \
ptrace_user.o semaphore.o signal.o sigcontext.o stub.o stub_segv.o \ ptrace_user.o semaphore.o signal.o sigcontext.o syscalls.o sysrq.o \
syscalls.o sysrq.o sys_call_table.o sys_call_table.o
obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o
obj-$(CONFIG_HIGHMEM) += highmem.o obj-$(CONFIG_HIGHMEM) += highmem.o
obj-$(CONFIG_MODULES) += module.o obj-$(CONFIG_MODULES) += module.o
......
...@@ -6,8 +6,9 @@ ...@@ -6,8 +6,9 @@
#XXX: why into lib-y? #XXX: why into lib-y?
lib-y = bitops.o bugs.o csum-partial.o delay.o fault.o ldt.o mem.o memcpy.o \ lib-y = bitops.o bugs.o csum-partial.o delay.o fault.o ldt.o mem.o memcpy.o \
ptrace.o ptrace_user.o sigcontext.o signal.o stub.o \ ptrace.o ptrace_user.o sigcontext.o signal.o syscalls.o \
stub_segv.o syscalls.o syscall_table.o sysrq.o thunk.o syscall_table.o sysrq.o thunk.o
lib-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o
obj-y := ksyms.o obj-y := ksyms.o
obj-$(CONFIG_MODULES) += module.o um_module.o obj-$(CONFIG_MODULES) += module.o um_module.o
......
...@@ -348,7 +348,7 @@ size_zones(unsigned long *z, unsigned long *h, ...@@ -348,7 +348,7 @@ size_zones(unsigned long *z, unsigned long *h,
} }
/* Compute holes */ /* Compute holes */
w = 0; w = start_pfn;
for (i = 0; i < MAX_NR_ZONES; i++) { for (i = 0; i < MAX_NR_ZONES; i++) {
unsigned long s = w; unsigned long s = w;
w += z[i]; w += z[i];
......
...@@ -1312,8 +1312,6 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on) ...@@ -1312,8 +1312,6 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on)
static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
{ {
drm_radeon_private_t *dev_priv = dev->dev_private; drm_radeon_private_t *dev_priv = dev->dev_private;
unsigned int mem_size, aper_size;
DRM_DEBUG("\n"); DRM_DEBUG("\n");
dev_priv->is_pci = init->is_pci; dev_priv->is_pci = init->is_pci;
...@@ -1523,13 +1521,8 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) ...@@ -1523,13 +1521,8 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)
+ dev_priv->fb_location) >> 10)); + dev_priv->fb_location) >> 10));
dev_priv->gart_size = init->gart_size; dev_priv->gart_size = init->gart_size;
dev_priv->gart_vm_start = dev_priv->fb_location
mem_size = RADEON_READ(RADEON_CONFIG_MEMSIZE); + RADEON_READ(RADEON_CONFIG_APER_SIZE);
if (mem_size == 0)
mem_size = 0x800000;
aper_size = max(RADEON_READ(RADEON_CONFIG_APER_SIZE), mem_size);
dev_priv->gart_vm_start = dev_priv->fb_location + aper_size;
#if __OS_HAS_AGP #if __OS_HAS_AGP
if (!dev_priv->is_pci) if (!dev_priv->is_pci)
......
...@@ -419,7 +419,7 @@ vcs_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos) ...@@ -419,7 +419,7 @@ vcs_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
while (this_round > 1) { while (this_round > 1) {
unsigned short w; unsigned short w;
w = get_unaligned(((const unsigned short *)con_buf0)); w = get_unaligned(((unsigned short *)con_buf0));
vcs_scr_writew(vc, w, org++); vcs_scr_writew(vc, w, org++);
con_buf0 += 2; con_buf0 += 2;
this_round -= 2; this_round -= 2;
......
...@@ -14,7 +14,7 @@ config VIDEO_SAA7134 ...@@ -14,7 +14,7 @@ config VIDEO_SAA7134
config VIDEO_SAA7134_ALSA config VIDEO_SAA7134_ALSA
tristate "Philips SAA7134 DMA audio support" tristate "Philips SAA7134 DMA audio support"
depends on VIDEO_SAA7134 && SOUND && SND && (!VIDEO_SAA7134_OSS || VIDEO_SAA7134_OSS = m) depends on VIDEO_SAA7134 && SND
select SND_PCM_OSS select SND_PCM_OSS
---help--- ---help---
This is a video4linux driver for direct (DMA) audio in This is a video4linux driver for direct (DMA) audio in
...@@ -25,7 +25,7 @@ config VIDEO_SAA7134_ALSA ...@@ -25,7 +25,7 @@ config VIDEO_SAA7134_ALSA
config VIDEO_SAA7134_OSS config VIDEO_SAA7134_OSS
tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)" tristate "Philips SAA7134 DMA audio support (OSS, DEPRECATED)"
depends on VIDEO_SAA7134 && SOUND_PRIME && (!VIDEO_SAA7134_ALSA || VIDEO_SAA7134_ALSA = m) depends on VIDEO_SAA7134 && SOUND_PRIME && !VIDEO_SAA7134_ALSA
---help--- ---help---
This is a video4linux driver for direct (DMA) audio in This is a video4linux driver for direct (DMA) audio in
Philips SAA713x based TV cards using OSS Philips SAA713x based TV cards using OSS
......
...@@ -359,7 +359,12 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card) ...@@ -359,7 +359,12 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
md->block_bits = card->csd.read_blkbits; md->block_bits = card->csd.read_blkbits;
blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits); blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits);
set_capacity(md->disk, card->csd.capacity);
/*
* The CSD capacity field is in units of read_blkbits.
* set_capacity takes units of 512 bytes.
*/
set_capacity(md->disk, card->csd.capacity << (card->csd.read_blkbits - 9));
} }
out: out:
return md; return md;
...@@ -373,7 +378,7 @@ mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card) ...@@ -373,7 +378,7 @@ mmc_blk_set_blksize(struct mmc_blk_data *md, struct mmc_card *card)
mmc_card_claim_host(card); mmc_card_claim_host(card);
cmd.opcode = MMC_SET_BLOCKLEN; cmd.opcode = MMC_SET_BLOCKLEN;
cmd.arg = 1 << card->csd.read_blkbits; cmd.arg = 1 << md->block_bits;
cmd.flags = MMC_RSP_R1; cmd.flags = MMC_RSP_R1;
err = mmc_wait_for_cmd(card->host, &cmd, 5); err = mmc_wait_for_cmd(card->host, &cmd, 5);
mmc_card_release_host(card); mmc_card_release_host(card);
...@@ -412,10 +417,9 @@ static int mmc_blk_probe(struct mmc_card *card) ...@@ -412,10 +417,9 @@ static int mmc_blk_probe(struct mmc_card *card)
if (err) if (err)
goto out; goto out;
printk(KERN_INFO "%s: %s %s %dKiB %s\n", printk(KERN_INFO "%s: %s %s %luKiB %s\n",
md->disk->disk_name, mmc_card_id(card), mmc_card_name(card), md->disk->disk_name, mmc_card_id(card), mmc_card_name(card),
(card->csd.capacity << card->csd.read_blkbits) / 1024, get_capacity(md->disk) >> 1, mmc_blk_readonly(card)?"(ro)":"");
mmc_blk_readonly(card)?"(ro)":"");
mmc_set_drvdata(card, md); mmc_set_drvdata(card, md);
add_disk(md->disk); add_disk(md->disk);
......
...@@ -160,7 +160,7 @@ pl011_rx_chars(struct uart_amba_port *uap) ...@@ -160,7 +160,7 @@ pl011_rx_chars(struct uart_amba_port *uap)
flag = TTY_FRAME; flag = TTY_FRAME;
} }
if (uart_handle_sysrq_char(&uap->port, ch, regs)) if (uart_handle_sysrq_char(&uap->port, ch & 255, regs))
goto ignore_char; goto ignore_char;
uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag); uart_insert_char(&uap->port, ch, UART011_DR_OE, ch, flag);
......
...@@ -2103,7 +2103,7 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id) ...@@ -2103,7 +2103,7 @@ aiptek_probe(struct usb_interface *intf, const struct usb_device_id *id)
* values. * values.
*/ */
input_set_abs_params(inputdev, ABS_X, 0, 2999, 0, 0); input_set_abs_params(inputdev, ABS_X, 0, 2999, 0, 0);
input_set_abs_params(inputdev, ABS_X, 0, 2249, 0, 0); input_set_abs_params(inputdev, ABS_Y, 0, 2249, 0, 0);
input_set_abs_params(inputdev, ABS_PRESSURE, 0, 511, 0, 0); input_set_abs_params(inputdev, ABS_PRESSURE, 0, 511, 0, 0);
input_set_abs_params(inputdev, ABS_TILT_X, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0); input_set_abs_params(inputdev, ABS_TILT_X, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0);
input_set_abs_params(inputdev, ABS_TILT_Y, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0); input_set_abs_params(inputdev, ABS_TILT_Y, AIPTEK_TILT_MIN, AIPTEK_TILT_MAX, 0, 0);
......
...@@ -501,11 +501,16 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from, ...@@ -501,11 +501,16 @@ int hostfs_commit_write(struct file *file, struct page *page, unsigned from,
long long start; long long start;
int err = 0; int err = 0;
start = (long long) (page->index << PAGE_CACHE_SHIFT) + from; start = (((long long) page->index) << PAGE_CACHE_SHIFT) + from;
buffer = kmap(page); buffer = kmap(page);
err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from, err = write_file(FILE_HOSTFS_I(file)->fd, &start, buffer + from,
to - from); to - from);
if(err > 0) err = 0; if(err > 0) err = 0;
/* Actually, if !err, write_file has added to-from to start, so, despite
* the appearance, we are comparing i_size against the _last_ written
* location, as we should. */
if(!err && (start > inode->i_size)) if(!err && (start > inode->i_size))
inode->i_size = start; inode->i_size = start;
...@@ -910,10 +915,8 @@ static struct inode_operations hostfs_dir_iops = { ...@@ -910,10 +915,8 @@ static struct inode_operations hostfs_dir_iops = {
int hostfs_link_readpage(struct file *file, struct page *page) int hostfs_link_readpage(struct file *file, struct page *page)
{ {
char *buffer, *name; char *buffer, *name;
long long start;
int err; int err;
start = page->index << PAGE_CACHE_SHIFT;
buffer = kmap(page); buffer = kmap(page);
name = inode_name(page->mapping->host, 0); name = inode_name(page->mapping->host, 0);
if(name == NULL) return(-ENOMEM); if(name == NULL) return(-ENOMEM);
......
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