Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 233873
b: refs/heads/master
c: 1362fa0
h: refs/heads/master
i:
  233871: 3d2a475
v: v3
  • Loading branch information
David Howells authored and James Morris committed Mar 3, 2011
1 parent 575804a commit 392d310
Show file tree
Hide file tree
Showing 113 changed files with 621 additions and 769 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: 4438a02fc4956f5f61918095708f183f5c63a9d3
refs/heads/master: 1362fa078dae16776cd439791c6605b224ea6171
6 changes: 6 additions & 0 deletions trunk/Documentation/networking/00-INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ decnet.txt
- info on using the DECnet networking layer in Linux.
depca.txt
- the Digital DEPCA/EtherWORKS DE1?? and DE2?? LANCE Ethernet driver
dgrs.txt
- the Digi International RightSwitch SE-X Ethernet driver
dmfe.txt
- info on the Davicom DM9102(A)/DM9132/DM9801 fast ethernet driver.
e100.txt
Expand All @@ -48,6 +50,8 @@ e1000.txt
- info on Intel's E1000 line of gigabit ethernet boards
eql.txt
- serial IP load balancing
ethertap.txt
- the Ethertap user space packet reception and transmission driver
ewrk3.txt
- the Digital EtherWORKS 3 DE203/4/5 Ethernet driver
filter.txt
Expand Down Expand Up @@ -100,6 +104,8 @@ tuntap.txt
- TUN/TAP device driver, allowing user space Rx/Tx of packets.
vortex.txt
- info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
wavelan.txt
- AT&T GIS (nee NCR) WaveLAN card: An Ethernet-like radio transceiver
x25.txt
- general info on X.25 development.
x25-iface.txt
Expand Down
9 changes: 8 additions & 1 deletion trunk/Documentation/networking/dns_resolver.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ before the more general line given above as the first match is the one taken.
create dns_resolver foo:* * /usr/sbin/dns.foo %k



=====
USAGE
=====
Expand Down Expand Up @@ -104,6 +103,14 @@ implemented in the module can be called after doing:
returned also.


===============================
READING DNS KEYS FROM USERSPACE
===============================

Keys of dns_resolver type can be read from userspace using keyctl_read() or
"keyctl read/print/pipe".


=========
MECHANISM
=========
Expand Down
3 changes: 1 addition & 2 deletions trunk/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -1467,7 +1467,6 @@ F: include/net/bluetooth/

BONDING DRIVER
M: Jay Vosburgh <fubar@us.ibm.com>
M: Andy Gospodarek <andy@greyhouse.net>
L: netdev@vger.kernel.org
W: http://sourceforge.net/projects/bonding/
S: Supported
Expand Down Expand Up @@ -2034,7 +2033,7 @@ F: Documentation/scsi/dc395x.txt
F: drivers/scsi/dc395x.*

DCCP PROTOCOL
M: Gerrit Renker <gerrit@erg.abdn.ac.uk>
M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
L: dccp@vger.kernel.org
W: http://www.linuxfoundation.org/collaborate/workgroups/networking/dccp
S: Maintained
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/alpha/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ config ALPHA
select HAVE_GENERIC_HARDIRQS
select GENERIC_IRQ_PROBE
select AUTO_IRQ_AFFINITY if SMP
select GENERIC_HARDIRQS_NO_DEPRECATED
help
The Alpha is a 64-bit general-purpose processor designed and
marketed by the Digital Equipment Corporation of blessed memory,
Expand Down
13 changes: 4 additions & 9 deletions trunk/arch/alpha/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,25 +44,20 @@ static char irq_user_affinity[NR_IRQS];

