Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 440
b: refs/heads/master
c: ab2fd30
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Apr 25, 2005
1 parent b4efd19 commit e432894
Show file tree
Hide file tree
Showing 65 changed files with 669 additions and 198 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2fac6f3fec2303649e9cd572255776cb93d3f888
refs/heads/master: ab2fd30b668b1687a9ca9e9ea0b60145deeafe84
2 changes: 2 additions & 0 deletions trunk/Documentation/networking/netdevices.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ dev->hard_start_xmit:
set_multicast_list
Context: BHs disabled
Notes: netif_queue_stopped() is guaranteed false
Interrupts must be enabled when calling hard_start_xmit.
(Interrupts must also be enabled when enabling the BH handler.)
Return codes:
o NETDEV_TX_OK everything ok.
o NETDEV_TX_BUSY Cannot transmit packet, try later
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/ppc/kernel/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,7 @@ pci_bus_to_hose(int bus)
return NULL;
}

void*
void __iomem *
pci_bus_io_base(unsigned int bus)
{
struct pci_controller *hose;
Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/ppc/kernel/signal.c
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ int sys_rt_sigreturn(int r3, int r4, int r5, int r6, int r7, int r8,
}

int sys_debug_setcontext(struct ucontext __user *ctx,
int ndbg, struct sig_dbg_op *dbg,
int ndbg, struct sig_dbg_op __user *dbg,
int r6, int r7, int r8,
struct pt_regs *regs)
{
Expand Down Expand Up @@ -632,7 +632,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka,
if (__put_user((unsigned long) ka->sa.sa_handler, &sc->handler)
|| __put_user(oldset->sig[0], &sc->oldmask)
|| __put_user(oldset->sig[1], &sc->_unused[3])
|| __put_user((struct pt_regs *)frame, &sc->regs)
|| __put_user((struct pt_regs __user *)frame, &sc->regs)
|| __put_user(sig, &sc->signal))
goto badframe;

Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/ppc/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ static int emulate_string_inst(struct pt_regs *regs, u32 instword)
u8 rA = (instword >> 16) & 0x1f;
u8 NB_RB = (instword >> 11) & 0x1f;
u32 num_bytes;
u32 EA;
unsigned long EA;
int pos = 0;

/* Early out if we are an invalid form of lswx */
Expand Down
7 changes: 3 additions & 4 deletions trunk/arch/ppc/platforms/4xx/ebony.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ ebony_map_irq(struct pci_dev *dev, unsigned char idsel, unsigned char pin)
static void __init
ebony_setup_pcix(void)
{
void *pcix_reg_base;
void __iomem *pcix_reg_base;

pcix_reg_base = ioremap64(PCIX0_REG_BASE, PCIX_REG_SIZE);

Expand Down Expand Up @@ -210,9 +210,8 @@ ebony_setup_hose(void)
hose->io_space.end = EBONY_PCI_UPPER_IO;
hose->mem_space.start = EBONY_PCI_LOWER_MEM;
hose->mem_space.end = EBONY_PCI_UPPER_MEM;
isa_io_base =
(unsigned long)ioremap64(EBONY_PCI_IO_BASE, EBONY_PCI_IO_SIZE);
hose->io_base_virt = (void *)isa_io_base;
hose->io_base_virt = ioremap64(EBONY_PCI_IO_BASE, EBONY_PCI_IO_SIZE);
isa_io_base = (unsigned long)hose->io_base_virt;

setup_indirect_pci(hose,
EBONY_PCI_CFGA_PLB32,
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/ppc/platforms/4xx/luan.c
Original file line number Diff line number Diff line change
Expand Up @@ -223,9 +223,8 @@ luan_setup_hose(struct pci_controller *hose,
hose->io_space.end = LUAN_PCIX_UPPER_IO;
hose->mem_space.start = lower_mem;
hose->mem_space.end = upper_mem;
isa_io_base =
(unsigned long)ioremap64(pcix_io_base, PCIX_IO_SIZE);
hose->io_base_virt = (void *)isa_io_base;
hose->io_base_virt = ioremap64(pcix_io_base, PCIX_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;

setup_indirect_pci(hose, cfga, cfgd);
hose->set_cfg_type = 1;
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/ppc/platforms/4xx/ocotea.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,8 @@ ocotea_setup_hose(void)
hose->io_space.end = OCOTEA_PCI_UPPER_IO;
hose->mem_space.start = OCOTEA_PCI_LOWER_MEM;
hose->mem_space.end = OCOTEA_PCI_UPPER_MEM;
isa_io_base =
(unsigned long)ioremap64(OCOTEA_PCI_IO_BASE, OCOTEA_PCI_IO_SIZE);
hose->io_base_virt = (void *)isa_io_base;
hose->io_base_virt = ioremap64(OCOTEA_PCI_IO_BASE, OCOTEA_PCI_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;

setup_indirect_pci(hose,
OCOTEA_PCI_CFGA_PLB32,
Expand Down
10 changes: 4 additions & 6 deletions trunk/arch/ppc/platforms/pmac_low_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ struct low_i2c_host
int mode; /* Current mode */
int channel; /* Current channel */
int num_channels; /* Number of channels */
unsigned long base; /* For keywest-i2c, base address */
void __iomem * base; /* For keywest-i2c, base address */
int bsteps; /* And register stepping */
int speed; /* And speed */
};
Expand Down Expand Up @@ -154,14 +154,12 @@ static const char *__kw_state_names[] = {

static inline u8 __kw_read_reg(struct low_i2c_host *host, reg_t reg)
{
return in_8(((volatile u8 *)host->base)
+ (((unsigned)reg) << host->bsteps));
return in_8(host->base + (((unsigned)reg) << host->bsteps));
}

static inline void __kw_write_reg(struct low_i2c_host *host, reg_t reg, u8 val)
{
out_8(((volatile u8 *)host->base)
+ (((unsigned)reg) << host->bsteps), val);
out_8(host->base + (((unsigned)reg) << host->bsteps), val);
(void)__kw_read_reg(host, reg_subaddr);
}

Expand Down Expand Up @@ -370,7 +368,7 @@ static void keywest_low_i2c_add(struct device_node *np)
break;
}
host->mode = pmac_low_i2c_mode_std;
host->base = (unsigned long)ioremap(np->addrs[0].address + aoffset,
host->base = ioremap(np->addrs[0].address + aoffset,
np->addrs[0].size);
host->func = keywest_low_i2c_func;
}
Expand Down
5 changes: 2 additions & 3 deletions trunk/arch/ppc/syslib/m8260_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -171,10 +171,9 @@ void __init m8260_find_bridges(void)
m8260_setup_pci(hose);
hose->pci_mem_offset = MPC826x_PCI_MEM_OFFSET;

isa_io_base =
(unsigned long) ioremap(MPC826x_PCI_IO_BASE,
hose->io_base_virt = ioremap(MPC826x_PCI_IO_BASE,
MPC826x_PCI_IO_SIZE);
hose->io_base_virt = (void *) isa_io_base;
isa_io_base = (unsigned long) hose->io_base_virt;

/* setup resources */
pci_init_resource(&hose->mem_resources[0],
Expand Down
8 changes: 3 additions & 5 deletions trunk/arch/ppc/syslib/mpc52xx_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,13 +205,11 @@ mpc52xx_find_bridges(void)

hose->pci_mem_offset = MPC52xx_PCI_MEM_OFFSET;

isa_io_base =
(unsigned long) ioremap(MPC52xx_PCI_IO_BASE,
MPC52xx_PCI_IO_SIZE);
hose->io_base_virt = (void *) isa_io_base;
hose->io_base_virt = ioremap(MPC52xx_PCI_IO_BASE, MPC52xx_PCI_IO_SIZE);
isa_io_base = (unsigned long) hose->io_base_virt;

hose->cfg_addr = &pci_regs->car;
hose->cfg_data = (void __iomem *) isa_io_base;
hose->cfg_data = hose->io_base_virt;

/* Setup resources */
pci_init_resource(&hose->mem_resources[0],
Expand Down
12 changes: 5 additions & 7 deletions trunk/arch/ppc/syslib/ppc85xx_setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -280,16 +280,14 @@ mpc85xx_setup_hose(void)
hose_a->io_space.end = MPC85XX_PCI1_UPPER_IO;
hose_a->io_base_phys = MPC85XX_PCI1_IO_BASE;
#ifdef CONFIG_85xx_PCI2
isa_io_base =
(unsigned long) ioremap(MPC85XX_PCI1_IO_BASE,
hose_a->io_base_virt = ioremap(MPC85XX_PCI1_IO_BASE,
MPC85XX_PCI1_IO_SIZE +
MPC85XX_PCI2_IO_SIZE);
#else
isa_io_base =
(unsigned long) ioremap(MPC85XX_PCI1_IO_BASE,
hose_a->io_base_virt = ioremap(MPC85XX_PCI1_IO_BASE,
MPC85XX_PCI1_IO_SIZE);
#endif
hose_a->io_base_virt = (void *) isa_io_base;
isa_io_base = (unsigned long)hose_a->io_base_virt;

/* setup resources */
pci_init_resource(&hose_a->mem_resources[0],
Expand Down Expand Up @@ -329,8 +327,8 @@ mpc85xx_setup_hose(void)
hose_b->io_space.start = MPC85XX_PCI2_LOWER_IO;
hose_b->io_space.end = MPC85XX_PCI2_UPPER_IO;
hose_b->io_base_phys = MPC85XX_PCI2_IO_BASE;
hose_b->io_base_virt = (void *) isa_io_base + MPC85XX_PCI1_IO_SIZE;

hose_b->io_base_virt = hose_a->io_base_virt + MPC85XX_PCI1_IO_SIZE;
/* setup resources */
pci_init_resource(&hose_b->mem_resources[0],
MPC85XX_PCI2_LOWER_MEM,
Expand Down
11 changes: 11 additions & 0 deletions trunk/arch/sparc/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,17 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
printk("\n");
}

void dump_stack(void)
{
unsigned long *ksp;

__asm__ __volatile__("mov %%fp, %0"
: "=r" (ksp));
show_stack(current, ksp);
}

EXPORT_SYMBOL(dump_stack);

/*
* Note: sparc64 has a pretty intricated thread_saved_pc, check it out.
*/
Expand Down
20 changes: 17 additions & 3 deletions trunk/arch/sparc/kernel/sparc_ksyms.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <linux/in6.h>
#include <linux/spinlock.h>
#include <linux/mm.h>
#include <linux/syscalls.h>
#ifdef CONFIG_PCI
#include <linux/pci.h>
#endif
Expand Down Expand Up @@ -89,6 +90,9 @@ extern void ___atomic24_sub(void);
extern void ___set_bit(void);
extern void ___clear_bit(void);
extern void ___change_bit(void);
extern void ___rw_read_enter(void);
extern void ___rw_read_exit(void);
extern void ___rw_write_enter(void);

/* Alias functions whose names begin with "." and export the aliases.
* The module references will be fixed up by module_frob_arch_sections.
Expand Down Expand Up @@ -121,9 +125,9 @@ EXPORT_SYMBOL(_do_write_unlock);
#endif
#else
// XXX find what uses (or used) these.
// EXPORT_SYMBOL_PRIVATE(_rw_read_enter);
// EXPORT_SYMBOL_PRIVATE(_rw_read_exit);
// EXPORT_SYMBOL_PRIVATE(_rw_write_enter);
EXPORT_SYMBOL(___rw_read_enter);
EXPORT_SYMBOL(___rw_read_exit);
EXPORT_SYMBOL(___rw_write_enter);
#endif
/* semaphores */
EXPORT_SYMBOL(__up);
Expand All @@ -144,13 +148,20 @@ EXPORT_SYMBOL(___set_bit);
EXPORT_SYMBOL(___clear_bit);
EXPORT_SYMBOL(___change_bit);

/* Per-CPU information table */
EXPORT_PER_CPU_SYMBOL(__cpu_data);

#ifdef CONFIG_SMP
/* IRQ implementation. */
EXPORT_SYMBOL(synchronize_irq);

/* Misc SMP information */
EXPORT_SYMBOL(__cpu_number_map);
EXPORT_SYMBOL(__cpu_logical_map);

/* CPU online map and active count. */
EXPORT_SYMBOL(cpu_online_map);
EXPORT_SYMBOL(phys_cpu_present_map);
#endif

EXPORT_SYMBOL(__udelay);
Expand Down Expand Up @@ -332,3 +343,6 @@ EXPORT_SYMBOL(do_BUG);

/* Sun Power Management Idle Handler */
EXPORT_SYMBOL(pm_idle);

/* Binfmt_misc needs this */
EXPORT_SYMBOL(sys_close);
27 changes: 18 additions & 9 deletions trunk/drivers/atm/eni.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
* - doesn't support OAM cells
* - eni_put_free may hang if not putting memory fragments that _complete_
* 2^n block (never happens in real life, though)
* - keeps IRQ even if initialization fails
*/


Expand Down Expand Up @@ -1802,22 +1801,22 @@ static int __devinit eni_start(struct atm_dev *dev)
if (request_irq(eni_dev->irq,&eni_int,SA_SHIRQ,DEV_LABEL,dev)) {
printk(KERN_ERR DEV_LABEL "(itf %d): IRQ%d is already in use\n",
dev->number,eni_dev->irq);
return -EAGAIN;
error = -EAGAIN;
goto out;
}
/* @@@ should release IRQ on error */
pci_set_master(eni_dev->pci_dev);
if ((error = pci_write_config_word(eni_dev->pci_dev,PCI_COMMAND,
PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER |
(eni_dev->asic ? PCI_COMMAND_PARITY | PCI_COMMAND_SERR : 0)))) {
printk(KERN_ERR DEV_LABEL "(itf %d): can't enable memory+"
"master (0x%02x)\n",dev->number,error);
return error;
goto free_irq;
}
if ((error = pci_write_config_byte(eni_dev->pci_dev,PCI_TONGA_CTRL,
END_SWAP_DMA))) {
printk(KERN_ERR DEV_LABEL "(itf %d): can't set endian swap "
"(0x%02x)\n",dev->number,error);
return error;
goto free_irq;
}
/* determine addresses of internal tables */
eni_dev->vci = eni_dev->ram;
Expand All @@ -1839,7 +1838,8 @@ static int __devinit eni_start(struct atm_dev *dev)
if (!eni_dev->free_list) {
printk(KERN_ERR DEV_LABEL "(itf %d): couldn't get free page\n",
dev->number);
return -ENOMEM;
error = -ENOMEM;
goto free_irq;
}
eni_dev->free_len = 0;
eni_put_free(eni_dev,buf,buffer_mem);
Expand All @@ -1855,17 +1855,26 @@ static int __devinit eni_start(struct atm_dev *dev)
*/
eni_out(0xffffffff,MID_IE);
error = start_tx(dev);
if (error) return error;
if (error) goto free_list;
error = start_rx(dev);
if (error) return error;
if (error) goto free_list;
error = dev->phy->start(dev);
if (error) return error;
if (error) goto free_list;
eni_out(eni_in(MID_MC_S) | (1 << MID_INT_SEL_SHIFT) |
MID_TX_LOCK_MODE | MID_DMA_ENABLE | MID_TX_ENABLE | MID_RX_ENABLE,
MID_MC_S);
/* Tonga uses SBus INTReq1 */
(void) eni_in(MID_ISA); /* clear Midway interrupts */
return 0;

free_list:
kfree(eni_dev->free_list);

free_irq:
free_irq(eni_dev->irq, eni_dev);

out:
return error;
}


Expand Down
4 changes: 1 addition & 3 deletions trunk/drivers/atm/fore200e.c
Original file line number Diff line number Diff line change
Expand Up @@ -2792,8 +2792,6 @@ static void __devexit fore200e_pca_remove_one(struct pci_dev *pci_dev)

fore200e = pci_get_drvdata(pci_dev);

list_del(&fore200e->entry);

fore200e_shutdown(fore200e);
kfree(fore200e);
pci_disable_device(pci_dev);
Expand Down Expand Up @@ -2850,7 +2848,7 @@ fore200e_module_init(void)
}

#ifdef CONFIG_ATM_FORE200E_PCA
if (!pci_module_init(&fore200e_pca_driver))
if (!pci_register_driver(&fore200e_pca_driver))
return 0;
#endif

Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/atm/he.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
#include <linux/sched.h>
#include <linux/timer.h>
#include <linux/interrupt.h>
#include <linux/dma-mapping.h>
#include <asm/io.h>
#include <asm/byteorder.h>
#include <asm/uaccess.h>
Expand Down Expand Up @@ -371,7 +372,7 @@ he_init_one(struct pci_dev *pci_dev, const struct pci_device_id *pci_ent)

if (pci_enable_device(pci_dev))
return -EIO;
if (pci_set_dma_mask(pci_dev, HE_DMA_MASK) != 0) {
if (pci_set_dma_mask(pci_dev, DMA_32BIT_MASK) != 0) {
printk(KERN_WARNING "he: no suitable dma available\n");
err = -EIO;
goto init_one_failure;
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/atm/he.h
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,6 @@ struct he_vcc
#define PCI_VENDOR_ID_FORE 0x1127
#define PCI_DEVICE_ID_FORE_HE 0x400

#define HE_DMA_MASK 0xffffffff

#define GEN_CNTL_0 0x40
#define INT_PROC_ENBL (1<<25)
#define SLAVE_ENDIAN_MODE (1<<16)
Expand Down
Loading

0 comments on commit e432894

Please sign in to comment.