Commit c564541b 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 288f7f44 26815161
......@@ -32,6 +32,8 @@ static inline const char *msk2str(unsigned int mask)
case PM_256M: return "256Mb";
#endif
}
return "unknown";
}
#define BARRIER() \
......
......@@ -32,6 +32,8 @@ static inline const char *msk2str(unsigned int mask)
case PM_256M: return "256Mb";
#endif
}
return "unknown";
}
#define BARRIER() \
......
......@@ -11,3 +11,5 @@ USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
$(USER_OBJS) : %.o: %.c
$(CC) $(CFLAGS_$(notdir $@)) $(USER_CFLAGS) -c -o $@ $<
subdir- := util
......@@ -1748,12 +1748,16 @@ static int agp_intel_resume(struct pci_dev *pdev)
if (bridge->driver == &intel_generic_driver)
intel_configure();
else if (bridge->driver == &intel_850_driver)
intel_850_configure();
else if (bridge->driver == &intel_845_driver)
intel_845_configure();
else if (bridge->driver == &intel_830mp_driver)
intel_830mp_configure();
else if (bridge->driver == &intel_915_driver)
intel_i915_configure();
else if (bridge->driver == &intel_830_driver)
intel_i830_configure();
return 0;
}
......
......@@ -859,7 +859,7 @@ qla2x00_queuecommand(struct scsi_cmnd *cmd, void (*fn)(struct scsi_cmnd *))
* In all other cases we'll let an irq pick up our IO and submit it
* to the controller to improve affinity.
*/
if (smp_processor_id() == ha->last_irq_cpu || was_empty)
if (_smp_processor_id() == ha->last_irq_cpu || was_empty)
qla2x00_next(ha);
spin_lock_irq(ha->host->host_lock);
......
......@@ -987,8 +987,11 @@ receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs)
/* The following is not allowed by the tty layer and
unsafe. It should be fixed ASAP */
if (unlikely(tty->flip.count >= TTY_FLIPBUF_SIZE)) {
if(tty->low_latency)
if (tty->low_latency) {
spin_unlock(&up->port.lock);
tty_flip_buffer_push(tty);
spin_lock(&up->port.lock);
}
/* If this failed then we will throw away the
bytes but must do so to clear interrupts */
}
......@@ -1059,7 +1062,9 @@ receive_chars(struct uart_8250_port *up, int *status, struct pt_regs *regs)
ignore_char:
lsr = serial_inp(up, UART_LSR);
} while ((lsr & UART_LSR_DR) && (max_count-- > 0));
spin_unlock(&up->port.lock);
tty_flip_buffer_push(tty);
spin_lock(&up->port.lock);
*status = lsr;
}
......
......@@ -16,9 +16,30 @@
#define HOSTFS_ATTR_CTIME 64
#define HOSTFS_ATTR_ATIME_SET 128
#define HOSTFS_ATTR_MTIME_SET 256
/* These two are unused by hostfs. */
#define HOSTFS_ATTR_FORCE 512 /* Not a change, but a change it */
#define HOSTFS_ATTR_ATTR_FLAG 1024
/* If you are very careful, you'll notice that these two are missing:
*
* #define ATTR_KILL_SUID 2048
* #define ATTR_KILL_SGID 4096
*
* and this is because they were added in 2.5 development in this patch:
*
* http://linux.bkbits.net:8080/linux-2.5/
* cset@3caf4a12k4XgDzK7wyK-TGpSZ9u2Ww?nav=index.html
* |src/.|src/include|src/include/linux|related/include/linux/fs.h
*
* Actually, they are not needed by most ->setattr() methods - they are set by
* callers of notify_change() to notify that the setuid/setgid bits must be
* dropped.
* notify_change() will delete those flags, make sure attr->ia_valid & ATTR_MODE
* is on, and remove the appropriate bits from attr->ia_mode (attr is a
* "struct iattr *"). -BlaisorBlade
*/
struct hostfs_iattr {
unsigned int ia_valid;
mode_t ia_mode;
......
......@@ -823,6 +823,10 @@ int hostfs_setattr(struct dentry *dentry, struct iattr *attr)
char *name;
int err;
err = inode_change_ok(dentry->d_inode, attr);
if (err)
return err;
if(append)
attr->ia_valid &= ~ATTR_SIZE;
......
......@@ -531,6 +531,7 @@ struct file_operations linvfs_dir_operations = {
static struct vm_operations_struct linvfs_file_vm_ops = {
.nopage = filemap_nopage,
.populate = filemap_populate,
#ifdef HAVE_VMOP_MPROTECT
.mprotect = linvfs_mprotect,
#endif
......
......@@ -35,7 +35,7 @@
"thread_return:\n\t" \
"movq %%gs:%P[pda_pcurrent],%%rsi\n\t" \
"movq %P[thread_info](%%rsi),%%r8\n\t" \
"btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
LOCK "btr %[tif_fork],%P[ti_flags](%%r8)\n\t" \
"movq %%rax,%%rdi\n\t" \
"jc ret_from_fork\n\t" \
RESTORE_CONTEXT \
......
......@@ -756,7 +756,9 @@ extern unsigned long page_unuse(struct page *);
extern void truncate_inode_pages(struct address_space *, loff_t);
/* generic vm_area_ops exported for stackable file systems */
struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *);
extern struct page *filemap_nopage(struct vm_area_struct *, unsigned long, int *);
extern int filemap_populate(struct vm_area_struct *, unsigned long,
unsigned long, pgprot_t, unsigned long, int);
/* mm/page-writeback.c */
int write_one_page(struct page *page, int wait);
......
......@@ -867,7 +867,7 @@ void wait_task_inactive(task_t * p)
repeat:
rq = task_rq_lock(p, &flags);
/* Must be off runqueue entirely, not preempted. */
if (unlikely(p->array)) {
if (unlikely(p->array || task_running(rq, p))) {
/* If it's preempted, we yield. It could be a while. */
preempted = !task_running(rq, p);
task_rq_unlock(rq, &flags);
......@@ -885,6 +885,12 @@ void wait_task_inactive(task_t * p)
*
* Cause a process which is running on another CPU to enter
* kernel-mode, without any delay. (to get signals handled.)
*
* NOTE: this function doesnt have to take the runqueue lock,
* because all it wants to ensure is that the remote task enters
* the kernel. If the IPI races and the task has been migrated
* to another CPU then no harm is done and the purpose has been
* achieved as well.
*/
void kick_process(task_t *p)
{
......
......@@ -1458,12 +1458,9 @@ static struct page * filemap_getpage(struct file *file, unsigned long pgoff,
return NULL;
}
static int filemap_populate(struct vm_area_struct *vma,
unsigned long addr,
unsigned long len,
pgprot_t prot,
unsigned long pgoff,
int nonblock)
int filemap_populate(struct vm_area_struct *vma, unsigned long addr,
unsigned long len, pgprot_t prot, unsigned long pgoff,
int nonblock)
{
struct file *file = vma->vm_file;
struct address_space *mapping = file->f_mapping;
......@@ -1523,6 +1520,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
vma->vm_ops = &generic_file_vm_ops;
return 0;
}
EXPORT_SYMBOL(filemap_populate);
/*
* This is for filesystems which do not implement ->writepage.
......
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