Commit f2c2b294 authored by David S. Miller's avatar David S. Miller

Merge bk://kernel.bkbits.net/wesolows/sparc32-2.6

into nuts.davemloft.net:/disk1/BK/sparc-2.6
parents 2f54b735 e899b4be
...@@ -1089,7 +1089,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i ...@@ -1089,7 +1089,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i
{ {
struct linux_dirent32 * dirent; struct linux_dirent32 * dirent;
struct getdents_callback32 * buf = (struct getdents_callback32 *) __buf; struct getdents_callback32 * buf = (struct getdents_callback32 *) __buf;
int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 1); int reclen = ROUND_UP(NAME_OFFSET(dirent) + namlen + 2);
buf->error = -EINVAL; /* only used if we fail.. */ buf->error = -EINVAL; /* only used if we fail.. */
if (reclen > buf->count) if (reclen > buf->count)
...@@ -1103,6 +1103,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i ...@@ -1103,6 +1103,7 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset, i
put_user(reclen, &dirent->d_reclen); put_user(reclen, &dirent->d_reclen);
copy_to_user(dirent->d_name, name, namlen); copy_to_user(dirent->d_name, name, namlen);
put_user(0, dirent->d_name + namlen); put_user(0, dirent->d_name + namlen);
put_user(d_type, (char *) dirent + reclen - 1);
((char *) dirent) += reclen; ((char *) dirent) += reclen;
buf->current_dir = dirent; buf->current_dir = dirent;
buf->count -= reclen; buf->count -= reclen;
......
...@@ -2487,11 +2487,13 @@ static void con_close(struct tty_struct *tty, struct file *filp) ...@@ -2487,11 +2487,13 @@ static void con_close(struct tty_struct *tty, struct file *filp)
if (tty && tty->count == 1) { if (tty && tty->count == 1) {
struct vt_struct *vt; struct vt_struct *vt;
vcs_remove_devfs(tty);
vt = tty->driver_data; vt = tty->driver_data;
if (vt) if (vt)
vc_cons[vt->vc_num].d->vc_tty = NULL; vc_cons[vt->vc_num].d->vc_tty = NULL;
tty->driver_data = 0; tty->driver_data = 0;
release_console_sem();
vcs_remove_devfs(tty);
return;
} }
release_console_sem(); release_console_sem();
} }
......
...@@ -443,7 +443,7 @@ config SCSI_SATA_PROMISE ...@@ -443,7 +443,7 @@ config SCSI_SATA_PROMISE
config SCSI_SATA_SIL config SCSI_SATA_SIL
tristate "Silicon Image SATA support" tristate "Silicon Image SATA support"
depends on SCSI_SATA && PCI && BROKEN depends on SCSI_SATA && PCI && EXPERIMENTAL
help help
This option enables support for Silicon Image Serial ATA. This option enables support for Silicon Image Serial ATA.
......
...@@ -205,7 +205,7 @@ static int svia_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -205,7 +205,7 @@ static int svia_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
INIT_LIST_HEAD(&probe_ent->node); INIT_LIST_HEAD(&probe_ent->node);
probe_ent->pdev = pdev; probe_ent->pdev = pdev;
probe_ent->sht = &svia_sht; probe_ent->sht = &svia_sht;
probe_ent->host_flags = ATA_FLAG_SATA | ATA_FLAG_SATA_RESET | probe_ent->host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST |
ATA_FLAG_NO_LEGACY; ATA_FLAG_NO_LEGACY;
probe_ent->port_ops = &svia_sata_ops; probe_ent->port_ops = &svia_sata_ops;
probe_ent->n_ports = 2; probe_ent->n_ports = 2;
......
...@@ -38,11 +38,12 @@ static __inline__ void free_pgd_fast(pgd_t *pgd) ...@@ -38,11 +38,12 @@ static __inline__ void free_pgd_fast(pgd_t *pgd)
preempt_disable(); preempt_disable();
if (!page->lru.prev) { if (!page->lru.prev) {
(unsigned long *)page->lru.next = pgd_quicklist; page->lru.next = (void *) pgd_quicklist;
pgd_quicklist = (unsigned long *)page; pgd_quicklist = (unsigned long *)page;
} }
(unsigned long)page->lru.prev |= page->lru.prev = (void *)
(((unsigned long)pgd & (PAGE_SIZE / 2)) ? 2 : 1); (((unsigned long)page->lru.prev) |
(((unsigned long)pgd & (PAGE_SIZE / 2)) ? 2 : 1));
pgd_cache_size++; pgd_cache_size++;
preempt_enable(); preempt_enable();
} }
...@@ -62,7 +63,7 @@ static __inline__ pgd_t *get_pgd_fast(void) ...@@ -62,7 +63,7 @@ static __inline__ pgd_t *get_pgd_fast(void)
off = PAGE_SIZE / 2; off = PAGE_SIZE / 2;
mask &= ~2; mask &= ~2;
} }
(unsigned long)ret->lru.prev = mask; ret->lru.prev = (void *) mask;
if (!mask) if (!mask)
pgd_quicklist = (unsigned long *)ret->lru.next; pgd_quicklist = (unsigned long *)ret->lru.next;
ret = (struct page *)(__page_address(ret) + off); ret = (struct page *)(__page_address(ret) + off);
...@@ -76,10 +77,10 @@ static __inline__ pgd_t *get_pgd_fast(void) ...@@ -76,10 +77,10 @@ static __inline__ pgd_t *get_pgd_fast(void)
if (page) { if (page) {
ret = (struct page *)page_address(page); ret = (struct page *)page_address(page);
clear_page(ret); clear_page(ret);
(unsigned long)page->lru.prev = 2; page->lru.prev = (void *) 2UL;
preempt_disable(); preempt_disable();
(unsigned long *)page->lru.next = pgd_quicklist; page->lru.next = (void *) pgd_quicklist;
pgd_quicklist = (unsigned long *)page; pgd_quicklist = (unsigned long *)page;
pgd_cache_size++; pgd_cache_size++;
preempt_enable(); preempt_enable();
......
...@@ -49,7 +49,7 @@ struct pci_dev; ...@@ -49,7 +49,7 @@ struct pci_dev;
extern int iommu_setup(char *opt); extern int iommu_setup(char *opt);
extern dma_addr_t bad_dma_address; extern dma_addr_t bad_dma_address;
#define pci_dma_error(x) ((x) == bad_dma_address) #define pci_dma_mapping_error(x) ((x) == bad_dma_address)
/* Allocate and map kernel buffer using consistent mode DMA for a device. /* Allocate and map kernel buffer using consistent mode DMA for a device.
* hwdev should be valid struct pci_dev pointer for PCI devices, * hwdev should be valid struct pci_dev pointer for PCI devices,
......
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