int irq_select_affinity(unsigned int irq)
{
struct irq_data *data = irq_get_irq_data(irq);
struct irq_chip *chip;
struct irq_desc *desc = irq_to_desc[irq];
static int last_cpu;
int cpu = last_cpu + 1;

if (!data)
return 1;
chip = irq_data_get_irq_chip(data);

if (!chip->irq_set_affinity || irq_user_affinity[irq])
if (!desc || !get_irq_desc_chip(desc)->set_affinity || irq_user_affinity[irq])
return 1;

while (!cpu_possible(cpu) ||
!cpumask_test_cpu(cpu, irq_default_affinity))
cpu = (cpu < (NR_CPUS-1) ? cpu + 1 : 0);
last_cpu = cpu;

cpumask_copy(data->affinity, cpumask_of(cpu));
chip->irq_set_affinity(data, cpumask_of(cpu), false);
cpumask_copy(desc->affinity, cpumask_of(cpu));
get_irq_desc_chip(desc)->set_affinity(irq, cpumask_of(cpu));
return 0;
}
#endif /* CONFIG_SMP */
Expand Down
11 changes: 8 additions & 3 deletions trunk/arch/alpha/kernel/irq_alpha.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,9 +228,14 @@ struct irqaction timer_irqaction = {
void __init
init_rtc_irq(void)
{
set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
handle_simple_irq, "RTC");
setup_irq(RTC_IRQ, &timer_irqaction);
struct irq_desc *desc = irq_to_desc(RTC_IRQ);

if (desc) {
desc->status |= IRQ_DISABLED;
set_irq_chip_and_handler_name(RTC_IRQ, &no_irq_chip,
handle_simple_irq, "RTC");
setup_irq(RTC_IRQ, &timer_irqaction);
}
}

/* Dummy irqactions. */
Expand Down
18 changes: 8 additions & 10 deletions trunk/arch/alpha/kernel/irq_i8259.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@ i8259_update_irq_hw(unsigned int irq, unsigned long mask)
}

inline void
i8259a_enable_irq(struct irq_data *d)
i8259a_enable_irq(unsigned int irq)
{
spin_lock(&i8259_irq_lock);
i8259_update_irq_hw(d->irq, cached_irq_mask &= ~(1 << d->irq));
i8259_update_irq_hw(irq, cached_irq_mask &= ~(1 << irq));
spin_unlock(&i8259_irq_lock);
}

Expand All @@ -47,18 +47,16 @@ __i8259a_disable_irq(unsigned int irq)
}

void
i8259a_disable_irq(struct irq_data *d)
i8259a_disable_irq(unsigned int irq)
{
spin_lock(&i8259_irq_lock);
__i8259a_disable_irq(d->irq);
__i8259a_disable_irq(irq);
spin_unlock(&i8259_irq_lock);
}

void
i8259a_mask_and_ack_irq(struct irq_data *d)
i8259a_mask_and_ack_irq(unsigned int irq)
{
unsigned int irq = d->irq;

spin_lock(&i8259_irq_lock);
__i8259a_disable_irq(irq);

Expand All @@ -73,9 +71,9 @@ i8259a_mask_and_ack_irq(struct irq_data *d)

struct irq_chip i8259a_irq_type = {
.name = "XT-PIC",
.irq_unmask = i8259a_enable_irq,
.irq_mask = i8259a_disable_irq,
.irq_mask_ack = i8259a_mask_and_ack_irq,
.unmask = i8259a_enable_irq,
.mask = i8259a_disable_irq,
.mask_ack = i8259a_mask_and_ack_irq,
};

void __init
Expand Down
8 changes: 5 additions & 3 deletions trunk/arch/alpha/kernel/irq_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ extern void init_rtc_irq(void);

extern void common_init_isa_dma(void);

extern void i8259a_enable_irq(struct irq_data *d);
extern void i8259a_disable_irq(struct irq_data *d);
extern void i8259a_mask_and_ack_irq(struct irq_data *d);
extern void i8259a_enable_irq(unsigned int);
extern void i8259a_disable_irq(unsigned int);
extern void i8259a_mask_and_ack_irq(unsigned int);
extern unsigned int i8259a_startup_irq(unsigned int);
extern void i8259a_end_irq(unsigned int);
extern struct irq_chip i8259a_irq_type;
extern void init_i8259a_irqs(void);

Expand Down
20 changes: 10 additions & 10 deletions trunk/arch/alpha/kernel/irq_pyxis.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,21 +29,21 @@ pyxis_update_irq_hw(unsigned long mask)
}

static inline void
pyxis_enable_irq(struct irq_data *d)
pyxis_enable_irq(unsigned int irq)
{
pyxis_update_irq_hw(cached_irq_mask |= 1UL << (d->irq - 16));
pyxis_update_irq_hw(cached_irq_mask |= 1UL << (irq - 16));
}

static void
pyxis_disable_irq(struct irq_data *d)
pyxis_disable_irq(unsigned int irq)
{
pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (d->irq - 16)));
pyxis_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
}

static void
pyxis_mask_and_ack_irq(struct irq_data *d)
pyxis_mask_and_ack_irq(unsigned int irq)
{
unsigned long bit = 1UL << (d->irq - 16);
unsigned long bit = 1UL << (irq - 16);
unsigned long mask = cached_irq_mask &= ~bit;

/* Disable the interrupt. */
Expand All @@ -58,9 +58,9 @@ pyxis_mask_and_ack_irq(struct irq_data *d)

static struct irq_chip pyxis_irq_type = {
.name = "PYXIS",
.irq_mask_ack = pyxis_mask_and_ack_irq,
.irq_mask = pyxis_disable_irq,
.irq_unmask = pyxis_enable_irq,
.mask_ack = pyxis_mask_and_ack_irq,
.mask = pyxis_disable_irq,
.unmask = pyxis_enable_irq,
};

void
Expand Down Expand Up @@ -103,7 +103,7 @@ init_pyxis_irqs(unsigned long ignore_mask)
if ((ignore_mask >> i) & 1)
continue;
set_irq_chip_and_handler(i, &pyxis_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
irq_to_desc(i)->status |= IRQ_LEVEL;
}

setup_irq(16+7, &isa_cascade_irqaction);
Expand Down
16 changes: 8 additions & 8 deletions trunk/arch/alpha/kernel/irq_srm.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,27 +18,27 @@
DEFINE_SPINLOCK(srm_irq_lock);

static inline void
srm_enable_irq(struct irq_data *d)
srm_enable_irq(unsigned int irq)
{
spin_lock(&srm_irq_lock);
cserve_ena(d->irq - 16);
cserve_ena(irq - 16);
spin_unlock(&srm_irq_lock);
}

static void
srm_disable_irq(struct irq_data *d)
srm_disable_irq(unsigned int irq)
{
spin_lock(&srm_irq_lock);
cserve_dis(d->irq - 16);
cserve_dis(irq - 16);
spin_unlock(&srm_irq_lock);
}

/* Handle interrupts from the SRM, assuming no additional weirdness. */
static struct irq_chip srm_irq_type = {
.name = "SRM",
.irq_unmask = srm_enable_irq,
.irq_mask = srm_disable_irq,
.irq_mask_ack = srm_disable_irq,
.unmask = srm_enable_irq,
.mask = srm_disable_irq,
.mask_ack = srm_disable_irq,
};

void __init
Expand All @@ -52,7 +52,7 @@ init_srm_irqs(long max, unsigned long ignore_mask)
if (i < 64 && ((ignore_mask >> i) & 1))
continue;
set_irq_chip_and_handler(i, &srm_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
irq_to_desc(i)->status |= IRQ_LEVEL;
}
}

Expand Down
28 changes: 14 additions & 14 deletions trunk/arch/alpha/kernel/sys_alcor.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,31 +44,31 @@ alcor_update_irq_hw(unsigned long mask)
}

static inline void
alcor_enable_irq(struct irq_data *d)
alcor_enable_irq(unsigned int irq)
{
alcor_update_irq_hw(cached_irq_mask |= 1UL << (d->irq - 16));
alcor_update_irq_hw(cached_irq_mask |= 1UL << (irq - 16));
}

static void
alcor_disable_irq(struct irq_data *d)
alcor_disable_irq(unsigned int irq)
{
alcor_update_irq_hw(cached_irq_mask &= ~(1UL << (d->irq - 16)));
alcor_update_irq_hw(cached_irq_mask &= ~(1UL << (irq - 16)));
}

static void
alcor_mask_and_ack_irq(struct irq_data *d)
alcor_mask_and_ack_irq(unsigned int irq)
{
alcor_disable_irq(d);
alcor_disable_irq(irq);

/* On ALCOR/XLT, need to dismiss interrupt via GRU. */
*(vuip)GRU_INT_CLEAR = 1 << (d->irq - 16); mb();
*(vuip)GRU_INT_CLEAR = 1 << (irq - 16); mb();
*(vuip)GRU_INT_CLEAR = 0; mb();
}

static void
alcor_isa_mask_and_ack_irq(struct irq_data *d)
alcor_isa_mask_and_ack_irq(unsigned int irq)
{
i8259a_mask_and_ack_irq(d);
i8259a_mask_and_ack_irq(irq);

/* On ALCOR/XLT, need to dismiss interrupt via GRU. */
*(vuip)GRU_INT_CLEAR = 0x80000000; mb();
Expand All @@ -77,9 +77,9 @@ alcor_isa_mask_and_ack_irq(struct irq_data *d)

static struct irq_chip alcor_irq_type = {
.name = "ALCOR",
.irq_unmask = alcor_enable_irq,
.irq_mask = alcor_disable_irq,
.irq_mask_ack = alcor_mask_and_ack_irq,
.unmask = alcor_enable_irq,
.mask = alcor_disable_irq,
.mask_ack = alcor_mask_and_ack_irq,
};

static void
Expand Down Expand Up @@ -126,9 +126,9 @@ alcor_init_irq(void)
if (i >= 16+20 && i <= 16+30)
continue;
set_irq_chip_and_handler(i, &alcor_irq_type, handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
irq_to_desc(i)->status |= IRQ_LEVEL;
}
i8259a_irq_type.irq_ack = alcor_isa_mask_and_ack_irq;
i8259a_irq_type.ack = alcor_isa_mask_and_ack_irq;

init_i8259a_irqs();
common_init_isa_dma();
Expand Down
16 changes: 8 additions & 8 deletions trunk/arch/alpha/kernel/sys_cabriolet.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,22 +46,22 @@ cabriolet_update_irq_hw(unsigned int irq, unsigned long mask)
}

static inline void
cabriolet_enable_irq(struct irq_data *d)
cabriolet_enable_irq(unsigned int irq)
{
cabriolet_update_irq_hw(d->irq, cached_irq_mask &= ~(1UL << d->irq));
cabriolet_update_irq_hw(irq, cached_irq_mask &= ~(1UL << irq));
}

static void
cabriolet_disable_irq(struct irq_data *d)
cabriolet_disable_irq(unsigned int irq)
{
cabriolet_update_irq_hw(d->irq, cached_irq_mask |= 1UL << d->irq);
cabriolet_update_irq_hw(irq, cached_irq_mask |= 1UL << irq);
}

static struct irq_chip cabriolet_irq_type = {
.name = "CABRIOLET",
.irq_unmask = cabriolet_enable_irq,
.irq_mask = cabriolet_disable_irq,
.irq_mask_ack = cabriolet_disable_irq,
.unmask = cabriolet_enable_irq,
.mask = cabriolet_disable_irq,
.mask_ack = cabriolet_disable_irq,
};

static void
Expand Down Expand Up @@ -107,7 +107,7 @@ common_init_irq(void (*srm_dev_int)(unsigned long v))
for (i = 16; i < 35; ++i) {
set_irq_chip_and_handler(i, &cabriolet_irq_type,
handle_level_irq);
irq_set_status_flags(i, IRQ_LEVEL);
irq_to_desc(i)->status |= IRQ_LEVEL;
}
}

Expand Down
Loading

0 comments on commit 392d310

Please sign in to comment.