ACPI: video_device_list corruption

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=98934def70b48dac74fac3738b78ab2d1a28edda
Commit: 98934def70b48dac74fac3738b78ab2d1a28edda
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: William Lee Irwin III <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 03:56:55 2007 -0800
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 16:24:10 2007 -0500

ACPI: video_device_list corruption

The ->cap fields of struct acpi_video_device and struct acpi_video_bus
are 1B each, not 4B. The oversized memset()'s corrupted the subsequent
list_head fields. This resulted in silent corruption without
CONFIG_DEBUG_LIST and BUG's with it. This patch uses sizeof() to pass
the proper bounds to the memset() calls and thereby correct the bugs.

Signed-off-by: William Irwin <[EMAIL PROTECTED]>
Acked-by: Mikael Pettersson <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/video.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 44a0d9b..bd77e81 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -577,7 +577,7 @@ static void acpi_video_device_find_cap(struct 
acpi_video_device *device)
struct acpi_video_device_brightness *br = NULL;
 
 
-   memset(&device->cap, 0, 4);
+   memset(&device->cap, 0, sizeof(device->cap));
 
if (ACPI_SUCCESS(acpi_get_handle(device->dev->handle, "_ADR", 
&h_dummy1))) {
device->cap._ADR = 1;
@@ -697,7 +697,7 @@ static void acpi_video_bus_find_cap(struct acpi_video_bus 
*video)
 {
acpi_handle h_dummy1;
 
-   memset(&video->cap, 0, 4);
+   memset(&video->cap, 0, sizeof(video->cap));
if (ACPI_SUCCESS(acpi_get_handle(video->device->handle, "_DOS", 
&h_dummy1))) {
video->cap._DOS = 1;
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: fix modpost warnings

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ffada8913e39e6fd35e95d7040ccac57b45812c9
Commit: ffada8913e39e6fd35e95d7040ccac57b45812c9
Parent: 98934def70b48dac74fac3738b78ab2d1a28edda
Author: Jan Beulich <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 08:32:26 2007 +
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 17:50:09 2007 -0500

ACPI: fix modpost warnings

for sn2_defconfig:

WARNING: vmlinux.o(.text+0x4b8601): Section mismatch: reference to 
.init.data:node_to_pxm_map (between '__acpi_map_pxm_to_node' and 'acpi_get_pxm')
WARNING: vmlinux.o(.text+0x4b8741): Section mismatch: reference to 
.init.data:pxm_to_node_map (between 'acpi_map_pxm_to_node' and 'acpi_get_node')

Signed-off-by: Jan Beulich <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/numa.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index ab04d84..0822d9f 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -38,9 +38,9 @@ ACPI_MODULE_NAME("numa");
 static nodemask_t nodes_found_map = NODE_MASK_NONE;
 
 /* maps to convert between proximity domain and logical node ID */
-static int __cpuinitdata pxm_to_node_map[MAX_PXM_DOMAINS]
+static int pxm_to_node_map[MAX_PXM_DOMAINS]
= { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL };
-static int __cpuinitdata node_to_pxm_map[MAX_NUMNODES]
+static int node_to_pxm_map[MAX_NUMNODES]
= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
 
 int pxm_to_node(int pxm)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: thinkpad-acpi: fix lenovo keymap for brightness

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=56a185b43be05e48da7428e6a1d3e2585b232b1d
Commit: 56a185b43be05e48da7428e6a1d3e2585b232b1d
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Henrique de Moraes Holschuh <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 12:14:09 2007 -0200
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 21:59:59 2007 -0500

ACPI: thinkpad-acpi: fix lenovo keymap for brightness

Starting in 2.6.23...

Several reports from X60 users complained that the default Lenovo keymap
issuing EV_KEY KEY_BRIGHTNESS_UP/DOWN input events caused major issues when
the proper brightness support through ACPI video.c was loaded.

Therefore, remove the generation of these events by default, which is the
right thing for T60, X60, R60, T61, X61 and R61 with their latest BIOSes.

Distros that want to misuse these events into OSD reporting (which requires
an ugly hack from hell in HAL) are welcome to set up the key map they need
through HAL.  That way, we don't break everyone else's systems.

Signed-off-by: Henrique de Moraes Holschuh <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/misc/thinkpad_acpi.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index ab23a32..cf56647 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -987,9 +987,9 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
KEY_UNKNOWN,/* 0x0C: FN+BACKSPACE */
KEY_UNKNOWN,/* 0x0D: FN+INSERT */
KEY_UNKNOWN,/* 0x0E: FN+DELETE */
-   KEY_BRIGHTNESSUP,   /* 0x0F: FN+HOME (brightness up) */
+   KEY_RESERVED,   /* 0x0F: FN+HOME (brightness up) */
/* Scan codes 0x10 to 0x1F: Extended ACPI HKEY hot keys */
-   KEY_BRIGHTNESSDOWN, /* 0x10: FN+END (brightness down) */
+   KEY_RESERVED,   /* 0x10: FN+END (brightness down) */
KEY_RESERVED,   /* 0x11: FN+PGUP (thinklight toggle) */
KEY_UNKNOWN,/* 0x12: FN+PGDOWN */
KEY_ZOOM,   /* 0x13: FN+SPACE (zoom) */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: battery: fix ACPI battery technology reporting

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ad40e68bf5c54831cd6b2199fd24d616bac179f7
Commit: ad40e68bf5c54831cd6b2199fd24d616bac179f7
Parent: f194d132e497f85c18c96067acffb13cee6d
Author: Andrey Borzenkov <[EMAIL PROTECTED]>
AuthorDate: Sat Nov 10 20:02:49 2007 +0300
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Thu Dec 6 22:29:22 2007 -0500

ACPI: battery: fix ACPI battery technology reporting

At least some systems report technology information with trailing spaces:

{pts/1}% cat -E /var/tmp/bat/2.6.23 | grep type
battery type:Li-ION  $

Use strncasecmp to compare model string to skip trailing part

Signed-off-by: Andrey Borzenkov <[EMAIL PROTECTED]>
Acked-by: Alexey Starikovskiy <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/battery.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 7d6be23..8f7505d 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -125,7 +125,7 @@ static int acpi_battery_technology(struct acpi_battery 
*battery)
return POWER_SUPPLY_TECHNOLOGY_NiMH;
if (!strcasecmp("LION", battery->type))
return POWER_SUPPLY_TECHNOLOGY_LION;
-   if (!strcasecmp("LI-ION", battery->type))
+   if (!strncasecmp("LI-ION", battery->type, 6))
return POWER_SUPPLY_TECHNOLOGY_LION;
if (!strcasecmp("LiP", battery->type))
return POWER_SUPPLY_TECHNOLOGY_LIPO;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: acpiphp: Remove dmesg spam on device remove

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6ce7641b879e4b9ead46e14275d9d3645b47fa63
Commit: 6ce7641b879e4b9ead46e14275d9d3645b47fa63
Parent: 2ffbb8377c7a0713baf6644e285adc27a5654582
Author: Gary Hade <[EMAIL PROTECTED]>
AuthorDate: Tue Nov 20 12:19:12 2007 -0800
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Tue Nov 20 19:06:04 2007 -0500

ACPI: acpiphp: Remove dmesg spam on device remove

In cases where acpi_pci_bind() does not
attach device data, acpi_pci_unbind()
complains via an ACPI exception about the missing data when
the device is removed.  For example, acpi_pci_bind() does not
attach data for non-existent device functions so when the device
is removed using the ACPI PCI hotplug driver 'acpiphp' an ACPI
exception is logged for every non-existent function.  This patch
avoids the confusing log messages by removing the unnecessary
ACPI exception.

Signed-off-by: Gary Hade <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/pci_bind.c |3 ---
 1 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/pci_bind.c b/drivers/acpi/pci_bind.c
index 0289693..388300d 100644
--- a/drivers/acpi/pci_bind.c
+++ b/drivers/acpi/pci_bind.c
@@ -294,9 +294,6 @@ int acpi_pci_unbind(struct acpi_device *device)
acpi_get_data(device->handle, acpi_pci_data_handler,
  (void **)&data);
if (ACPI_FAILURE(status)) {
-   ACPI_EXCEPTION((AE_INFO, status,
-   "Unable to get data from device %s",
-   acpi_device_bid(device)));
result = -ENODEV;
goto end;
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: SBS: Reset alarm bit

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=09f1fb41ad45bc18abe07c62f7b56560571584d1
Commit: 09f1fb41ad45bc18abe07c62f7b56560571584d1
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Alexey Starikovskiy <[EMAIL PROTECTED]>
AuthorDate: Sat Dec 8 13:02:33 2007 +0300
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 15:13:51 2007 -0500

ACPI: SBS: Reset alarm bit

Alarm bit should be cleared in order for other alarms to be sent.
http://bugzilla.kernel.org/show_bug.cgi?id=9362

Signed-off-by: Alexey Starikovskiy <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/sbshc.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index 046d7c3..12a1532 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -222,6 +222,7 @@ static int smbus_alarm(void *context)
if (!status.fields.alarm)
return 0;
mutex_lock(&hc->lock);
+   status.fields.alarm = 0;
smb_hc_write(hc, ACPI_SMB_STATUS, status.raw);
if (hc->callback)
acpi_os_execute(OSL_GPE_HANDLER, acpi_smbus_callback, hc);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: SBS: Ignore alarms coming from unknown devices

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c2d00f2d1bf8dd721f5557b0df23729addc1898d
Commit: c2d00f2d1bf8dd721f5557b0df23729addc1898d
Parent: 09f1fb41ad45bc18abe07c62f7b56560571584d1
Author: Alexey Starikovskiy <[EMAIL PROTECTED]>
AuthorDate: Sat Dec 8 13:02:40 2007 +0300
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 15:14:06 2007 -0500

ACPI: SBS: Ignore alarms coming from unknown devices

http://bugzilla.kernel.org/show_bug.cgi?id=9362

Signed-off-by: Alexey Starikovskiy <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/sbs.c   |6 --
 drivers/acpi/sbshc.c |   16 
 drivers/acpi/sbshc.h |6 ++
 3 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c
index 6045cdb..813ef32 100644
--- a/drivers/acpi/sbs.c
+++ b/drivers/acpi/sbs.c
@@ -54,12 +54,6 @@
 #define ACPI_BATTERY_DIR_NAME  "BAT%i"
 #define ACPI_AC_DIR_NAME   "AC0"
 
-enum acpi_sbs_device_addr {
-   ACPI_SBS_CHARGER = 0x9,
-   ACPI_SBS_MANAGER = 0xa,
-   ACPI_SBS_BATTERY = 0xb,
-};
-
 #define ACPI_SBS_NOTIFY_STATUS 0x80
 #define ACPI_SBS_NOTIFY_INFO   0x81
 
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index 12a1532..fd40b6a 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -202,10 +202,9 @@ int acpi_smbus_unregister_callback(struct acpi_smb_hc *hc)
 
 EXPORT_SYMBOL_GPL(acpi_smbus_unregister_callback);
 
-static void acpi_smbus_callback(void *context)
+static inline void acpi_smbus_callback(void *context)
 {
struct acpi_smb_hc *hc = context;
-
if (hc->callback)
hc->callback(hc->context);
 }
@@ -214,6 +213,7 @@ static int smbus_alarm(void *context)
 {
struct acpi_smb_hc *hc = context;
union acpi_smb_status status;
+   u8 address;
if (smb_hc_read(hc, ACPI_SMB_STATUS, &status.raw))
return 0;
/* Check if it is only a completion notify */
@@ -222,10 +222,18 @@ static int smbus_alarm(void *context)
if (!status.fields.alarm)
return 0;
mutex_lock(&hc->lock);
+   smb_hc_read(hc, ACPI_SMB_ALARM_ADDRESS, &address);
status.fields.alarm = 0;
smb_hc_write(hc, ACPI_SMB_STATUS, status.raw);
-   if (hc->callback)
-   acpi_os_execute(OSL_GPE_HANDLER, acpi_smbus_callback, hc);
+   /* We are only interested in events coming from known devices */
+   switch (address >> 1) {
+   case ACPI_SBS_CHARGER:
+   case ACPI_SBS_MANAGER:
+   case ACPI_SBS_BATTERY:
+   acpi_os_execute(OSL_GPE_HANDLER,
+   acpi_smbus_callback, hc);
+   default:;
+   }
mutex_unlock(&hc->lock);
return 0;
 }
diff --git a/drivers/acpi/sbshc.h b/drivers/acpi/sbshc.h
index 3bda349..a57b076 100644
--- a/drivers/acpi/sbshc.h
+++ b/drivers/acpi/sbshc.h
@@ -16,6 +16,12 @@ enum acpi_smb_protocol {
 
 static const u8 SMBUS_PEC = 0x80;
 
+enum acpi_sbs_device_addr {
+   ACPI_SBS_CHARGER = 0x9,
+   ACPI_SBS_MANAGER = 0xa,
+   ACPI_SBS_BATTERY = 0xb,
+};
+
 typedef void (*smbus_alarm_callback)(void *context);
 
 extern int acpi_smbus_read(struct acpi_smb_hc *hc, u8 protocol, u8 address,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[MIPS] time: Set up Cobalt's mips_hpt_frequency

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=18ca38d26f65c849af109eb911295c7dde71ce3b
Commit: 18ca38d26f65c849af109eb911295c7dde71ce3b
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Yoichi Yuasa <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 9 21:22:04 2007 +0900
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:29 2007 +

[MIPS] time: Set up Cobalt's mips_hpt_frequency

Signed-off-by: Yoichi Yuasa <[EMAIL PROTECTED]>
Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/cobalt/time.c |   21 -
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/arch/mips/cobalt/time.c b/arch/mips/cobalt/time.c
index fa819fc..4a570e7 100644
--- a/arch/mips/cobalt/time.c
+++ b/arch/mips/cobalt/time.c
@@ -27,9 +27,28 @@
 
 void __init plat_time_init(void)
 {
+   u32 start, end;
+   int i = HZ / 10;
+
setup_pit_timer();
 
gt641xx_set_base_clock(GT641XX_BASE_CLOCK);
 
-   mips_timer_state = gt641xx_timer0_state;
+   /*
+* MIPS counter frequency is measured during a 100msec interval
+* using GT64111 timer0.
+*/
+   while (!gt641xx_timer0_state())
+   ;
+
+   start = read_c0_count();
+
+   while (i--)
+   while (!gt641xx_timer0_state())
+   ;
+
+   end = read_c0_count();
+
+   mips_hpt_frequency = (end - start) * 10;
+   printk(KERN_INFO "MIPS counter frequency %dHz\n", mips_hpt_frequency);
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[MIPS] Alchemy: fix PCI resource conflict

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd99d9661c72fe251b842705f2e7cfaa4918a13c
Commit: dd99d9661c72fe251b842705f2e7cfaa4918a13c
Parent: 18ca38d26f65c849af109eb911295c7dde71ce3b
Author: Sergei Shtylyov <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 20:28:51 2007 +0300
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:29 2007 +

[MIPS] Alchemy: fix PCI resource conflict

... by getting the PCI resources back into the 32-bit range -- there's no
need therefore for CONFIG_RESOURCES_64BIT either. This makes Alchemy PCI
work again while currently the kernel skips the bus scan.

Signed-off-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/au1000/Kconfig  |9 -
 arch/mips/au1000/common/pci.c |8 
 include/asm-mips/mach-au1x00/au1000.h |9 +
 3 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/arch/mips/au1000/Kconfig b/arch/mips/au1000/Kconfig
index 05d1354..1fe97cc 100644
--- a/arch/mips/au1000/Kconfig
+++ b/arch/mips/au1000/Kconfig
@@ -7,7 +7,6 @@ config MIPS_MTX1
bool "4G Systems MTX-1 board"
select DMA_NONCOHERENT
select HW_HAS_PCI
-   select RESOURCES_64BIT if PCI
select SOC_AU1500
select SYS_SUPPORTS_LITTLE_ENDIAN
 
@@ -22,7 +21,6 @@ config MIPS_DB1000
select SOC_AU1000
select DMA_NONCOHERENT
select HW_HAS_PCI
-   select RESOURCES_64BIT if PCI
select SYS_SUPPORTS_LITTLE_ENDIAN
 
 config MIPS_DB1100
@@ -44,7 +42,6 @@ config MIPS_DB1500
select DMA_NONCOHERENT
select HW_HAS_PCI
select MIPS_DISABLE_OBSOLETE_IDE
-   select RESOURCES_64BIT if PCI
select SYS_SUPPORTS_BIG_ENDIAN
select SYS_SUPPORTS_LITTLE_ENDIAN
 
@@ -54,7 +51,6 @@ config MIPS_DB1550
select HW_HAS_PCI
select DMA_NONCOHERENT
select MIPS_DISABLE_OBSOLETE_IDE
-   select RESOURCES_64BIT if PCI
select SYS_SUPPORTS_LITTLE_ENDIAN
 
 config MIPS_MIRAGE
@@ -68,7 +64,6 @@ config MIPS_PB1000
select SOC_AU1000
select DMA_NONCOHERENT
select HW_HAS_PCI
-   select RESOURCES_64BIT if PCI
select SWAP_IO_SPACE
select SYS_SUPPORTS_LITTLE_ENDIAN
 
@@ -77,7 +72,6 @@ config MIPS_PB1100
select SOC_AU1100
select DMA_NONCOHERENT
select HW_HAS_PCI
-   select RESOURCES_64BIT if PCI
select SWAP_IO_SPACE
select SYS_SUPPORTS_LITTLE_ENDIAN
 
@@ -86,7 +80,6 @@ config MIPS_PB1200
select SOC_AU1200
select DMA_NONCOHERENT
select MIPS_DISABLE_OBSOLETE_IDE
-   select RESOURCES_64BIT if PCI
select SYS_SUPPORTS_LITTLE_ENDIAN
 
 config MIPS_PB1500
@@ -94,7 +87,6 @@ config MIPS_PB1500
select SOC_AU1500
select DMA_NONCOHERENT
select HW_HAS_PCI
-   select RESOURCES_64BIT if PCI
select SYS_SUPPORTS_LITTLE_ENDIAN
 
 config MIPS_PB1550
@@ -103,7 +95,6 @@ config MIPS_PB1550
select DMA_NONCOHERENT
select HW_HAS_PCI
select MIPS_DISABLE_OBSOLETE_IDE
-   select RESOURCES_64BIT if PCI
select SYS_SUPPORTS_LITTLE_ENDIAN
 
 config MIPS_XXS1500
diff --git a/arch/mips/au1000/common/pci.c b/arch/mips/au1000/common/pci.c
index 9be99a6..6fa70a3 100644
--- a/arch/mips/au1000/common/pci.c
+++ b/arch/mips/au1000/common/pci.c
@@ -39,15 +39,15 @@
 
 /* TBD */
 static struct resource pci_io_resource = {
-   .start  = (resource_size_t)PCI_IO_START,
-   .end= (resource_size_t)PCI_IO_END,
+   .start  = PCI_IO_START,
+   .end= PCI_IO_END,
.name   = "PCI IO space",
.flags  = IORESOURCE_IO
 };
 
 static struct resource pci_mem_resource = {
-   .start  = (resource_size_t)PCI_MEM_START,
-   .end= (resource_size_t)PCI_MEM_END,
+   .start  = PCI_MEM_START,
+   .end= PCI_MEM_END,
.name   = "PCI memory space",
.flags  = IORESOURCE_MEM
 };
diff --git a/include/asm-mips/mach-au1x00/au1000.h 
b/include/asm-mips/mach-au1x00/au1000.h
index bf77012..cb18af9 100644
--- a/include/asm-mips/mach-au1x00/au1000.h
+++ b/include/asm-mips/mach-au1x00/au1000.h
@@ -1680,10 +1680,11 @@ enum soc_au1200_ints {
 #define Au1500_PCI_MEM_START  0x44000ULL
 #define Au1500_PCI_MEM_END0x44FFFULL
 
-#define PCI_IO_START(Au1500_PCI_IO_START + 0x1000)
-#define PCI_IO_END  (Au1500_PCI_IO_END)
-#define PCI_MEM_START   (Au1500_PCI_MEM_START)
-#define PCI_MEM_END (Au1500_PCI_MEM_END)
+#define PCI_IO_START   0x1000
+#define PCI_IO_END 0x000F
+#define PCI_MEM_START  0x4000
+#define PCI_MEM_END0x4FFF
+
 #define PCI_FIRST_DEVFN (0<<3)
 #define PCI_LAST_DEVFN  (19<<3)
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordom

[MIPS] Atlas, Malta: Don't free firmware memory on free_initmem.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=40c7869b693b18412491fdcff64682215b739f9e
Commit: 40c7869b693b18412491fdcff64682215b739f9e
Parent: b87bb40b62310328e908d580e013e0575b05886c
Author: Ralf Baechle <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 19:38:12 2007 +
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:29 2007 +

[MIPS] Atlas, Malta: Don't free firmware memory on free_initmem.

A proper fix for this needs to turn a few MIPS-generic bits which I
don't want at this stage.

Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/mips-boards/generic/memory.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/mips/mips-boards/generic/memory.c 
b/arch/mips/mips-boards/generic/memory.c
index dc272c1..2c5c27c 100644
--- a/arch/mips/mips-boards/generic/memory.c
+++ b/arch/mips/mips-boards/generic/memory.c
@@ -169,6 +169,7 @@ void __init prom_meminit(void)
 
 void __init prom_free_prom_memory(void)
 {
+#if 0 /* for now ...  */
unsigned long addr;
int i;
 
@@ -180,4 +181,5 @@ void __init prom_free_prom_memory(void)
free_init_pages("prom memory",
addr, addr + boot_mem_map.map[i].size);
}
+#endif
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[MIPS] PCI: Make pcibios_fixup_device_resources ignore legacy resources.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d20e47e153dcfddca5a066ff0f8da2d1104d08ea
Commit: d20e47e153dcfddca5a066ff0f8da2d1104d08ea
Parent: 40c7869b693b18412491fdcff64682215b739f9e
Author: Ralf Baechle <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 19:49:24 2007 +
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:29 2007 +

[MIPS] PCI: Make pcibios_fixup_device_resources ignore legacy resources.

There might be other reasons why a resource might be marked as fixed
such as a PCI UART holding the system console but until we use
IORESOURCE_PCI_FIXED that way also this will work.

Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/pci/pci.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index 589b745..6e6981f 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -242,6 +242,8 @@ static void pcibios_fixup_device_resources(struct pci_dev 
*dev,
for (i = 0; i < PCI_NUM_RESOURCES; i++) {
if (!dev->resource[i].start)
continue;
+   if (dev->resource[i].flags & IORESOURCE_PCI_FIXED)
+   continue;
if (dev->resource[i].flags & IORESOURCE_IO)
offset = hose->io_offset;
else if (dev->resource[i].flags & IORESOURCE_MEM)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ACPI: SBS: Return rate in mW if capacity in mWh

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a21e4fe587ebb793bf3a1c02755f8a845170328
Commit: 5a21e4fe587ebb793bf3a1c02755f8a845170328
Parent: c2d00f2d1bf8dd721f5557b0df23729addc1898d
Author: Alexey Starikovskiy <[EMAIL PROTECTED]>
AuthorDate: Sat Dec 8 13:02:46 2007 +0300
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 15:14:23 2007 -0500

ACPI: SBS: Return rate in mW if capacity in mWh

klaptopd assumes rate to be in same units as capacity.

http://bugzilla.kernel.org/show_bug.cgi?id=9362

Signed-off-by: Alexey Starikovskiy <[EMAIL PROTECTED]>
Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 drivers/acpi/sbs.c |   21 -
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/acpi/sbs.c b/drivers/acpi/sbs.c
index 813ef32..22cb95b 100644
--- a/drivers/acpi/sbs.c
+++ b/drivers/acpi/sbs.c
@@ -533,7 +533,7 @@ static struct proc_dir_entry *acpi_battery_dir = NULL;
 
 static inline char *acpi_battery_units(struct acpi_battery *battery)
 {
-   return acpi_battery_mode(battery) ? " mWh" : " mAh";
+   return acpi_battery_mode(battery) ? " mW" : " mA";
 }
 
 
@@ -550,10 +550,10 @@ static int acpi_battery_read_info(struct seq_file *seq, 
void *offset)
if (!battery->present)
goto end;
 
-   seq_printf(seq, "design capacity: %i%s\n",
+   seq_printf(seq, "design capacity: %i%sh\n",
   battery->design_capacity * acpi_battery_scale(battery),
   acpi_battery_units(battery));
-   seq_printf(seq, "last full capacity:  %i%s\n",
+   seq_printf(seq, "last full capacity:  %i%sh\n",
   battery->full_charge_capacity * acpi_battery_scale(battery),
   acpi_battery_units(battery));
seq_printf(seq, "battery technology:  rechargeable\n");
@@ -584,7 +584,7 @@ static int acpi_battery_read_state(struct seq_file *seq, 
void *offset)
 {
struct acpi_battery *battery = seq->private;
struct acpi_sbs *sbs = battery->sbs;
-   int result = 0;
+   int rate;
 
mutex_lock(&sbs->lock);
seq_printf(seq, "present: %s\n",
@@ -598,9 +598,12 @@ static int acpi_battery_read_state(struct seq_file *seq, 
void *offset)
seq_printf(seq, "charging state:  %s\n",
   (battery->current_now < 0) ? "discharging" :
   ((battery->current_now > 0) ? "charging" : "charged"));
-   seq_printf(seq, "present rate:%d mA\n",
-  abs(battery->current_now) * acpi_battery_ipscale(battery));
-   seq_printf(seq, "remaining capacity:  %i%s\n",
+   rate = abs(battery->current_now) * acpi_battery_ipscale(battery);
+   rate *= (acpi_battery_mode(battery))?(battery->voltage_now *
+   acpi_battery_vscale(battery)/1000):1;
+   seq_printf(seq, "present rate:%d%s\n", rate,
+  acpi_battery_units(battery));
+   seq_printf(seq, "remaining capacity:  %i%sh\n",
   battery->capacity_now * acpi_battery_scale(battery),
   acpi_battery_units(battery));
seq_printf(seq, "present voltage: %i mV\n",
@@ -608,7 +611,7 @@ static int acpi_battery_read_state(struct seq_file *seq, 
void *offset)
 
   end:
mutex_unlock(&sbs->lock);
-   return result;
+   return 0;
 }
 
 static int acpi_battery_state_open_fs(struct inode *inode, struct file *file)
@@ -632,7 +635,7 @@ static int acpi_battery_read_alarm(struct seq_file *seq, 
void *offset)
acpi_battery_get_alarm(battery);
seq_printf(seq, "alarm:   ");
if (battery->alarm_capacity)
-   seq_printf(seq, "%i%s\n",
+   seq_printf(seq, "%i%sh\n",
   battery->alarm_capacity *
   acpi_battery_scale(battery),
   acpi_battery_units(battery));
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[MIPS] time: Delete weak definition of plat_time_init() due to gcc bug.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4037500ebcfd172a15aed40caa847c52e9906712
Commit: 4037500ebcfd172a15aed40caa847c52e9906712
Parent: d20e47e153dcfddca5a066ff0f8da2d1104d08ea
Author: Ralf Baechle <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 14 00:05:34 2007 +
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:30 2007 +

[MIPS] time: Delete weak definition of plat_time_init() due to gcc bug.

Frank Rowand <[EMAIL PROTECTED]> reports:

> In linux-2.6.24-rc4 the Toshiba RBTX4927 hangs on boot.
>
> The cause is that plat_time_init() from arch/mips/tx4927/common/
> tx4927_setup.c does not override the __weak plat_time_init() from
> arch/mips/kernel/time.c.  This is due to a compiler bug in gcc 4.1.1.  The
> bug is reported to not exist in earlier versions of gcc, and to be fixed 
in
> 4.1.2.  The problem is that the __weak plat_time_init() is empty and thus
> gets optimized out of existence (thus the linker is never given the option
> to replace the __weak function).

[ He meant the call to plat_time_init() from time_init() gets optimized 
away ]

> For more info on the gcc bug see
>
>http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27781
>
> The attached patch is one workaround.  Another possible workaround

[ His patch adds -fno-unit-at-a-time for time.c ]

> would be to change the __weak plat_time_init() to be a non-empty
> function.

The __weak definition of plat_time_init was only ever meant to be a
migration helper to keep platforms that don't have a plat_time_init
compiling.  A few greps says that all platforms now supply their own
plat_time_init() so the weak definition is no longer needed.  So I
instead delete it.

Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/kernel/time.c |4 
 1 files changed, 0 insertions(+), 4 deletions(-)

diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 5207542..1ecfbb7 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -109,10 +109,6 @@ void __cpuinit clockevent_set_clock(struct 
clock_event_device *cd,
cd->mult = (u32) temp;
 }
 
-void __init __weak plat_time_init(void)
-{
-}
-
 /*
  * This function exists in order to cause an error due to a duplicate
  * definition if platform code should have its own implementation.  The hook
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[MIPS] Ensure that ST0_FR is never set on a 32 bit kernel

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bbaf238b5f910f8f3dda4b96cf844f50b2dcc6fa
Commit: bbaf238b5f910f8f3dda4b96cf844f50b2dcc6fa
Parent: 4037500ebcfd172a15aed40caa847c52e9906712
Author: Chris Dearman <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 22:42:19 2007 +
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:30 2007 +

[MIPS] Ensure that ST0_FR is never set on a 32 bit kernel

Signed-off-by: Chris Dearman <[EMAIL PROTECTED]>
Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/kernel/process.c |3 +--
 arch/mips/kernel/traps.c   |6 +++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index 11cb264..2c09a44 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -77,9 +77,8 @@ void start_thread(struct pt_regs * regs, unsigned long pc, 
unsigned long sp)
unsigned long status;
 
/* New thread loses kernel privileges. */
-   status = regs->cp0_status & ~(ST0_CU0|ST0_CU1|KU_MASK);
+   status = regs->cp0_status & ~(ST0_CU0|ST0_CU1|ST0_FR|KU_MASK);
 #ifdef CONFIG_64BIT
-   status &= ~ST0_FR;
status |= test_thread_flag(TIF_32BIT_REGS) ? 0 : ST0_FR;
 #endif
status |= KU_USER;
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 23e73d0..fcae667 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1317,12 +1317,12 @@ void __init per_cpu_trap_init(void)
 #endif
if (current_cpu_data.isa_level == MIPS_CPU_ISA_IV)
status_set |= ST0_XX;
+   if (cpu_has_dsp)
+   status_set |= ST0_MX;
+

change_c0_status(ST0_CU|ST0_MX|ST0_RE|ST0_FR|ST0_BEV|ST0_TS|ST0_KX|ST0_SX|ST0_UX,
 status_set);
 
-   if (cpu_has_dsp)
-   set_c0_status(ST0_MX);
-
 #ifdef CONFIG_CPU_MIPSR2
if (cpu_has_mips_r2) {
unsigned int enable = 0x000f;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWERPC] iSeries: don't printk with HV spinlock held

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=88f0178e6ec2c73167de973e4af86905b4dbfd45
Commit: 88f0178e6ec2c73167de973e4af86905b4dbfd45
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Stephen Rothwell <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 14:58:12 2007 +1100
Committer:  Paul Mackerras <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 15:50:46 2007 +1100

[POWERPC] iSeries: don't printk with HV spinlock held

Printk was observed to hang during module unload due to a limited
window of characters that may be sent to the hypervisor.  The window
only reexpands when we receive an ack from the HV and the spinlock here
prevents us from ever processing that ack.  This fixes it by dropping
the lock before doing the printk, then looping back to the top to
reacquire the lock.

Signed-off-by: Stephen Rothwell <[EMAIL PROTECTED]>
Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>
---
 arch/powerpc/platforms/iseries/lpevents.c |   17 +++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/platforms/iseries/lpevents.c 
b/arch/powerpc/platforms/iseries/lpevents.c
index 34bdbbe..275f494 100644
--- a/arch/powerpc/platforms/iseries/lpevents.c
+++ b/arch/powerpc/platforms/iseries/lpevents.c
@@ -121,6 +121,7 @@ void process_hvlpevents(void)
 {
struct HvLpEvent * event;
 
+ restart:
/* If we have recursed, just return */
if (!spin_trylock(&hvlpevent_queue.hq_lock))
return;
@@ -146,8 +147,20 @@ void process_hvlpevents(void)
if (event->xType < HvLpEvent_Type_NumTypes &&
lpEventHandler[event->xType])
lpEventHandler[event->xType](event);
-   else
-   printk(KERN_INFO "Unexpected Lp Event 
type=%d\n", event->xType );
+   else {
+   u8 type = event->xType;
+
+   /*
+* Don't printk in the spinlock as printk
+* may require ack events form the HV to send
+* any characters there.
+*/
+   hvlpevent_clear_valid(event);
+   spin_unlock(&hvlpevent_queue.hq_lock);
+   printk(KERN_INFO
+   "Unexpected Lp Event type=%d\n", type);
+   goto restart;
+   }
 
hvlpevent_clear_valid(event);
} else if (hvlpevent_queue.hq_overflow_pending)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWERPC] Make PS3_SYS_MANAGER default y, not m

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eb8dc843fc3c0dbac553ec79d7e5b4d8339aeb3d
Commit: eb8dc843fc3c0dbac553ec79d7e5b4d8339aeb3d
Parent: 88f0178e6ec2c73167de973e4af86905b4dbfd45
Author: Michael Ellerman <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 15:17:43 2007 +1100
Committer:  Paul Mackerras <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 16:45:00 2007 +1100

[POWERPC] Make PS3_SYS_MANAGER default y, not m

Currently it's impossible to build a ps3_defconfig which will reboot
without modules installed. This makes it all too easy to find yourself
with a PS3 that won't reboot.

This is because the system manager driver, which provides the reboot
mechanism, is only selectable if PS3_ADVANCED is set, else it defaults
to m. In ps3_defconfig PS3_ADVANCED is not set, therefore the system
manager is built as a module.

It would be desirable IMHO for the defconfig to produce a kernel that
boots and reboots, without needing modules to be installed.

Signed-off-by: Michael Ellerman <[EMAIL PROTECTED]>
Acked-by: Geoff Levand <[EMAIL PROTECTED]>
Signed-off-by: Paul Mackerras <[EMAIL PROTECTED]>
---
 arch/powerpc/configs/ps3_defconfig |2 +-
 arch/powerpc/platforms/ps3/Kconfig |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/configs/ps3_defconfig 
b/arch/powerpc/configs/ps3_defconfig
index 5bd547e..0b5469f 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_defconfig
@@ -157,7 +157,7 @@ CONFIG_PS3_HTAB_SIZE=20
 CONFIG_PS3_USE_LPAR_ADDR=y
 CONFIG_PS3_VUART=y
 CONFIG_PS3_PS3AV=y
-CONFIG_PS3_SYS_MANAGER=m
+CONFIG_PS3_SYS_MANAGER=y
 CONFIG_PS3_STORAGE=y
 CONFIG_PS3_DISK=y
 CONFIG_PS3_ROM=y
diff --git a/arch/powerpc/platforms/ps3/Kconfig 
b/arch/powerpc/platforms/ps3/Kconfig
index 67144d1..298f1c9 100644
--- a/arch/powerpc/platforms/ps3/Kconfig
+++ b/arch/powerpc/platforms/ps3/Kconfig
@@ -91,7 +91,7 @@ config PS3_SYS_MANAGER
depends on PPC_PS3
tristate "PS3 System Manager driver" if PS3_ADVANCED
select PS3_VUART
-   default m
+   default y
help
  Include support for the PS3 System Manager.
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[MIPS] Alchemy: fix off by two error in __fixup_bigphys_addr()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b87bb40b62310328e908d580e013e0575b05886c
Commit: b87bb40b62310328e908d580e013e0575b05886c
Parent: dd99d9661c72fe251b842705f2e7cfaa4918a13c
Author: Sergei Shtylyov <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 20:36:50 2007 +0300
Committer:  Ralf Baechle <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 17:34:29 2007 +

[MIPS] Alchemy: fix off by two error in __fixup_bigphys_addr()

the PCI specific code in this function doesn't check for the address range
being under the upper bound of the PCI memory window correctly -- fix this,
somewhat beautifying the code around the check, while at it...

Signed-off-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Ralf Baechle <[EMAIL PROTECTED]>
---
 arch/mips/au1000/common/setup.c |9 -
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c
index a90d425..d885e38 100644
--- a/arch/mips/au1000/common/setup.c
+++ b/arch/mips/au1000/common/setup.c
@@ -137,12 +137,11 @@ phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size)
 
 #ifdef CONFIG_PCI
{
-   u32 start, end;
+   u32 start = (u32)Au1500_PCI_MEM_START;
+   u32 end   = (u32)Au1500_PCI_MEM_END;
 
-   start = (u32)Au1500_PCI_MEM_START;
-   end = (u32)Au1500_PCI_MEM_END;
-   /* check for pci memory window */
-   if ((phys_addr >= start) && ((phys_addr + size) < end))
+   /* Check for PCI memory window */
+   if (phys_addr >= start && (phys_addr + size - 1) <= end)
return (phys_t)
   ((phys_addr - start) + Au1500_PCI_MEM_START);
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWERPC] Fix typo #ifdef -> #ifndef

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=075b9cd66236191e8f5ce1668e0a601caa8c3570
Commit: 075b9cd66236191e8f5ce1668e0a601caa8c3570
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Jochen Friedrich <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 22 17:53:47 2007 +0100
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 22:44:09 2007 -0600

[POWERPC] Fix typo #ifdef -> #ifndef

fpi->cp_command should be overwritten only if CONFIG_PPC_CPM_NEW_BINDING
is NOT set. Otherwise it is already set from the device tree.

Signed-off-by: Jochen Friedrich <[EMAIL PROTECTED]>
Cc: Paul Mackerras <[EMAIL PROTECTED]>
Cc: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
Cc: Jeff Garzik <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Vitaly Bordug <[EMAIL PROTECTED]>
Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 drivers/net/fs_enet/mac-scc.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/fs_enet/mac-scc.c b/drivers/net/fs_enet/mac-scc.c
index 03134f4..48f2f30 100644
--- a/drivers/net/fs_enet/mac-scc.c
+++ b/drivers/net/fs_enet/mac-scc.c
@@ -158,7 +158,7 @@ static int setup_data(struct net_device *dev)
 {
struct fs_enet_private *fep = netdev_priv(dev);
 
-#ifdef CONFIG_PPC_CPM_NEW_BINDING
+#ifndef CONFIG_PPC_CPM_NEW_BINDING
struct fs_platform_info *fpi = fep->fpi;
 
fep->scc.idx = fs_get_scc_index(fpi->fs_no);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWERPC] Kill non-existent symbols from ksyms and commproc.h

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ac68d379e73e469b62149ee2dcc19547d3d992c
Commit: 9ac68d379e73e469b62149ee2dcc19547d3d992c
Parent: 075b9cd66236191e8f5ce1668e0a601caa8c3570
Author: Jochen Friedrich <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 22 17:53:54 2007 +0100
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 22:44:28 2007 -0600

[POWERPC] Kill non-existent symbols from ksyms and commproc.h

Remove exports of __res and cpm_install_handler/cpm_free_handler.  Remove
cpm_install_handler/cpm_free_handler from the commproc.h as well.  Both
were used for ARCH=ppc and aren't defined for ARCH=powerpc.

CC  arch/powerpc/kernel/ppc_ksyms.o
arch/powerpc/kernel/ppc_ksyms.c:180: error: '__res' undeclared here (not in 
a function)
arch/powerpc/kernel/ppc_ksyms.c:180: warning: type defaults to 'int' in 
declaration of '__res'
make[1]: *** [arch/powerpc/kernel/ppc_ksyms.o] Error 1
make: *** [arch/powerpc/kernel] Error 2

LD  .tmp_vmlinux1
arch/powerpc/kernel/built-in.o:(__ksymtab+0x198): undefined reference to 
`cpm_free_handler'
arch/powerpc/kernel/built-in.o:(__ksymtab+0x1a0): undefined reference to 
`cpm_install_handler'
make: *** [.tmp_vmlinux1] Error 1

Signed-off-by: Jochen Friedrich <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Vitaly Bordug <[EMAIL PROTECTED]>
Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 arch/powerpc/kernel/ppc_ksyms.c |   12 
 include/asm-powerpc/commproc.h  |3 ---
 2 files changed, 0 insertions(+), 15 deletions(-)

diff --git a/arch/powerpc/kernel/ppc_ksyms.c b/arch/powerpc/kernel/ppc_ksyms.c
index c6b1aa3..13ebeb2 100644
--- a/arch/powerpc/kernel/ppc_ksyms.c
+++ b/arch/powerpc/kernel/ppc_ksyms.c
@@ -45,10 +45,6 @@
 #include 
 #include 
 
-#ifdef  CONFIG_8xx
-#include 
-#endif
-
 #ifdef CONFIG_PPC64
 EXPORT_SYMBOL(local_irq_restore);
 #endif
@@ -172,14 +168,6 @@ EXPORT_SYMBOL(console_drivers);
 EXPORT_SYMBOL(cacheable_memcpy);
 #endif
 
-#ifdef  CONFIG_8xx
-EXPORT_SYMBOL(cpm_install_handler);
-EXPORT_SYMBOL(cpm_free_handler);
-#endif /* CONFIG_8xx */
-#if defined(CONFIG_8xx)
-EXPORT_SYMBOL(__res);
-#endif
-
 #ifdef CONFIG_PPC32
 EXPORT_SYMBOL(next_mmu_context);
 EXPORT_SYMBOL(set_context);
diff --git a/include/asm-powerpc/commproc.h b/include/asm-powerpc/commproc.h
index a2328b8..2ee59d7 100644
--- a/include/asm-powerpc/commproc.h
+++ b/include/asm-powerpc/commproc.h
@@ -698,9 +698,6 @@ typedef struct risc_timer_pram {
 #define CICR_IEN   ((uint)0x0080)  /* Int. enable */
 #define CICR_SPS   ((uint)0x0001)  /* SCC Spread */
 
-extern void cpm_install_handler(int vec, void (*handler)(void *), void 
*dev_id);
-extern void cpm_free_handler(int vec);
-
 #define IMAP_ADDR  (get_immrbase())
 
 #define CPM_PIN_INPUT 0
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWRPC] CPM2: Eliminate section mismatch warning in cpm2_reset().

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd2150bca97822609fabbb77063a1a20149f5657
Commit: cd2150bca97822609fabbb77063a1a20149f5657
Parent: 9ac68d379e73e469b62149ee2dcc19547d3d992c
Author: Scott Wood <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 16:54:32 2007 -0600
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 22:44:38 2007 -0600

[POWRPC] CPM2: Eliminate section mismatch warning in cpm2_reset().

Signed-off-by: Scott Wood <[EMAIL PROTECTED]>
Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 arch/powerpc/sysdev/cpm2_common.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/sysdev/cpm2_common.c 
b/arch/powerpc/sysdev/cpm2_common.c
index 859362f..c1d8240 100644
--- a/arch/powerpc/sysdev/cpm2_common.c
+++ b/arch/powerpc/sysdev/cpm2_common.c
@@ -61,8 +61,7 @@ cpm2_map_t __iomem *cpm2_immr;
   of space for CPM as it is larger
   than on PQ2 */
 
-void
-cpm2_reset(void)
+void __init cpm2_reset(void)
 {
 #ifdef CONFIG_PPC_85xx
cpm2_immr = ioremap(CPM_MAP_ADDR, CPM_MAP_SIZE);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWERPC] 82xx: mpc8272ads, pq2fads: Update defconfig with CONFIG_FS_ENET_MDIO_FCC

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e8b5f43f7b572a898c7b17e9949b26e7362e7f31
Commit: e8b5f43f7b572a898c7b17e9949b26e7362e7f31
Parent: cd2150bca97822609fabbb77063a1a20149f5657
Author: Scott Wood <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 11:10:45 2007 -0600
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 22:44:49 2007 -0600

[POWERPC] 82xx: mpc8272ads, pq2fads: Update defconfig with 
CONFIG_FS_ENET_MDIO_FCC

This was recently made configurable, and needs to be set for these boards.

Signed-off-by: Scott Wood <[EMAIL PROTECTED]>
Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 arch/powerpc/configs/mpc8272_ads_defconfig |6 +++---
 arch/powerpc/configs/pq2fads_defconfig |6 +++---
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig 
b/arch/powerpc/configs/mpc8272_ads_defconfig
index a31b7a0..5eae305 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_defconfig
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.24-rc4
-# Thu Dec  6 16:48:30 2007
+# Linux kernel version: 2.6.24-rc5
+# Thu Dec 13 22:40:57 2007
 #
 # CONFIG_PPC64 is not set
 
@@ -491,7 +491,7 @@ CONFIG_MII=y
 CONFIG_FS_ENET=y
 # CONFIG_FS_ENET_HAS_SCC is not set
 CONFIG_FS_ENET_HAS_FCC=y
-# CONFIG_FS_ENET_MDIO_FCC is not set
+CONFIG_FS_ENET_MDIO_FCC=y
 CONFIG_NETDEV_1000=y
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig 
b/arch/powerpc/configs/pq2fads_defconfig
index 142d206..a3bfbb6 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_defconfig
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.24-rc4
-# Thu Dec  6 16:49:09 2007
+# Linux kernel version: 2.6.24-rc5
+# Thu Dec 13 22:39:18 2007
 #
 # CONFIG_PPC64 is not set
 
@@ -548,7 +548,7 @@ CONFIG_MII=y
 CONFIG_FS_ENET=y
 # CONFIG_FS_ENET_HAS_SCC is not set
 CONFIG_FS_ENET_HAS_FCC=y
-# CONFIG_FS_ENET_MDIO_FCC is not set
+CONFIG_FS_ENET_MDIO_FCC=y
 CONFIG_NETDEV_1000=y
 # CONFIG_ACENIC is not set
 # CONFIG_DL2K is not set
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[POWERPC] Fix rounding bug in emulation for double float operating

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c89686210542f6946e48a907772a356b9fce03f0
Commit: c89686210542f6946e48a907772a356b9fce03f0
Parent: e8b5f43f7b572a898c7b17e9949b26e7362e7f31
Author: Liu Yu <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 13:00:52 2007 +0800
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 22:59:00 2007 -0600

[POWERPC] Fix rounding bug in emulation for double float operating

This patch fixes rounding bug in emulation for double float operating on 
PowerPC platform.

When pack double float operand, it need to truncate the tail due to the 
limited precision.
If the truncated part is not zero, the last bit of work bit (totally 3 
bits) need to '|' 1.

This patch is completed in _FP_FRAC_SRS_2(X,N,sz) 
(arch/powerpc/math-emu/op-2.h).
Originally the code leftwards rotates the operand to just keep the 
truncated part,
then check whether it is zero. However, the number it rotates is not 
correct when
N is not smaller than _FP_W_TYPE_SIZE, and it will cause the work bit '|' 1 
in the improper case.

This patch fixes this issue.

Signed-off-by: Liu Yu <[EMAIL PROTECTED]>
Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 arch/powerpc/math-emu/op-2.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/math-emu/op-2.h b/arch/powerpc/math-emu/op-2.h
index b9b06b4..7d6f17c 100644
--- a/arch/powerpc/math-emu/op-2.h
+++ b/arch/powerpc/math-emu/op-2.h
@@ -59,7 +59,8 @@
 else   \
   {
\
X##_f0 = (X##_f1 >> ((N) - _FP_W_TYPE_SIZE) |   \
- (((X##_f1 << (sz - (N))) | X##_f0) != 0));\
+ (((X##_f1 << (2 * _FP_W_TYPE_SIZE - (N))) |   \
+  X##_f0) != 0));  \
X##_f1 = 0; \
   }
\
   } while (0)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[S390] pud_present/pmd_present bug.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d01792300c4d7425eabac9095c603cdb411d2a5
Commit: 0d01792300c4d7425eabac9095c603cdb411d2a5
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Martin Schwidefsky <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 17 16:25:48 2007 +0100
Committer:  Martin Schwidefsky <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 16:25:56 2007 +0100

[S390] pud_present/pmd_present bug.

Git commit 3610cce87af0693603db171d5b6f6735f5e3dc5b (yeah my own :-/)
introduced a bug in regard to pud/pmd table entries.
If the address of the page table refered to by a pud/pmd value happens
to have zeroes in the lower 32 bits, pud_present and pmd_present return
false. The obvious effect is that this triggers the BUG_ON in exit_mmap
because some ptes will not get released on process end.  Worse is that
the next fault for memory covered by that pud/pmd will allocate another
pmd/pte table and populate the pud/pmd entry. The old page table
entries hanging below this entry are lost!

The fix is simple, properly check against 0. The check is added for
pud_none/pmd_none as well even if these two functions work because
the invalid bit is in the lower 32 bits.

Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---
 include/asm-s390/pgtable.h |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/asm-s390/pgtable.h b/include/asm-s390/pgtable.h
index f2cc25b..1f530f8 100644
--- a/include/asm-s390/pgtable.h
+++ b/include/asm-s390/pgtable.h
@@ -453,12 +453,12 @@ static inline int pgd_bad(pgd_t pgd)   { return 0; }
 
 static inline int pud_present(pud_t pud)
 {
-   return pud_val(pud) & _REGION_ENTRY_ORIGIN;
+   return (pud_val(pud) & _REGION_ENTRY_ORIGIN) != 0UL;
 }
 
 static inline int pud_none(pud_t pud)
 {
-   return pud_val(pud) & _REGION_ENTRY_INV;
+   return (pud_val(pud) & _REGION_ENTRY_INV) != 0UL;
 }
 
 static inline int pud_bad(pud_t pud)
@@ -471,12 +471,12 @@ static inline int pud_bad(pud_t pud)
 
 static inline int pmd_present(pmd_t pmd)
 {
-   return pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN;
+   return (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN) != 0UL;
 }
 
 static inline int pmd_none(pmd_t pmd)
 {
-   return pmd_val(pmd) & _SEGMENT_ENTRY_INV;
+   return (pmd_val(pmd) & _SEGMENT_ENTRY_INV) != 0UL;
 }
 
 static inline int pmd_bad(pmd_t pmd)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC64]: Fix two kernel linear mapping setup bugs.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f361453d8e9a67c85b2cf9b93c642c2d8fe0462
Commit: 8f361453d8e9a67c85b2cf9b93c642c2d8fe0462
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: David S. Miller <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 06:13:38 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 06:13:38 2007 -0800

[SPARC64]: Fix two kernel linear mapping setup bugs.

This was caught and identified by Greg Onufer.

Since we setup the 256M/4M bitmap table after taking over the trap
table, it's possible for some 4M mapping to get loaded in the TLB
beforhand which later will be 256M mappings.

This can cause illegal TLB multiple-match conditions.  Fix this by
setting up the bitmap before we take over the trap table.

Next, __flush_tlb_all() was not doing anything on hypervisor
platforms.  Fix by adding sun4v_mmu_demap_all() and calling it.

Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 arch/sparc64/kernel/entry.S  |   12 
 arch/sparc64/mm/init.c   |   29 -
 include/asm-sparc64/hypervisor.h |4 
 3 files changed, 36 insertions(+), 9 deletions(-)

diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
index c9b0d7a..ea257e8 100644
--- a/arch/sparc64/kernel/entry.S
+++ b/arch/sparc64/kernel/entry.S
@@ -2593,3 +2593,15 @@ sun4v_mmustat_info:
retl
 nop
.size   sun4v_mmustat_info, .-sun4v_mmustat_info
+
+   .globl  sun4v_mmu_demap_all
+   .type   sun4v_mmu_demap_all,#function
+sun4v_mmu_demap_all:
+   clr %o0
+   clr %o1
+   mov HV_MMU_ALL, %o2
+   mov HV_FAST_MMU_DEMAP_ALL, %o5
+   ta  HV_FAST_TRAP
+   retl
+nop
+   .size   sun4v_mmu_demap_all, .-sun4v_mmu_demap_all
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index e18ccf8..fbeb55d 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1133,14 +1133,9 @@ static void __init mark_kpte_bitmap(unsigned long start, 
unsigned long end)
}
 }
 
-static void __init kernel_physical_mapping_init(void)
+static void __init init_kpte_bitmap(void)
 {
unsigned long i;
-#ifdef CONFIG_DEBUG_PAGEALLOC
-   unsigned long mem_alloced = 0UL;
-#endif
-
-   read_obp_memory("reg", &pall[0], &pall_ents);
 
for (i = 0; i < pall_ents; i++) {
unsigned long phys_start, phys_end;
@@ -1149,14 +1144,24 @@ static void __init kernel_physical_mapping_init(void)
phys_end = phys_start + pall[i].reg_size;
 
mark_kpte_bitmap(phys_start, phys_end);
+   }
+}
 
+static void __init kernel_physical_mapping_init(void)
+{
 #ifdef CONFIG_DEBUG_PAGEALLOC
+   unsigned long i, mem_alloced = 0UL;
+
+   for (i = 0; i < pall_ents; i++) {
+   unsigned long phys_start, phys_end;
+
+   phys_start = pall[i].phys_addr;
+   phys_end = phys_start + pall[i].reg_size;
+
mem_alloced += kernel_map_range(phys_start, phys_end,
PAGE_KERNEL);
-#endif
}
 
-#ifdef CONFIG_DEBUG_PAGEALLOC
printk("Allocated %ld bytes for kernel page tables.\n",
   mem_alloced);
 
@@ -1398,6 +1403,10 @@ void __init paging_init(void)

inherit_prom_mappings();

+   read_obp_memory("reg", &pall[0], &pall_ents);
+
+   init_kpte_bitmap();
+
/* Ok, we can use our TLB miss and window trap handlers safely.  */
setup_tba();
 
@@ -1904,7 +1913,9 @@ void __flush_tlb_all(void)
 "wrpr  %0, %1, %%pstate"
 : "=r" (pstate)
 : "i" (PSTATE_IE));
-   if (tlb_type == spitfire) {
+   if (tlb_type == hypervisor) {
+   sun4v_mmu_demap_all();
+   } else if (tlb_type == spitfire) {
for (i = 0; i < 64; i++) {
/* Spitfire Errata #32 workaround */
/* NOTE: Always runs on spitfire, so no
diff --git a/include/asm-sparc64/hypervisor.h b/include/asm-sparc64/hypervisor.h
index 524d498..3ad45df 100644
--- a/include/asm-sparc64/hypervisor.h
+++ b/include/asm-sparc64/hypervisor.h
@@ -709,6 +709,10 @@ extern unsigned long sun4v_mmu_tsb_ctx0(unsigned long 
num_descriptions,
  */
 #define HV_FAST_MMU_DEMAP_ALL  0x24
 
+#ifndef __ASSEMBLY__
+extern void sun4v_mmu_demap_all(void);
+#endif
+
 /* mmu_map_perm_addr()
  * TRAP:   HV_FAST_TRAP
  * FUNCTION:   HV_FAST_MMU_MAP_PERM_ADDR
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SPARC32]: Silence sparc32 warnings on missing syscalls.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e6e0a94573fb33e6e62b848a24864e6864c45464
Commit: e6e0a94573fb33e6e62b848a24864e6864c45464
Parent: 8f361453d8e9a67c85b2cf9b93c642c2d8fe0462
Author: Martin Habets <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 14 10:59:50 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 10:59:50 2007 -0800

[SPARC32]: Silence sparc32 warnings on missing syscalls.

Silence sparc32 warnings on missing syscalls, these won't be added.
This patch is based on this mail:
http://www.mail-archive.com/[EMAIL PROTECTED]/msg02571.html

Signed-off-by: Martin Habets <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/asm-sparc/unistd.h |9 +
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h
index 029b3e0..0decdf7 100644
--- a/include/asm-sparc/unistd.h
+++ b/include/asm-sparc/unistd.h
@@ -333,6 +333,15 @@
 
 #define NR_SYSCALLS315
 
+/* Sparc 32-bit only has the "setresuid32", "getresuid32" variants,
+ * it never had the plain ones and there is no value to adding those
+ * old versions into the syscall table.
+ */
+#define __IGNORE_setresuid
+#define __IGNORE_getresuid
+#define __IGNORE_setresgid
+#define __IGNORE_getresgid
+
 #ifdef __KERNEL__
 #define __ARCH_WANT_IPC_PARSE_VERSION
 #define __ARCH_WANT_OLD_READDIR
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NETFILTER]: ctnetlink: set expected bit for related conntracks

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f2a89004da23a5ed2d78ac5550ccda5b714fe7d0
Commit: f2a89004da23a5ed2d78ac5550ccda5b714fe7d0
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Pablo Neira Ayuso <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 10:34:29 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:33 2007 -0800

[NETFILTER]: ctnetlink: set expected bit for related conntracks

This patch is a fix. It sets IPS_EXPECTED for related conntracks.

Signed-off-by: Pablo Neira Ayuso <[EMAIL PROTECTED]>
Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/netfilter/nf_conntrack_netlink.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/net/netfilter/nf_conntrack_netlink.c 
b/net/netfilter/nf_conntrack_netlink.c
index 9be1826..7d23124 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -1024,8 +1024,10 @@ ctnetlink_create_conntrack(struct nlattr *cda[],
}
 
/* setup master conntrack: this is a confirmed expectation */
-   if (master_ct)
+   if (master_ct) {
+   __set_bit(IPS_EXPECTED_BIT, &ct->status);
ct->master = master_ct;
+   }
 
add_timer(&ct->timeout);
nf_conntrack_hash_insert(ct);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NETFILTER]: ip_tables: fix compat copy race

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a18aa31b7774d8b36048e256a02d9d689533fc96
Commit: a18aa31b7774d8b36048e256a02d9d689533fc96
Parent: f2a89004da23a5ed2d78ac5550ccda5b714fe7d0
Author: Patrick McHardy <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 10:35:16 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:35 2007 -0800

[NETFILTER]: ip_tables: fix compat copy race

When copying entries to user, the kernel makes two passes through the
data, first copying all the entries, then fixing up names and counters.
On the second pass it copies the kernel and match data from userspace
to the kernel again to find the corresponding structures, expecting
that kernel pointers contained in the data are still valid.

This is obviously broken, fix by avoiding the second pass completely
and fixing names and counters while dumping the ruleset, using the
kernel-internal data structures.

Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv4/netfilter/ip_tables.c |   57 ---
 net/netfilter/x_tables.c   |8 -
 2 files changed, 18 insertions(+), 47 deletions(-)

diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
index 4b10b98..b9b189c 100644
--- a/net/ipv4/netfilter/ip_tables.c
+++ b/net/ipv4/netfilter/ip_tables.c
@@ -1492,8 +1492,10 @@ static inline int compat_copy_match_to_user(struct 
ipt_entry_match *m,
return xt_compat_match_to_user(m, dstptr, size);
 }
 
-static int compat_copy_entry_to_user(struct ipt_entry *e,
-   void __user **dstptr, compat_uint_t *size)
+static int
+compat_copy_entry_to_user(struct ipt_entry *e, void __user **dstptr,
+ compat_uint_t *size, struct xt_counters *counters,
+ unsigned int *i)
 {
struct ipt_entry_target *t;
struct compat_ipt_entry __user *ce;
@@ -1507,6 +1509,9 @@ static int compat_copy_entry_to_user(struct ipt_entry *e,
if (copy_to_user(ce, e, sizeof(struct ipt_entry)))
goto out;
 
+   if (copy_to_user(&ce->counters, &counters[*i], sizeof(counters[*i])))
+   goto out;
+
*dstptr += sizeof(struct compat_ipt_entry);
ret = IPT_MATCH_ITERATE(e, compat_copy_match_to_user, dstptr, size);
target_offset = e->target_offset - (origsize - *size);
@@ -1522,6 +1527,8 @@ static int compat_copy_entry_to_user(struct ipt_entry *e,
goto out;
if (put_user(next_offset, &ce->next_offset))
goto out;
+
+   (*i)++;
return 0;
 out:
return ret;
@@ -1937,14 +1944,13 @@ struct compat_ipt_get_entries
 static int compat_copy_entries_to_user(unsigned int total_size,
 struct xt_table *table, void __user *userptr)
 {
-   unsigned int off, num;
-   struct compat_ipt_entry e;
struct xt_counters *counters;
struct xt_table_info *private = table->private;
void __user *pos;
unsigned int size;
int ret = 0;
void *loc_cpu_entry;
+   unsigned int i = 0;
 
counters = alloc_counters(table);
if (IS_ERR(counters))
@@ -1958,48 +1964,9 @@ static int compat_copy_entries_to_user(unsigned int 
total_size,
pos = userptr;
size = total_size;
ret = IPT_ENTRY_ITERATE(loc_cpu_entry, total_size,
-   compat_copy_entry_to_user, &pos, &size);
-   if (ret)
-   goto free_counters;
-
-   /* ... then go back and fix counters and names */
-   for (off = 0, num = 0; off < size; off += e.next_offset, num++) {
-   unsigned int i;
-   struct ipt_entry_match m;
-   struct ipt_entry_target t;
+   compat_copy_entry_to_user,
+   &pos, &size, counters, &i);
 
-   ret = -EFAULT;
-   if (copy_from_user(&e, userptr + off,
-   sizeof(struct compat_ipt_entry)))
-   goto free_counters;
-   if (copy_to_user(userptr + off +
-   offsetof(struct compat_ipt_entry, counters),
-&counters[num], sizeof(counters[num])))
-   goto free_counters;
-
-   for (i = sizeof(struct compat_ipt_entry);
-   i < e.target_offset; i += m.u.match_size) {
-   if (copy_from_user(&m, userptr + off + i,
-   sizeof(struct ipt_entry_match)))
-   goto free_counters;
-   if (copy_to_user(userptr + off + i +
-   offsetof(struct ipt_entry_match, u.user.name),
-   m.u.kernel.match->name,
-   s

[XFRM]: Display the audited SPI value in host byte order.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ab4c954ce2b2b3c485bee7e425fda05946893be
Commit: 9ab4c954ce2b2b3c485bee7e425fda05946893be
Parent: a18aa31b7774d8b36048e256a02d9d689533fc96
Author: Paul Moore <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 11:10:16 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:35 2007 -0800

[XFRM]: Display the audited SPI value in host byte order.

Currently the IPsec protocol SPI values are written to the audit log in
network byte order which is different from almost all other values which
are recorded in host byte order.  This patch corrects this inconsistency
by writing the SPI values to the audit record in host byte order.

Signed-off-by: Paul Moore <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/xfrm/xfrm_state.c |   10 ++
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index cf43c49..1af522b 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -2028,6 +2028,7 @@ void
 xfrm_audit_state_add(struct xfrm_state *x, int result, u32 auid, u32 sid)
 {
struct audit_buffer *audit_buf;
+   u32 spi;
extern int audit_enabled;
 
if (audit_enabled == 0)
@@ -2037,8 +2038,8 @@ xfrm_audit_state_add(struct xfrm_state *x, int result, 
u32 auid, u32 sid)
return;
audit_log_format(audit_buf, " op=SAD-add res=%u",result);
xfrm_audit_common_stateinfo(x, audit_buf);
-   audit_log_format(audit_buf, " spi=%lu(0x%lx)",
-(unsigned long)x->id.spi, (unsigned long)x->id.spi);
+   spi = ntohl(x->id.spi);
+   audit_log_format(audit_buf, " spi=%u(0x%x)", spi, spi);
audit_log_end(audit_buf);
 }
 EXPORT_SYMBOL_GPL(xfrm_audit_state_add);
@@ -2047,6 +2048,7 @@ void
 xfrm_audit_state_delete(struct xfrm_state *x, int result, u32 auid, u32 sid)
 {
struct audit_buffer *audit_buf;
+   u32 spi;
extern int audit_enabled;
 
if (audit_enabled == 0)
@@ -2056,8 +2058,8 @@ xfrm_audit_state_delete(struct xfrm_state *x, int result, 
u32 auid, u32 sid)
return;
audit_log_format(audit_buf, " op=SAD-delete res=%u",result);
xfrm_audit_common_stateinfo(x, audit_buf);
-   audit_log_format(audit_buf, " spi=%lu(0x%lx)",
-(unsigned long)x->id.spi, (unsigned long)x->id.spi);
+   spi = ntohl(x->id.spi);
+   audit_log_format(audit_buf, " spi=%u(0x%x)", spi, spi);
audit_log_end(audit_buf);
 }
 EXPORT_SYMBOL_GPL(xfrm_audit_state_delete);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[NETFILTER]: xt_hashlimit should use time_after_eq()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cbebc51f7b77d26ec23145d6ef22ac2b209f7955
Commit: cbebc51f7b77d26ec23145d6ef22ac2b209f7955
Parent: 9ab4c954ce2b2b3c485bee7e425fda05946893be
Author: Eric Dumazet <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 11:11:28 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:36 2007 -0800

[NETFILTER]: xt_hashlimit should use time_after_eq()

In order to avoid jiffies wraparound and its effect, special care must
be taken
when doing comparisons ...

Signed-off-by: Eric Dumazet <[EMAIL PROTECTED]>
Acked-by: Patrick McHardy <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/netfilter/xt_hashlimit.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index 1910367..2ef44d8 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -240,7 +240,7 @@ static bool select_all(const struct xt_hashlimit_htable *ht,
 static bool select_gc(const struct xt_hashlimit_htable *ht,
  const struct dsthash_ent *he)
 {
-   return jiffies >= he->expires;
+   return time_after_eq(jiffies, he->expires);
 }
 
 static void htable_selective_cleanup(struct xt_hashlimit_htable *ht,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[TIPC]: Fix semaphore handling.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=98eb5683fb94c458b3c8d121797bc9aa1baf4e7e
Commit: 98eb5683fb94c458b3c8d121797bc9aa1baf4e7e
Parent: cbebc51f7b77d26ec23145d6ef22ac2b209f7955
Author: Andrew Morton <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 11:24:19 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:37 2007 -0800

[TIPC]: Fix semaphore handling.

As noted by Kevin, tipc's release() does down_interruptible() and
ignores the return value.  So if signal_pending() we'll end up doing
up() on a non-downed semaphore.  Fix.

Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/tipc/socket.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 6b79226..24ddfd2 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -253,7 +253,7 @@ static int release(struct socket *sock)
dbg("sock_delete: %x\n",tsock);
if (!tsock)
return 0;
-   down_interruptible(&tsock->sem);
+   down(&tsock->sem);
if (!sock->sk) {
up(&tsock->sem);
return 0;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SYNCPPP]: Endianness and 64bit fixes.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6f229d76b4c4a7fae601ea9398b23c2b426ab3b9
Commit: 6f229d76b4c4a7fae601ea9398b23c2b426ab3b9
Parent: 98eb5683fb94c458b3c8d121797bc9aa1baf4e7e
Author: Al Viro <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 18:50:18 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:38 2007 -0800

[SYNCPPP]: Endianness and 64bit fixes.

* trivial annotations
* long != 32bit, use __be32
* wrong endianness in sending CISCO_ADDR_REPLY

Signed-off-by: Al Viro <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/net/wan/syncppp.c |   35 +--
 1 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/drivers/net/wan/syncppp.c b/drivers/net/wan/syncppp.c
index 232ecba..61e24b7 100644
--- a/drivers/net/wan/syncppp.c
+++ b/drivers/net/wan/syncppp.c
@@ -107,24 +107,24 @@
 struct ppp_header {
u8 address;
u8 control;
-   u16 protocol;
+   __be16 protocol;
 };
 #define PPP_HEADER_LEN  sizeof (struct ppp_header)
 
 struct lcp_header {
u8 type;
u8 ident;
-   u16 len;
+   __be16 len;
 };
 #define LCP_HEADER_LEN  sizeof (struct lcp_header)
 
 struct cisco_packet {
-   u32 type;
-   u32 par1;
-   u32 par2;
-   u16 rel;
-   u16 time0;
-   u16 time1;
+   __be32 type;
+   __be32 par1;
+   __be32 par2;
+   __be16 rel;
+   __be16 time0;
+   __be16 time1;
 };
 #define CISCO_PACKET_LEN 18
 #define CISCO_BIG_PACKET_LEN 20
@@ -139,7 +139,7 @@ static struct sk_buff_head tx_queue;
 static void sppp_keepalive (unsigned long dummy);
 static void sppp_cp_send (struct sppp *sp, u16 proto, u8 type,
u8 ident, u16 len, void *data);
-static void sppp_cisco_send (struct sppp *sp, int type, long par1, long par2);
+static void sppp_cisco_send (struct sppp *sp, int type, u32 par1, u32 par2);
 static void sppp_lcp_input (struct sppp *sp, struct sk_buff *m);
 static void sppp_cisco_input (struct sppp *sp, struct sk_buff *m);
 static void sppp_ipcp_input (struct sppp *sp, struct sk_buff *m);
@@ -447,7 +447,7 @@ static void sppp_keepalive (unsigned long dummy)
sppp_cisco_send (sp, CISCO_KEEPALIVE_REQ, ++sp->pp_seq,
sp->pp_rseq);
else if (sp->lcp.state == LCP_STATE_OPENED) {
-   long nmagic = htonl (sp->lcp.magic);
+   __be32 nmagic = htonl (sp->lcp.magic);
sp->lcp.echoid = ++sp->pp_seq;
sppp_cp_send (sp, PPP_LCP, LCP_ECHO_REQ,
sp->lcp.echoid, 4, &nmagic);
@@ -667,7 +667,7 @@ badreq:
dev->name, len);
break;
}
-   if (ntohl (*(long*)(h+1)) == sp->lcp.magic) {
+   if (ntohl (*(__be32*)(h+1)) == sp->lcp.magic) {
/* Line loopback mode detected. */
printk (KERN_WARNING "%s: loopback\n", dev->name);
if_down (dev);
@@ -680,7 +680,7 @@ badreq:
sppp_lcp_open (sp);
break;
}
-   *(long*)(h+1) = htonl (sp->lcp.magic);
+   *(__be32 *)(h+1) = htonl (sp->lcp.magic);
sppp_cp_send (sp, PPP_LCP, LCP_ECHO_REPLY, h->ident, len-4, 
h+1);
break;
case LCP_ECHO_REPLY:
@@ -692,7 +692,7 @@ badreq:
dev->name, len);
break;
}
-   if (ntohl (*(long*)(h+1)) != sp->lcp.magic)
+   if (ntohl(*(__be32 *)(h+1)) != sp->lcp.magic)
sp->pp_alivecnt = 0;
break;
}
@@ -765,7 +765,7 @@ static void sppp_cisco_input (struct sppp *sp, struct 
sk_buff *skb)
{
struct in_device *in_dev;
struct in_ifaddr *ifa;
-   __be32 addr = 0, mask = ~0; /* FIXME: is the mask correct? */
+   __be32 addr = 0, mask = htonl(~0U); /* FIXME: is the mask 
correct? */
 #ifdef CONFIG_INET
rcu_read_lock();
if ((in_dev = __in_dev_get_rcu(dev)) != NULL)
@@ -782,8 +782,7 @@ static void sppp_cisco_input (struct sppp *sp, struct 
sk_buff *skb)
}
rcu_read_unlock();
 #endif 
-   /* I hope both addr and mask are in the net order */
-   sppp_cisco_send (sp, CISCO_ADDR_REPLY, addr, mask);
+   sppp_cisco_send (sp, CISCO_ADDR_REPLY, ntohl(addr), 
ntohl(mask));
break;
}
}
@@ -844,7 +843,7 @@ static void sppp_cp_send (struct sppp *sp, u16 proto, u8 
type,
  * Send Cisco keepalive packet.
  */
 
-static void sppp_cisco_send (struct sppp *sp, int type, 

[NETFILTER]: bridge: fix missing link layer headers on outgoing routed packets

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4a9ecd5960e6a7814f6e3405807d49010ffe3a88
Commit: 4a9ecd5960e6a7814f6e3405807d49010ffe3a88
Parent: 6f229d76b4c4a7fae601ea9398b23c2b426ab3b9
Author: Patrick McHardy <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 09:32:04 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:39 2007 -0800

[NETFILTER]: bridge: fix missing link layer headers on outgoing routed 
packets

As reported by Damien Thebault, the double POSTROUTING hook invocation
fix caused outgoing packets routed between two bridges to appear without
a link-layer header. The reason for this is that we're skipping the
br_nf_post_routing hook for routed packets now and don't save the
original link layer header, but nevertheless tries to restore it on
output, causing corruption.

The root cause for this is that skb->nf_bridge has no clearly defined
lifetime and is used to indicate all kind of things, but that is
quite complicated to fix. For now simply don't touch these packets
and handle them like packets from any other device.

Tested-by: Damien Thebault <[EMAIL PROTECTED]>
Signed-off-by: Patrick McHardy <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 include/linux/netfilter_bridge.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/include/linux/netfilter_bridge.h b/include/linux/netfilter_bridge.h
index 533ee35..499aa93 100644
--- a/include/linux/netfilter_bridge.h
+++ b/include/linux/netfilter_bridge.h
@@ -50,7 +50,8 @@ enum nf_br_hook_priorities {
 extern int nf_bridge_copy_header(struct sk_buff *skb);
 static inline int nf_bridge_maybe_copy_header(struct sk_buff *skb)
 {
-   if (skb->nf_bridge)
+   if (skb->nf_bridge &&
+   skb->nf_bridge->mask & (BRNF_BRIDGED | BRNF_BRIDGED_DNAT))
return nf_bridge_copy_header(skb);
return 0;
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IPV4]: Updates to nfsroot documentation

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f33e1d9fa20381afa3be7e7f560c59845bfa5cec
Commit: f33e1d9fa20381afa3be7e7f560c59845bfa5cec
Parent: f58adb757be48068e2bded3dd77ba072c22a10ff
Author: Amos Waterland <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 14 11:30:22 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:40 2007 -0800

[IPV4]: Updates to nfsroot documentation

The difference between ip=off and ip=::off has been a cause of much
confusion.  Document how each behaves, and do not contradict ourselves by
saying that "off" is the default when in fact "any" is the default and is
descibed as being so lower in the file.

Signed-off-by: Amos Waterland <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 Documentation/nfsroot.txt |   12 +---
 net/ipv4/ipconfig.c   |   20 +---
 2 files changed, 10 insertions(+), 22 deletions(-)

diff --git a/Documentation/nfsroot.txt b/Documentation/nfsroot.txt
index 16a7cae..9b956a9 100644
--- a/Documentation/nfsroot.txt
+++ b/Documentation/nfsroot.txt
@@ -92,8 +92,14 @@ 
ip=::
   autoconfiguration.
 
   The  parameter can appear alone as the value to the `ip'
-  parameter (without all the ':' characters before) in which case auto-
-  configuration is used.
+  parameter (without all the ':' characters before).  If the value is
+  "ip=off" or "ip=none", no autoconfiguration will take place, otherwise
+  autoconfiguration will take place.  The most common way to use this
+  is "ip=dhcp".
+
+  Note that "ip=off" is not the same thing as "ip=::off", because in
+  the latter autoconfiguration will take place if any of DHCP, BOOTP or RARP
+  are compiled in the kernel.
 
 IP address of the client.
 
@@ -142,7 +148,7 @@ 
ip=::
into the kernel will be used, regardless of the value of
this option.
 
-  off or none: don't use autoconfiguration (default)
+  off or none: don't use autoconfiguration
  on or any:   use any protocol available in the kernel
  dhcp:use DHCP
  bootp:   use BOOTP
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index c5c107a..96400b0 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -1396,25 +1396,7 @@ late_initcall(ip_auto_config);
 
 /*
  *  Decode any IP configuration options in the "ip=" or "nfsaddrs=" kernel
- *  command line parameter. It consists of option fields separated by colons in
- *  the following order:
- *
- *  ::
- *
- *  Any of the fields can be empty which means to use a default value:
- *  - address given by BOOTP or RARP
- *  - address of host returning BOOTP or RARP packet
- *  - none, or the address returned by BOOTP
- *- automatically determined from , or the
- *   one returned by BOOTP
- *  -  in ASCII notation, or the name returned
- *   by BOOTP
- * - use all available devices
- * :
- *off|none - don't do autoconfig at all (DEFAULT)
- *on|any   - use any configured protocol
- *dhcp|bootp|rarp  - use only the specified protocol
- *both - use both BOOTP and RARP (not DHCP)
+ *  command line parameter.  See Documentation/nfsroot.txt.
  */
 static int __init ic_proto_name(char *name)
 {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[BRIDGE]: Assign random address.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ae412544cde6d987e0e48778bd87bc96a5749df
Commit: 3ae412544cde6d987e0e48778bd87bc96a5749df
Parent: f33e1d9fa20381afa3be7e7f560c59845bfa5cec
Author: Stephen Hemminger <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 13:35:51 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 13:35:51 2007 -0800

[BRIDGE]: Assign random address.

Assigning a valid random address to bridge device solves problems
when bridge device is brought up before adding real device to bridge.
When the first real device is added to the bridge, it's address
will overide the bridges random address.

Note: any device added to a bridge must already have a valid
ethernet address.
 br_add_if -> br_fdb_insert -> fdb_insert -> is_valid_ether_addr

Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/bridge/br_device.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/net/bridge/br_device.c b/net/bridge/br_device.c
index c07bac5..bf77873 100644
--- a/net/bridge/br_device.c
+++ b/net/bridge/br_device.c
@@ -157,8 +157,7 @@ static struct ethtool_ops br_ethtool_ops = {
 
 void br_dev_setup(struct net_device *dev)
 {
-   memset(dev->dev_addr, 0, ETH_ALEN);
-
+   random_ether_addr(dev->dev_addr);
ether_setup(dev);
 
dev->do_ioctl = br_dev_ioctl;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IPV6]: Fix the return value of ipv6_getsockopt

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf6fc4a92400decda932e5ab97b46916919142b1
Commit: cf6fc4a92400decda932e5ab97b46916919142b1
Parent: 3ae412544cde6d987e0e48778bd87bc96a5749df
Author: Wei Yongjun <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 13:39:57 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 13:39:57 2007 -0800

[IPV6]: Fix the return value of ipv6_getsockopt

If CONFIG_NETFILTER if not selected when compile the kernel source code,
ipv6_getsockopt will returen an EINVAL error if optname is not supported by
the kernel. But if CONFIG_NETFILTER is selected, ENOPROTOOPT error will
be return.

This patch fix to always return ENOPROTOOPT error if optname argument of
ipv6_getsockopt is not supported by the kernel.

Signed-off-by: Wei Yongjun <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv6/ipv6_sockglue.c |   12 +---
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index 1334fc1..8c5f80f 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -1046,7 +1046,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, 
int optname,
break;
 
default:
-   return -EINVAL;
+   return -ENOPROTOOPT;
}
len = min_t(unsigned int, sizeof(int), len);
if(put_user(len, optlen))
@@ -1069,9 +1069,8 @@ int ipv6_getsockopt(struct sock *sk, int level, int 
optname,
 
err = do_ipv6_getsockopt(sk, level, optname, optval, optlen);
 #ifdef CONFIG_NETFILTER
-   /* we need to exclude all possible EINVALs except default case */
-   if (err == -EINVAL && optname != IPV6_ADDRFORM &&
-   optname != MCAST_MSFILTER) {
+   /* we need to exclude all possible ENOPROTOOPTs except default case */
+   if (err == -ENOPROTOOPT && optname != IPV6_2292PKTOPTIONS) {
int len;
 
if (get_user(len, optlen))
@@ -1108,9 +1107,8 @@ int compat_ipv6_getsockopt(struct sock *sk, int level, 
int optname,
 
err = do_ipv6_getsockopt(sk, level, optname, optval, optlen);
 #ifdef CONFIG_NETFILTER
-   /* we need to exclude all possible EINVALs except default case */
-   if (err == -EINVAL && optname != IPV6_ADDRFORM &&
-   optname != MCAST_MSFILTER) {
+   /* we need to exclude all possible ENOPROTOOPTs except default case */
+   if (err == -ENOPROTOOPT && optname != IPV6_2292PKTOPTIONS) {
int len;
 
if (get_user(len, optlen))
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IPV4]: Make tcp_input_metrics() get minimum RTO via tcp_rto_min()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=488faa2ae32c2f8b1ffda5c7fae5eb7c979acc15
Commit: 488faa2ae32c2f8b1ffda5c7fae5eb7c979acc15
Parent: cf6fc4a92400decda932e5ab97b46916919142b1
Author: Satoru SATOH <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:00:19 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:00:19 2007 -0800

[IPV4]: Make tcp_input_metrics() get minimum RTO via tcp_rto_min()

tcp_input_metrics() refers to the built-time constant TCP_RTO_MIN
regardless of configured minimum RTO with iproute2.

Signed-off-by: Satoru SATOH <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv4/tcp_input.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index b9e429d..889c893 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -923,7 +923,7 @@ static void tcp_init_metrics(struct sock *sk)
}
if (dst_metric(dst, RTAX_RTTVAR) > tp->mdev) {
tp->mdev = dst_metric(dst, RTAX_RTTVAR);
-   tp->mdev_max = tp->rttvar = max(tp->mdev, TCP_RTO_MIN);
+   tp->mdev_max = tp->rttvar = max(tp->mdev, tcp_rto_min(sk));
}
tcp_set_rto(sk);
tcp_bound_rto(sk);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[AX25]: Locking dependencies fix in ax25_disconnect().

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=215f7b08f2a142ec19f4bd3d6de263e68b877955
Commit: 215f7b08f2a142ec19f4bd3d6de263e68b877955
Parent: 488faa2ae32c2f8b1ffda5c7fae5eb7c979acc15
Author: Jarek Poplawski <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:02:07 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:02:07 2007 -0800

[AX25]: Locking dependencies fix in ax25_disconnect().

Bernard Pidoux reported these lockdep warnings:

[ INFO: possible irq lock inversion dependency detected ]
2.6.23.1 #1
-
fpac/4933 just changed the state of lock:
 (slock-AF_AX25){--..}, at: [] ax25_disconnect+0x46/0xaf
 [ax25]
 but this lock was taken by another, soft-irq-safe lock in the past:
  (ax25_list_lock){-+..}

  and interrupts could create inverse lock ordering between them.
  [...]

[ INFO: inconsistent lock state ]
2.6.23.1 #1
-
inconsistent {in-softirq-W} -> {softirq-on-W} usage.
ax25_call/4005 [HC0[0]:SC0[0]:HE1:SE1] takes:
 (slock-AF_AX25){-+..}, at: [] ax25_disconnect+0x46/0xaf [ax25]
 [...]

This means slock-AF_AX25 could be taken both from softirq and process
context with softirqs enabled, so it's endangered itself, but also makes
ax25_list_lock vulnerable. It was not 100% verified if the real lockup
can happen, but this fix isn't very costly and looks safe anyway.
(It was tested by Bernard with 2.6.23.9 and 2.6.24-rc5 kernels.)


Reported_by: Bernard Pidoux <[EMAIL PROTECTED]>
Tested_by: Bernard Pidoux <[EMAIL PROTECTED]>
Signed-off-by: Jarek Poplawski <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ax25/ax25_subr.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/net/ax25/ax25_subr.c b/net/ax25/ax25_subr.c
index 5fe9b2a..d8f2157 100644
--- a/net/ax25/ax25_subr.c
+++ b/net/ax25/ax25_subr.c
@@ -279,6 +279,7 @@ void ax25_disconnect(ax25_cb *ax25, int reason)
ax25_link_failed(ax25, reason);
 
if (ax25->sk != NULL) {
+   local_bh_disable();
bh_lock_sock(ax25->sk);
ax25->sk->sk_state = TCP_CLOSE;
ax25->sk->sk_err   = reason;
@@ -288,5 +289,6 @@ void ax25_disconnect(ax25_cb *ax25, int reason)
sock_set_flag(ax25->sk, SOCK_DEAD);
}
bh_unlock_sock(ax25->sk);
+   local_bh_enable();
}
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[SCTP]: Flush fragment queue when exiting partial delivery.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef5d4cf2f9aae4e09883d2d664e367a16b47d857
Commit: ef5d4cf2f9aae4e09883d2d664e367a16b47d857
Parent: 215f7b08f2a142ec19f4bd3d6de263e68b877955
Author: Vlad Yasevich <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:05:45 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:05:45 2007 -0800

[SCTP]: Flush fragment queue when exiting partial delivery.

At the end of partial delivery, we may have complete messages
sitting on the fragment queue.  These messages are stuck there
until a new fragment arrives.  This can comletely stall a
given association.  When clearing partial delivery state, flush
any complete messages from the fragment queue and send them on
their way up.

Signed-off-by: Vlad Yasevich <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/sctp/ulpqueue.c |   33 +
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/net/sctp/ulpqueue.c b/net/sctp/ulpqueue.c
index 4908041..1733fa2 100644
--- a/net/sctp/ulpqueue.c
+++ b/net/sctp/ulpqueue.c
@@ -53,6 +53,7 @@ static struct sctp_ulpevent * sctp_ulpq_reasm(struct 
sctp_ulpq *ulpq,
  struct sctp_ulpevent *);
 static struct sctp_ulpevent * sctp_ulpq_order(struct sctp_ulpq *,
  struct sctp_ulpevent *);
+static void sctp_ulpq_reasm_drain(struct sctp_ulpq *ulpq);
 
 /* 1st Level Abstractions */
 
@@ -190,6 +191,7 @@ static void sctp_ulpq_set_pd(struct sctp_ulpq *ulpq)
 static int sctp_ulpq_clear_pd(struct sctp_ulpq *ulpq)
 {
ulpq->pd_mode = 0;
+   sctp_ulpq_reasm_drain(ulpq);
return sctp_clear_pd(ulpq->asoc->base.sk, ulpq->asoc);
 }
 
@@ -699,6 +701,37 @@ void sctp_ulpq_reasm_flushtsn(struct sctp_ulpq *ulpq, 
__u32 fwd_tsn)
}
 }
 
+/*
+ * Drain the reassembly queue.  If we just cleared parted delivery, it
+ * is possible that the reassembly queue will contain already reassembled
+ * messages.  Retrieve any such messages and give them to the user.
+ */
+static void sctp_ulpq_reasm_drain(struct sctp_ulpq *ulpq)
+{
+   struct sctp_ulpevent *event = NULL;
+   struct sk_buff_head temp;
+
+   if (skb_queue_empty(&ulpq->reasm))
+   return;
+
+   while ((event = sctp_ulpq_retrieve_reassembled(ulpq)) != NULL) {
+   /* Do ordering if needed.  */
+   if ((event) && (event->msg_flags & MSG_EOR)){
+   skb_queue_head_init(&temp);
+   __skb_queue_tail(&temp, sctp_event2skb(event));
+
+   event = sctp_ulpq_order(ulpq, event);
+   }
+
+   /* Send event to the ULP.  'event' is the
+* sctp_ulpevent for  very first SKB on the  temp' list.
+*/
+   if (event)
+   sctp_ulpq_tail_event(ulpq, event);
+   }
+}
+
+
 /* Helper function to gather skbs that have possibly become
  * ordered by an an incoming chunk.
  */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ATM]: Fix compiler warning noise with FORE200E driver

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f58adb757be48068e2bded3dd77ba072c22a10ff
Commit: f58adb757be48068e2bded3dd77ba072c22a10ff
Parent: 4a9ecd5960e6a7814f6e3405807d49010ffe3a88
Author: Tom "spot" Callaway <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 09:33:50 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Fri Dec 14 13:54:39 2007 -0800

[ATM]: Fix compiler warning noise with FORE200E driver

gcc throws these warnings with:

CONFIG_ATM_FORE200E=m
# CONFIG_ATM_FORE200E_PCA is not set

drivers/atm/fore200e.c:2695: warning: 'fore200e_pca_detect' defined but
not used
drivers/atm/fore200e.c:2748: warning: 'fore200e_pca_remove_one' defined
but not used

By moving the #ifdef CONFIG_ATM_FORE200E_PCA around those two functions,
the compiler warnings are silenced.

Signed-off-by: Tom "spot" Callaway <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/atm/fore200e.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
index 8b12925..f97e050 100644
--- a/drivers/atm/fore200e.c
+++ b/drivers/atm/fore200e.c
@@ -2689,7 +2689,7 @@ fore200e_init(struct fore200e* fore200e)
 return 0;
 }
 
-
+#ifdef CONFIG_ATM_FORE200E_PCA
 static int __devinit
 fore200e_pca_detect(struct pci_dev *pci_dev, const struct pci_device_id 
*pci_ent)
 {
@@ -2756,7 +2756,6 @@ static void __devexit fore200e_pca_remove_one(struct 
pci_dev *pci_dev)
 }
 
 
-#ifdef CONFIG_ATM_FORE200E_PCA
 static struct pci_device_id fore200e_pca_tbl[] = {
 { PCI_VENDOR_ID_FORE, PCI_DEVICE_ID_FORE_PCA200E, PCI_ANY_ID, PCI_ANY_ID,
   0, 0, (unsigned long) &fore200e_bus[0] },
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IRDA]: Race between open and disconnect in irda-usb.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=497ba7f4c8113ed699a4fd793d1437f0c8f2da5e
Commit: 497ba7f4c8113ed699a4fd793d1437f0c8f2da5e
Parent: ef5d4cf2f9aae4e09883d2d664e367a16b47d857
Author: Oliver Neukum <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:07:36 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:07:36 2007 -0800

[IRDA]: Race between open and disconnect in irda-usb.

It seems to me that irda_usb_net_open() must set self->netopen
under spinlock or disconnect() may fail to kill all URBs, if it is called
while an interface is opened.

Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]>
Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/net/irda/irda-usb.c |5 +
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/net/irda/irda-usb.c b/drivers/net/irda/irda-usb.c
index c6355c0..9081234 100644
--- a/drivers/net/irda/irda-usb.c
+++ b/drivers/net/irda/irda-usb.c
@@ -1168,6 +1168,7 @@ static int stir421x_patch_device(struct irda_usb_cb *self)
 static int irda_usb_net_open(struct net_device *netdev)
 {
struct irda_usb_cb *self;
+   unsigned long flags;
charhwname[16];
int i;

@@ -1177,13 +1178,16 @@ static int irda_usb_net_open(struct net_device *netdev)
self = (struct irda_usb_cb *) netdev->priv;
IRDA_ASSERT(self != NULL, return -1;);
 
+   spin_lock_irqsave(&self->lock, flags);
/* Can only open the device if it's there */
if(!self->present) {
+   spin_unlock_irqrestore(&self->lock, flags);
IRDA_WARNING("%s(), device not present!\n", __FUNCTION__);
return -1;
}
 
if(self->needspatch) {
+   spin_unlock_irqrestore(&self->lock, flags);
IRDA_WARNING("%s(), device needs patch\n", __FUNCTION__) ;
return -EIO ;
}
@@ -1198,6 +1202,7 @@ static int irda_usb_net_open(struct net_device *netdev)
/* To do *before* submitting Rx urbs and starting net Tx queue
 * Jean II */
self->netopen = 1;
+   spin_unlock_irqrestore(&self->lock, flags);
 
/* 
 * Now that everything should be initialized properly,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IRDA]: mcs7780 needs to free allocated rx buffer.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ff804348d66550e7dd1d6781c65403b312e2da2
Commit: 0ff804348d66550e7dd1d6781c65403b312e2da2
Parent: 497ba7f4c8113ed699a4fd793d1437f0c8f2da5e
Author: Hinko Kocevar <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:08:22 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:08:22 2007 -0800

[IRDA]: mcs7780 needs to free allocated rx buffer.

While testing the mcs7780 based IrDA USB dongle I've stumbled upon
memory leak in mcs_net_close(). Patch below fixes it.

Signed-off-by: Hinko Kocevar <[EMAIL PROTECTED]>
Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/net/irda/mcs7780.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index 0b76919..93916cf 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -677,6 +677,8 @@ static int mcs_net_close(struct net_device *netdev)
/* Stop transmit processing */
netif_stop_queue(netdev);
 
+   kfree_skb(mcs->rx_buff.skb);
+
/* kill and free the receive and transmit URBs */
usb_kill_urb(mcs->rx_urb);
usb_free_urb(mcs->rx_urb);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IRDA]: irlmp_unregister_link() needs to free lsaps.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2638698df30b7b57a8dad7029a0c89fe6c4f6783
Commit: 2638698df30b7b57a8dad7029a0c89fe6c4f6783
Parent: 0ff804348d66550e7dd1d6781c65403b312e2da2
Author: Hinko Kocevar <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:08:58 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:08:58 2007 -0800

[IRDA]: irlmp_unregister_link() needs to free lsaps.

While testing the mcs7780 based IrDA USB dongle I've stumbled upon
memory leak in irlmp_unregister_link(). Hashbin for lsaps is created in
irlmp_register_link and should probably be freed in irlmp_unregister_link().

Signed-off-by: Hinko Kocevar <[EMAIL PROTECTED]>
Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/irda/irlmp.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c
index cedff80..f24cb75 100644
--- a/net/irda/irlmp.c
+++ b/net/irda/irlmp.c
@@ -353,6 +353,7 @@ void irlmp_unregister_link(__u32 saddr)
/* Final cleanup */
del_timer(&link->idle_timer);
link->magic = 0;
+   hashbin_delete(link->lsaps, (FREE_FUNC) __irlmp_close_lsap);
kfree(link);
}
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IRDA]: stir4200 fixes.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ea332912b8a2e0b2f51ac3b6c197b71d3a18cbb7
Commit: ea332912b8a2e0b2f51ac3b6c197b71d3a18cbb7
Parent: 2638698df30b7b57a8dad7029a0c89fe6c4f6783
Author: Olaf Hartmann <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:09:44 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:09:44 2007 -0800

[IRDA]: stir4200 fixes.

From: Olaf Hartmann <[EMAIL PROTECTED]>

The attached patch observes the stir4200 fifo size and will clear the
fifo, if the size is increasing, while it should be transmitting bytes

Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/net/irda/stir4200.c |   10 ++
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/irda/stir4200.c b/drivers/net/irda/stir4200.c
index 042bc2f..e59c485 100644
--- a/drivers/net/irda/stir4200.c
+++ b/drivers/net/irda/stir4200.c
@@ -142,9 +142,6 @@ enum StirCtrl2Mask {
 };
 
 enum StirFifoCtlMask {
-   FIFOCTL_EOF = 0x80,
-   FIFOCTL_UNDER = 0x40,
-   FIFOCTL_OVER = 0x20,
FIFOCTL_DIR = 0x10,
FIFOCTL_CLR = 0x08,
FIFOCTL_EMPTY = 0x04,
@@ -594,9 +591,10 @@ static int fifo_txwait(struct stir_cb *stir, int space)
 {
int err;
unsigned long count, status;
+   unsigned long prev_count = 0x1fff;
 
/* Read FIFO status and count */
-   for(;;) {
+   for (;; prev_count = count) {
err = read_reg(stir, REG_FIFOCTL, stir->fifo_status, 
   FIFO_REGS_SIZE);
if (unlikely(err != FIFO_REGS_SIZE)) {
@@ -629,6 +627,10 @@ static int fifo_txwait(struct stir_cb *stir, int space)
if (space >= 0 && STIR_FIFO_SIZE - 4 > space + count)
return 0;
 
+   /* queue confused */
+   if (prev_count < count)
+   break;
+
/* estimate transfer time for remaining chars */
msleep((count * 8000) / stir->speed);
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[IRDA]: irda parameters warning fixes.

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a26e01d71622a4cecad06ce85bcab3ed878e7f83
Commit: a26e01d71622a4cecad06ce85bcab3ed878e7f83
Parent: ea332912b8a2e0b2f51ac3b6c197b71d3a18cbb7
Author: Richard Knutsson <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 16 14:10:33 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Sun Dec 16 14:10:33 2007 -0800

[IRDA]: irda parameters warning fixes.

This patch fixes:
  CHECK   /home/kernel/src/net/irda/parameters.c
/home/kernel/src/net/irda/parameters.c:466:2: warning: Using plain integer 
as NULL pointer
/home/kernel/src/net/irda/parameters.c:520:2: warning: Using plain integer 
as NULL pointer
/home/kernel/src/net/irda/parameters.c:573:2: warning: Using plain integer 
as NULL pointer

Signed-off-by: Richard Knutsson <[EMAIL PROTECTED]>
Signed-off-by: Samuel Ortiz <[EMAIL PROTECTED]>
Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/irda/parameters.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/irda/parameters.c b/net/irda/parameters.c
index 2627dad..7183e9e 100644
--- a/net/irda/parameters.c
+++ b/net/irda/parameters.c
@@ -463,7 +463,7 @@ int irda_param_insert(void *self, __u8 pi, __u8 *buf, int 
len,
int n = 0;
 
IRDA_ASSERT(buf != NULL, return ret;);
-   IRDA_ASSERT(info != 0, return ret;);
+   IRDA_ASSERT(info != NULL, return ret;);
 
pi_minor = pi & info->pi_mask;
pi_major = pi >> info->pi_major_offset;
@@ -517,7 +517,7 @@ static int irda_param_extract(void *self, __u8 *buf, int 
len,
int n = 0;
 
IRDA_ASSERT(buf != NULL, return ret;);
-   IRDA_ASSERT(info != 0, return ret;);
+   IRDA_ASSERT(info != NULL, return ret;);
 
pi_minor = buf[n] & info->pi_mask;
pi_major = buf[n] >> info->pi_major_offset;
@@ -570,7 +570,7 @@ int irda_param_extract_all(void *self, __u8 *buf, int len,
int n = 0;
 
IRDA_ASSERT(buf != NULL, return ret;);
-   IRDA_ASSERT(info != 0, return ret;);
+   IRDA_ASSERT(info != NULL, return ret;);
 
/*
 * Parse all parameters. Each parameter must be at least two bytes
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ARM] 4667/1: CM-X270 fixes

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a0113a99cc3cd1a63153d11b7fcf9c1a2000df57
Commit: a0113a99cc3cd1a63153d11b7fcf9c1a2000df57
Parent: 008f6d2a2817b4a36d477fe969840bb0ef1351a8
Author: Mike Rapoport <[EMAIL PROTECTED]>
AuthorDate: Sun Nov 25 08:55:34 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sat Dec 8 14:35:43 2007 +

[ARM] 4667/1: CM-X270 fixes

Change printk to dev_dbg in ITE 8152 driver and remove printk in ITE 8152 
ISR.
Move PCI intialization from ->scan to ->preinit method

Signed-off-by: Mike Rapoport <[EMAIL PROTECTED]>
Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/Kconfig|8 +++-
 arch/arm/common/it8152.c|   10 ++
 arch/arm/mach-pxa/cm-x270-pci.c |   18 --
 3 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a7e9fea..c4de2d4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -537,7 +537,7 @@ config ISA_DMA_API
bool
 
 config PCI
-   bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || 
ARCH_IXP4XX || ARCH_KS8695
+   bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || 
ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
help
  Find out whether you have a PCI motherboard. PCI is the name of a
  bus system, i.e. the way the CPU talks to the other stuff inside
@@ -558,6 +558,12 @@ config PCI_HOST_VIA82C505
depends on PCI && ARCH_SHARK
default y
 
+config PCI_HOST_ITE8152
+   bool
+   depends on PCI && MACH_ARMCORE
+   default y
+   select DMABOUNCE
+
 source "drivers/pci/Kconfig"
 
 source "drivers/pcmcia/Kconfig"
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
index c03de9b..97b7dc1 100644
--- a/arch/arm/common/it8152.c
+++ b/arch/arm/common/it8152.c
@@ -70,8 +70,6 @@ static inline void it8152_irq(int irq)
 {
struct irq_desc *desc;
 
-   printk(KERN_DEBUG "===> %s: irq=%d\n", __FUNCTION__, irq);
-
desc = irq_desc + irq;
desc_handle_irq(irq, desc);
 }
@@ -106,8 +104,6 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc 
*desc)
int bits_pd, bits_lp, bits_ld;
int i;
 
-   printk(KERN_DEBUG "=> %s: irq = %d\n", __FUNCTION__, irq);
-
while (1) {
   /* Read all */
   bits_pd = __raw_readl(IT8152_INTC_PDCNIRR);
@@ -293,8 +289,7 @@ int dma_needs_bounce(struct device *dev, dma_addr_t 
dma_addr, size_t size)
  */
 int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
 {
-   printk(KERN_DEBUG "%s: %s %llx\n",
-  __FUNCTION__, dev->dev.bus_id, mask);
+   dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask);
if (mask >= PHYS_OFFSET + SZ_64M - 1)
return 0;
 
@@ -304,8 +299,7 @@ int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
 int
 pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
 {
-   printk(KERN_DEBUG "%s: %s %llx\n",
-  __FUNCTION__, dev->dev.bus_id, mask);
+   dev_dbg(&dev->dev, "%s: %llx\n", __FUNCTION__, mask);
if (mask >= PHYS_OFFSET + SZ_64M - 1)
return 0;
 
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x270-pci.c
index 878d3b9..15c4e0d 100644
--- a/arch/arm/mach-pxa/cm-x270-pci.c
+++ b/arch/arm/mach-pxa/cm-x270-pci.c
@@ -40,7 +40,7 @@ void __init cmx270_pci_adjust_zones(int node, unsigned long 
*zone_size,
 {
unsigned int sz = SZ_64M >> PAGE_SHIFT;
 
-   printk(KERN_INFO "Adjusting zones for CM-x270\n");
+   pr_info("Adjusting zones for CM-x270\n");
 
/*
 * Only adjust if > 64M on current system
@@ -104,8 +104,7 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, 
u8 slot, u8 pin)
 {
int irq;
 
-   printk(KERN_DEBUG "===> %s: %s slot=%x, pin=%x\n", __FUNCTION__,
-  pci_name(dev), slot, pin);
+   dev_dbg(&dev->dev, "%s: slot=%x, pin=%x\n", __FUNCTION__, slot, pin);
 
irq = it8152_pci_map_irq(dev, slot, pin);
if (irq)
@@ -141,14 +140,13 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, 
u8 slot, u8 pin)
return(0);
 }
 
-static struct pci_bus * __init
-cmx270_pci_scan_bus(int nr, struct pci_sys_data *sys)
+static void cmx270_pci_preinit(void)
 {
-   printk(KERN_INFO "Initializing CM-X270 PCI subsystem\n");
+   pr_info("Initializing CM-X270 PCI subsystem\n");
 
__raw_writel(0x800, IT8152_PCI_CFG_ADDR);
if (__raw_readl(IT8152_PCI_CFG_DATA) == 0x81521283) {
-   printk(KERN_INFO "PCI Bridge found.\n");
+   pr_info("PCI Bridge found.\n");
 
/* set PCI I/O base at 0 */
writel(0x848, IT8152_PCI_CFG_ADDR);
@@ -163,7 +161,7 @@ cmx270_pci_scan_bus(int nr, struct pci_sys_data *sys)
/* CardBus Controller on ATXbase baseboard */
writel(0x4000, IT8152

[ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=03d14a5536cf5611d27a106137a814c8f1135ddd
Commit: 03d14a5536cf5611d27a106137a814c8f1135ddd
Parent: a0113a99cc3cd1a63153d11b7fcf9c1a2000df57
Author: Michael Brunner <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 4 21:39:20 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Sat Dec 8 14:36:06 2007 +

[ARM] 4690/1: PXA: fix CKEN corruption in PXA27x AC97 cold reset code

Fix CKEN register corruption in the PXA27x cold reset code
located in sound/arm/pxa27x-ac97.c. The problem has been
introduced with a pxa_set_cken() function change in linux 2.6.23.
This patch is based on patch 4527/1 that fixes the same problem in
the ASoC PXA-AC97 driver. Additionally a definition for the CKEN
index value is added and applied to both PXA AC97 drivers.

Signed-off-by: Michael Brunner <[EMAIL PROTECTED]>
Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 include/asm-arm/arch-pxa/pxa-regs.h |1 +
 sound/arm/pxa2xx-ac97.c |4 ++--
 sound/soc/pxa/pxa2xx-ac97.c |4 ++--
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/include/asm-arm/arch-pxa/pxa-regs.h 
b/include/asm-arm/arch-pxa/pxa-regs.h
index 6b33df6..1bd398d 100644
--- a/include/asm-arm/arch-pxa/pxa-regs.h
+++ b/include/asm-arm/arch-pxa/pxa-regs.h
@@ -1784,6 +1784,7 @@
 #define CCCR_M_MASK0x0060  /* Memory Frequency to Run Mode 
Frequency Multiplier */
 #define CCCR_L_MASK0x001f  /* Crystal Frequency to Memory 
Frequency Multiplier */
 
+#define CKEN_AC97CONF   (31)/* AC97 Controller Configuration */
 #define CKEN_CAMERA(24)/* Camera Interface Clock Enable */
 #define CKEN_SSP1  (23)/* SSP1 Unit Clock Enable */
 #define CKEN_MEMC  (22)/* Memory Controller Clock Enable */
diff --git a/sound/arm/pxa2xx-ac97.c b/sound/arm/pxa2xx-ac97.c
index 7bc2767..55c6c82 100644
--- a/sound/arm/pxa2xx-ac97.c
+++ b/sound/arm/pxa2xx-ac97.c
@@ -113,9 +113,9 @@ static void pxa2xx_ac97_reset(struct snd_ac97 *ac97)
gsr_bits = 0;
 #ifdef CONFIG_PXA27x
/* PXA27x Developers Manual section 13.5.2.2.1 */
-   pxa_set_cken(1 << 31, 1);
+   pxa_set_cken(CKEN_AC97CONF, 1);
udelay(5);
-   pxa_set_cken(1 << 31, 0);
+   pxa_set_cken(CKEN_AC97CONF, 0);
GCR = GCR_COLD_RST;
udelay(50);
 #else
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c
index dd14abc..60e6f46 100644
--- a/sound/soc/pxa/pxa2xx-ac97.c
+++ b/sound/soc/pxa/pxa2xx-ac97.c
@@ -160,9 +160,9 @@ static void pxa2xx_ac97_cold_reset(struct snd_ac97 *ac97)
gsr_bits = 0;
 #ifdef CONFIG_PXA27x
/* PXA27x Developers Manual section 13.5.2.2.1 */
-   pxa_set_cken(31, 1);
+   pxa_set_cken(CKEN_AC97CONF, 1);
udelay(5);
-   pxa_set_cken(31, 0);
+   pxa_set_cken(CKEN_AC97CONF, 0);
GCR = GCR_COLD_RST;
udelay(50);
 #else
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ARM] 4710/1: Fix coprocessor 14 usage for debug messages via ICEDCC

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=41a9e680717e82c745b1ead979ea008e9134ea68
Commit: 41a9e680717e82c745b1ead979ea008e9134ea68
Parent: 1265edb8fd2869d17128f1d60683dd6f4191d550
Author: Uwe Kleine-König <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 09:31:34 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 17:16:13 2007 +

[ARM] 4710/1: Fix coprocessor 14 usage for debug messages via ICEDCC

According to ARM7TDMI Technical Reference Manual (ARM DDI 0210C) writing
to the DCC data write register coproc dest registers are 1 and 0, not 0
and 1.

ARM920T TRM (ARM DDI 0151C) agrees on that.

Cc: Ben Dooks <[EMAIL PROTECTED]>
Signed-off-by: Uwe Kleine-König <[EMAIL PROTECTED]>
Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/boot/compressed/head.S |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index b9b03ed..5cac46a 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -31,7 +31,7 @@
.macro  loadsp, rb
.endm
.macro  writeb, ch, rb
-   mcr p14, 0, \ch, c0, c1, 0
+   mcr p14, 0, \ch, c1, c0, 0
.endm
 #endif
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=553876c802249b21267b78a9b3857d1341a3df87
Commit: 553876c802249b21267b78a9b3857d1341a3df87
Parent: 41a9e680717e82c745b1ead979ea008e9134ea68
Author: Kevin Hilman <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 00:32:58 2007 +0100
Committer:  Russell King <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 17:18:01 2007 +

[ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume

Add proper support for CLOCK_EVT_MODE_RESUME and in the process fix
CLOCK_EVT_MODE_SHUTDOWN so that only the enable bits are toggled for both.

Signed-off-by: Kevin Hilman <[EMAIL PROTECTED]>
Signed-off-by: Russell King <[EMAIL PROTECTED]>
---
 arch/arm/mach-ixp4xx/common.c |   10 +++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index c1271c4..f6d66dc 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -442,7 +442,8 @@ static int ixp4xx_set_next_event(unsigned long evt,
 static void ixp4xx_set_mode(enum clock_event_mode mode,
struct clock_event_device *evt)
 {
-   unsigned long opts, osrt = *IXP4XX_OSRT1 & ~IXP4XX_OST_RELOAD_MASK;
+   unsigned long opts = *IXP4XX_OSRT1 & IXP4XX_OST_RELOAD_MASK;
+   unsigned long osrt = *IXP4XX_OSRT1 & ~IXP4XX_OST_RELOAD_MASK;
 
switch (mode) {
case CLOCK_EVT_MODE_PERIODIC:
@@ -455,12 +456,15 @@ static void ixp4xx_set_mode(enum clock_event_mode mode,
opts = IXP4XX_OST_ENABLE | IXP4XX_OST_ONE_SHOT;
break;
case CLOCK_EVT_MODE_SHUTDOWN:
+   opts &= ~IXP4XX_OST_ENABLE;
+   break;
+   case CLOCK_EVT_MODE_RESUME:
+   opts |= IXP4XX_OST_ENABLE;
+   break;
case CLOCK_EVT_MODE_UNUSED:
default:
osrt = opts = 0;
break;
-   case CLOCK_EVT_MODE_RESUME:
-   break;
}
 
*IXP4XX_OSRT1 = osrt | opts;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


IB/ehca: Return correct number of SGEs for SRQ

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1457edc72d187f452be1374c7d9281f1dfa16f32
Commit: 1457edc72d187f452be1374c7d9281f1dfa16f32
Parent: 4af75653031c6d454b4ace47c1536f0d2e727e3e
Author: Joachim Fenkes <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 12:20:57 2007 +0100
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 14:09:43 2007 -0800

IB/ehca: Return correct number of SGEs for SRQ

Firmware would round up the number of SGEs to four, because the WQE
structure holds four SGEs. For SRQ, only three are supported, so return
a fixed value instead.

Signed-off-by: Joachim Fenkes <[EMAIL PROTECTED]>
Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/ehca/ehca_qp.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c 
b/drivers/infiniband/hw/ehca/ehca_qp.c
index dd12668..eff5fb5 100644
--- a/drivers/infiniband/hw/ehca/ehca_qp.c
+++ b/drivers/infiniband/hw/ehca/ehca_qp.c
@@ -838,7 +838,7 @@ struct ib_srq *ehca_create_srq(struct ib_pd *pd,
 
/* copy back return values */
srq_init_attr->attr.max_wr = qp_init_attr.cap.max_recv_wr;
-   srq_init_attr->attr.max_sge = qp_init_attr.cap.max_recv_sge;
+   srq_init_attr->attr.max_sge = 3;
 
/* drive SRQ into RTR state */
mqpcb = ehca_alloc_fw_ctrlblock(GFP_KERNEL);
@@ -1750,7 +1750,7 @@ int ehca_query_srq(struct ib_srq *srq, struct ib_srq_attr 
*srq_attr)
}
 
srq_attr->max_wr = qpcb->max_nr_outst_recv_wr - 1;
-   srq_attr->max_sge = qpcb->actual_nr_sges_in_rq_wqe;
+   srq_attr->max_sge = 3;
srq_attr->srq_limit = EHCA_BMASK_GET(
MQPCB_CURR_SRQ_LIMIT, qpcb->curr_srq_limit);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


IB/ehca: Serialize HCA-related hCalls if necessary

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4faf7757955239c1b259e7dab224d4638a99b456
Commit: 4faf7757955239c1b259e7dab224d4638a99b456
Parent: 1457edc72d187f452be1374c7d9281f1dfa16f32
Author: Joachim Fenkes <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 18:59:10 2007 +0100
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 14:09:43 2007 -0800

IB/ehca: Serialize HCA-related hCalls if necessary

Several pSeries firmware versions share a rare locking issue in the
HCA-related hCalls. Check for a feature flag that indicates the issue
being fixed and serialize all HCA hCalls if not.

Signed-off-by: Joachim Fenkes <[EMAIL PROTECTED]>
Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/ehca/ehca_main.c |   13 +
 drivers/infiniband/hw/ehca/hcp_if.c|   28 +++-
 drivers/infiniband/hw/ehca/hipz_hw.h   |1 +
 3 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/drivers/infiniband/hw/ehca/ehca_main.c 
b/drivers/infiniband/hw/ehca/ehca_main.c
index 90d4334..c7bff3e 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -43,6 +43,7 @@
 #ifdef CONFIG_PPC_64K_PAGES
 #include 
 #endif
+
 #include "ehca_classes.h"
 #include "ehca_iverbs.h"
 #include "ehca_mrmw.h"
@@ -66,6 +67,7 @@ int ehca_poll_all_eqs  = 1;
 int ehca_static_rate   = -1;
 int ehca_scaling_code  = 0;
 int ehca_mr_largepage  = 1;
+int ehca_lock_hcalls   = -1;
 
 module_param_named(open_aqp1, ehca_open_aqp1, int, S_IRUGO);
 module_param_named(debug_level,   ehca_debug_level,   int, S_IRUGO);
@@ -77,6 +79,7 @@ module_param_named(poll_all_eqs,  ehca_poll_all_eqs,  int, 
S_IRUGO);
 module_param_named(static_rate,   ehca_static_rate,   int, S_IRUGO);
 module_param_named(scaling_code,  ehca_scaling_code,  int, S_IRUGO);
 module_param_named(mr_largepage,  ehca_mr_largepage,  int, S_IRUGO);
+module_param_named(lock_hcalls,   ehca_lock_hcalls,   bool, S_IRUGO);
 
 MODULE_PARM_DESC(open_aqp1,
 "AQP1 on startup (0: no (default), 1: yes)");
@@ -102,6 +105,9 @@ MODULE_PARM_DESC(scaling_code,
 MODULE_PARM_DESC(mr_largepage,
 "use large page for MR (0: use PAGE_SIZE (default), "
 "1: use large page depending on MR size");
+MODULE_PARM_DESC(lock_hcalls,
+"serialize all hCalls made by the driver "
+"(default: autodetect)");
 
 DEFINE_RWLOCK(ehca_qp_idr_lock);
 DEFINE_RWLOCK(ehca_cq_idr_lock);
@@ -258,6 +264,7 @@ static struct cap_descr {
{ HCA_CAP_UD_LL_QP, "HCA_CAP_UD_LL_QP" },
{ HCA_CAP_RESIZE_MR, "HCA_CAP_RESIZE_MR" },
{ HCA_CAP_MINI_QP, "HCA_CAP_MINI_QP" },
+   { HCA_CAP_H_ALLOC_RES_SYNC, "HCA_CAP_H_ALLOC_RES_SYNC" },
 };
 
 static int ehca_sense_attributes(struct ehca_shca *shca)
@@ -333,6 +340,12 @@ static int ehca_sense_attributes(struct ehca_shca *shca)
if (EHCA_BMASK_GET(hca_cap_descr[i].mask, shca->hca_cap))
ehca_gen_dbg("   %s", hca_cap_descr[i].descr);
 
+   /* Autodetect hCall locking -- the "H_ALLOC_RESOURCE synced" flag is
+* a firmware property, so it's valid across all adapters
+*/
+   if (ehca_lock_hcalls == -1)
+   ehca_lock_hcalls = !(shca->hca_cap & HCA_CAP_H_ALLOC_RES_SYNC);
+
/* translate supported MR page sizes; always support 4K */
shca->hca_cap_mr_pgsize = EHCA_PAGESIZE;
if (ehca_mr_largepage) { /* support extra sizes only if enabled */
diff --git a/drivers/infiniband/hw/ehca/hcp_if.c 
b/drivers/infiniband/hw/ehca/hcp_if.c
index c16a213..331b5e8 100644
--- a/drivers/infiniband/hw/ehca/hcp_if.c
+++ b/drivers/infiniband/hw/ehca/hcp_if.c
@@ -89,6 +89,7 @@
 #define HCALL9_REGS_FORMAT HCALL7_REGS_FORMAT " r11=%lx r12=%lx"
 
 static DEFINE_SPINLOCK(hcall_lock);
+extern int ehca_lock_hcalls;
 
 static u32 get_longbusy_msecs(int longbusy_rc)
 {
@@ -120,26 +121,21 @@ static long ehca_plpar_hcall_norets(unsigned long opcode,
unsigned long arg7)
 {
long ret;
-   int i, sleep_msecs, do_lock;
-   unsigned long flags;
+   int i, sleep_msecs;
+   unsigned long flags = 0;
 
ehca_gen_dbg("opcode=%lx " HCALL7_REGS_FORMAT,
 opcode, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
 
-   /* lock H_FREE_RESOURCE(MR) against itself and H_ALLOC_RESOURCE(MR) */
-   if ((opcode == H_FREE_RESOURCE) && (arg7 == 5)) {
-   arg7 = 0; /* better not upset firmware */
-   do_lock = 1;
-   }
-
for (i = 0; i < 5; i++) {
-   if (do_lock)
+   /* serialize hCalls to work around firmware issue */
+   if (ehca_lock_hcalls)
spin_lock_irqsave(&hcall_lock, flags);
 
ret = plpar_hcall_norets(opcode, arg1, arg2, arg3, arg4,
 

IB/ehca: Fix lock flag variable location, bump version number

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d758a4a48682639d3996968499913ecb1552e06
Commit: 3d758a4a48682639d3996968499913ecb1552e06
Parent: 4faf7757955239c1b259e7dab224d4638a99b456
Author: Joachim Fenkes <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 13:35:57 2007 +0100
Committer:  Roland Dreier <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 09:37:23 2007 -0800

IB/ehca: Fix lock flag variable location, bump version number

Signed-off-by: Joachim Fenkes <[EMAIL PROTECTED]>
Signed-off-by: Roland Dreier <[EMAIL PROTECTED]>
---
 drivers/infiniband/hw/ehca/ehca_classes.h |1 +
 drivers/infiniband/hw/ehca/ehca_main.c|2 +-
 drivers/infiniband/hw/ehca/hcp_if.c   |1 -
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h 
b/drivers/infiniband/hw/ehca/ehca_classes.h
index 87f12d4..74d2b72 100644
--- a/drivers/infiniband/hw/ehca/ehca_classes.h
+++ b/drivers/infiniband/hw/ehca/ehca_classes.h
@@ -322,6 +322,7 @@ extern int ehca_static_rate;
 extern int ehca_port_act_time;
 extern int ehca_use_hp_mr;
 extern int ehca_scaling_code;
+extern int ehca_lock_hcalls;
 
 struct ipzu_queue_resp {
u32 qe_size;  /* queue entry size */
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c 
b/drivers/infiniband/hw/ehca/ehca_main.c
index c7bff3e..6a56d86 100644
--- a/drivers/infiniband/hw/ehca/ehca_main.c
+++ b/drivers/infiniband/hw/ehca/ehca_main.c
@@ -50,7 +50,7 @@
 #include "ehca_tools.h"
 #include "hcp_if.h"
 
-#define HCAD_VERSION "0024"
+#define HCAD_VERSION "0025"
 
 MODULE_LICENSE("Dual BSD/GPL");
 MODULE_AUTHOR("Christoph Raisch <[EMAIL PROTECTED]>");
diff --git a/drivers/infiniband/hw/ehca/hcp_if.c 
b/drivers/infiniband/hw/ehca/hcp_if.c
index 331b5e8..7029aa6 100644
--- a/drivers/infiniband/hw/ehca/hcp_if.c
+++ b/drivers/infiniband/hw/ehca/hcp_if.c
@@ -89,7 +89,6 @@
 #define HCALL9_REGS_FORMAT HCALL7_REGS_FORMAT " r11=%lx r12=%lx"
 
 static DEFINE_SPINLOCK(hcall_lock);
-extern int ehca_lock_hcalls;
 
 static u32 get_longbusy_msecs(int longbusy_rc)
 {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


kbuild: re-enable Makefile generation in a new O=... directory

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=971edcfc8bee41c0b41e21bf10751c5b22028a82
Commit: 971edcfc8bee41c0b41e21bf10751c5b22028a82
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Guillaume Chazarain <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 13:22:08 2007 +0100
Committer:  Sam Ravnborg <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 19:19:20 2007 +0100

kbuild: re-enable Makefile generation in a new O=... directory

The commit:
18c32dac75b187d1a4e858f3cfdf03e844129f5e "kbuild: fix
building with O=.. options"
disabled the creation of a Makefile in a new O=... directory. Restore it.

Signed-off-by: Guillaume Chazarain <[EMAIL PROTECTED]>
Signed-off-by: Sam Ravnborg <[EMAIL PROTECTED]>
---
 scripts/mkmakefile |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/scripts/mkmakefile b/scripts/mkmakefile
index 9ad1bd7..e0f54b9 100644
--- a/scripts/mkmakefile
+++ b/scripts/mkmakefile
@@ -13,7 +13,7 @@
 test ! -r $2/Makefile -o -O $2/Makefile || exit 0
 # Only overwrite automatically generated Makefiles
 # (so we do not overwrite kernel Makefile)
-if ! grep -q Automatically $2/Makefile
+if test -e $2/Makefile && ! grep -q Automatically $2/Makefile
 then
exit 0
 fi
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for silicon errata

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bb133450ee95746a9387f12de8bd738e79c21433
Commit: bb133450ee95746a9387f12de8bd738e79c21433
Parent: 2ffbb8377c7a0713baf6644e285adc27a5654582
Author: Hans-Christian Egtvedt <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 30 14:56:20 2007 +0100
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Nov 19 21:08:57 2007 +

[WATCHDOG] at32ap700x_wdt: add support for boot status and add fix for 
silicon errata

This patch enables the watchdog to read out the reset cause after a boot and
provide this to the user.

The driver will now also return -EIO if probed when booting from a watchdog
reset. This is due to a silicon errata in the AT32AP700x devices.

Detailed description and work-arounds can be found in the errata section of 
the
datasheet avilable from
http://www.atmel.com/dyn/products/datasheets.asp?family_id=682

Signed-off-by: Hans-Christian Egtvedt <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 drivers/watchdog/at32ap700x_wdt.c |   69 ++--
 1 files changed, 65 insertions(+), 4 deletions(-)

diff --git a/drivers/watchdog/at32ap700x_wdt.c 
b/drivers/watchdog/at32ap700x_wdt.c
index 54a5161..fb5ed64 100644
--- a/drivers/watchdog/at32ap700x_wdt.c
+++ b/drivers/watchdog/at32ap700x_wdt.c
@@ -6,6 +6,19 @@
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
  * published by the Free Software Foundation.
+ *
+ *
+ * Errata: WDT Clear is blocked after WDT Reset
+ *
+ * A watchdog timer event will, after reset, block writes to the WDT_CLEAR
+ * register, preventing the program to clear the next Watchdog Timer Reset.
+ *
+ * If you still want to use the WDT after a WDT reset a small code can be
+ * insterted at the startup checking the AVR32_PM.rcause register for WDT reset
+ * and use a GPIO pin to reset the system. This method requires that one of the
+ * GPIO pins are available and connected externally to the RESET_N pin. After
+ * the GPIO pin has pulled down the reset line the GPIO will be reset and leave
+ * the pin tristated with pullup.
  */
 
 #include 
@@ -44,6 +57,13 @@ MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once 
started (default="
 
 #define WDT_CLR0x04
 
+#define WDT_RCAUSE 0x10
+#define WDT_RCAUSE_POR0
+#define WDT_RCAUSE_EXT2
+#define WDT_RCAUSE_WDT3
+#define WDT_RCAUSE_JTAG   4
+#define WDT_RCAUSE_SERP   5
+
 #define WDT_BIT(name)  (1 << WDT_##name)
 #define WDT_BF(name, value)((value) << WDT_##name)
 
@@ -56,6 +76,7 @@ struct wdt_at32ap700x {
void __iomem*regs;
spinlock_t  io_lock;
int timeout;
+   int boot_status;
unsigned long   users;
struct miscdevice   miscdev;
 };
@@ -126,7 +147,7 @@ static int at32_wdt_close(struct inode *inode, struct file 
*file)
at32_wdt_stop();
} else {
dev_dbg(wdt->miscdev.parent,
-   "Unexpected close, not stopping watchdog!\n");
+   "unexpected close, not stopping watchdog!\n");
at32_wdt_pat();
}
clear_bit(1, &wdt->users);
@@ -154,6 +175,33 @@ static int at32_wdt_settimeout(int time)
return 0;
 }
 
+/*
+ * Get the watchdog status.
+ */
+static int at32_wdt_get_status(void)
+{
+   int rcause;
+   int status = 0;
+
+   rcause = wdt_readl(wdt, RCAUSE);
+
+   switch (rcause) {
+   case WDT_BIT(RCAUSE_EXT):
+   status = WDIOF_EXTERN1;
+   break;
+   case WDT_BIT(RCAUSE_WDT):
+   status = WDIOF_CARDRESET;
+   break;
+   case WDT_BIT(RCAUSE_POR):  /* fall through */
+   case WDT_BIT(RCAUSE_JTAG): /* fall through */
+   case WDT_BIT(RCAUSE_SERP): /* fall through */
+   default:
+   break;
+   }
+
+   return status;
+}
+
 static struct watchdog_info at32_wdt_info = {
.identity   = "at32ap700x watchdog",
.options= WDIOF_SETTIMEOUT |
@@ -194,10 +242,12 @@ static int at32_wdt_ioctl(struct inode *inode, struct 
file *file,
case WDIOC_GETTIMEOUT:
ret = put_user(wdt->timeout, p);
break;
-   case WDIOC_GETSTATUS: /* fall through */
-   case WDIOC_GETBOOTSTATUS:
+   case WDIOC_GETSTATUS:
ret = put_user(0, p);
break;
+   case WDIOC_GETBOOTSTATUS:
+   ret = put_user(wdt->boot_status, p);
+   break;
case WDIOC_SETOPTIONS:
ret = get_user(time, p);
if (ret)
@@ -282,8 +332,19 @@ 

[WATCHDOG] Stop looking for device as soon as one is found

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ff6eb4a2fe5757cbe7c5d57c8eb60ab0775f2f0
Commit: 3ff6eb4a2fe5757cbe7c5d57c8eb60ab0775f2f0
Parent: bb133450ee95746a9387f12de8bd738e79c21433
Author: Samuel Tardieu <[EMAIL PROTECTED]>
AuthorDate: Sun Nov 4 20:20:23 2007 +0100
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Nov 19 21:09:16 2007 +

[WATCHDOG] Stop looking for device as soon as one is found

If no address is given for the W83697HF/HG watchdog IO port, stop looping
through possible locations when a watchdog device has been found.

Signed-off-by: Samuel Tardieu <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
---
 drivers/watchdog/w83697hf_wdt.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/watchdog/w83697hf_wdt.c b/drivers/watchdog/w83697hf_wdt.c
index c622a0e..6ea125e 100644
--- a/drivers/watchdog/w83697hf_wdt.c
+++ b/drivers/watchdog/w83697hf_wdt.c
@@ -382,8 +382,10 @@ wdt_init(void)
/* we will autodetect the W83697HF/HG watchdog */
for (i = 0; ((!found) && (w83697hf_ioports[i] != 0)); i++) {
wdt_io = w83697hf_ioports[i];
-   if (!w83697hf_check_wdt())
+   if (!w83697hf_check_wdt()) {
found++;
+   break;
+   }
}
} else {
if (!w83697hf_check_wdt())
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf6350a3dfcbd0a0811d7c210beacb66e90eca47
Commit: bf6350a3dfcbd0a0811d7c210beacb66e90eca47
Parent: 3ff6eb4a2fe5757cbe7c5d57c8eb60ab0775f2f0
Author: Jiri Slaby <[EMAIL PROTECTED]>
AuthorDate: Sat Nov 10 05:58:44 2007 +0100
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Nov 19 21:09:42 2007 +

[WATCHDOG] bfin_wdt, remove SPIN_LOCK_UNLOCKED

bfin_wdt, remove SPIN_LOCK_UNLOCKED

SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead

Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]>
Acked-by: Mike Frysinger <[EMAIL PROTECTED]>
Cc: Bryan Wu <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 drivers/watchdog/bfin_wdt.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/watchdog/bfin_wdt.c b/drivers/watchdog/bfin_wdt.c
index 309d279..31dc7a6 100644
--- a/drivers/watchdog/bfin_wdt.c
+++ b/drivers/watchdog/bfin_wdt.c
@@ -71,7 +71,7 @@ static int nowayout = WATCHDOG_NOWAYOUT;
 static struct watchdog_info bfin_wdt_info;
 static unsigned long open_check;
 static char expect_close;
-static spinlock_t bfin_wdt_spinlock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(bfin_wdt_spinlock);
 
 /**
  * bfin_wdt_keepalive - Keep the Userspace Watchdog Alive
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6027f661f8da653f084df80f4aade21359bcea35
Commit: 6027f661f8da653f084df80f4aade21359bcea35
Parent: bf6350a3dfcbd0a0811d7c210beacb66e90eca47
Author: Jiri Slaby <[EMAIL PROTECTED]>
AuthorDate: Sat Nov 10 04:32:45 2007 +0100
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Nov 19 21:09:52 2007 +

[WATCHDOG] Sbus: cpwatchdog, remove SPIN_LOCK_UNLOCKED

cpwatchdog, remove SPIN_LOCK_UNLOCKED

SPIN_LOCK_UNLOCKED is deprecated, use __SPIN_LOCK_UNLOCKED with an unique
name instead

Signed-off-by: Jiri Slaby <[EMAIL PROTECTED]>
Cc: "David S. Miller" <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 drivers/sbus/char/cpwatchdog.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/sbus/char/cpwatchdog.c b/drivers/sbus/char/cpwatchdog.c
index 7b5773d..a4e7581 100644
--- a/drivers/sbus/char/cpwatchdog.c
+++ b/drivers/sbus/char/cpwatchdog.c
@@ -154,7 +154,7 @@ struct wd_device {
 };
 
 static struct wd_device wd_dev = { 
-   0, SPIN_LOCK_UNLOCKED, 0, 0, 0, 0,
+   0, __SPIN_LOCK_UNLOCKED(wd_dev.lock), 0, 0, 0, 0,
 };
 
 static struct timer_list wd_timer;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] IT8212F watchdog driver

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=38ff6fd2fa4959925cf217ccaebea90fabd8ce04
Commit: 38ff6fd2fa4959925cf217ccaebea90fabd8ce04
Parent: 6027f661f8da653f084df80f4aade21359bcea35
Author: Jorge Boncompte [DTI2] <[EMAIL PROTECTED]>
AuthorDate: Mon Nov 19 15:09:21 2007 +0100
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Mon Nov 19 21:25:41 2007 +

[WATCHDOG] IT8212F watchdog driver

This patch adds support for the ITE Tech Inc. IT8712F EC-LPC Super I/O
chipset found on many Pentium III and AMD motherboards. Developed using code
from other watchdog drivers and the datasheet on ITE Tech homepage.

Signed-off-by: Jorge Boncompte <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
---
 drivers/watchdog/Kconfig   |   10 +
 drivers/watchdog/Makefile  |1 +
 drivers/watchdog/it8712f_wdt.c |  400 
 3 files changed, 411 insertions(+), 0 deletions(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 2792bc1..126b554 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -392,6 +392,16 @@ config ITCO_VENDOR_SUPPORT
  devices. At this moment we only have additional support for some
  SuperMicro Inc. motherboards.
 
+config IT8712F_WDT
+   tristate "IT8712F (Smart Guardian) Watchdog Timer"
+   depends on X86
+   ---help---
+ This is the driver for the built-in watchdog timer on the IT8712F
+ Super I/0 chipset used on many motherboards.
+
+ To compile this driver as a module, choose M here: the
+ module will be called it8712f_wdt.
+
 config SC1200_WDT
tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
depends on X86
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 7d9e573..e4779f7 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -66,6 +66,7 @@ obj-$(CONFIG_IBMASR) += ibmasr.o
 obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
 obj-$(CONFIG_I6300ESB_WDT) += i6300esb.o
 obj-$(CONFIG_ITCO_WDT) += iTCO_wdt.o iTCO_vendor_support.o
+obj-$(CONFIG_IT8712F_WDT) += it8712f_wdt.o
 obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
 obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
 obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o
diff --git a/drivers/watchdog/it8712f_wdt.c b/drivers/watchdog/it8712f_wdt.c
new file mode 100644
index 000..6330fc0
--- /dev/null
+++ b/drivers/watchdog/it8712f_wdt.c
@@ -0,0 +1,400 @@
+/*
+ * IT8712F "Smart Guardian" Watchdog support
+ *
+ * Copyright (c) 2006-2007 Jorge Boncompte - DTI2 <[EMAIL PROTECTED]>
+ *
+ * Based on info and code taken from:
+ *
+ * drivers/char/watchdog/scx200_wdt.c
+ * drivers/hwmon/it87.c
+ * IT8712F EC-LPC I/O Preliminary Specification 0.9.2.pdf
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * The author(s) of this software shall not be held liable for damages
+ * of any nature resulting due to the use of this software. This
+ * software is provided AS-IS with no warranties.
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#define NAME "it8712f_wdt"
+
+MODULE_AUTHOR("Jorge Boncompte - DTI2 <[EMAIL PROTECTED]>");
+MODULE_DESCRIPTION("IT8712F Watchdog Driver");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
+
+static int margin = 60;/* in seconds */
+module_param(margin, int, 0);
+MODULE_PARM_DESC(margin, "Watchdog margin in seconds");
+
+static int nowayout = WATCHDOG_NOWAYOUT;
+module_param(nowayout, int, 0);
+MODULE_PARM_DESC(nowayout, "Disable watchdog shutdown on close");
+
+static struct semaphore it8712f_wdt_sem;
+static unsigned expect_close;
+static spinlock_t io_lock;
+
+/* Dog Food address - We use the game port address */
+static unsigned short address;
+
+#defineREG 0x2e/* The register to read/write */
+#defineVAL 0x2f/* The value to read/write */
+
+#defineLDN 0x07/* Register: Logical device select */
+#defineDEVID   0x20/* Register: Device ID */
+#defineDEVREV  0x22/* Register: Device Revision */
+#define ACT_REG0x30/* LDN Register: Activation */
+#define BASE_REG   0x60/* LDN Register: Base address */
+
+#define IT8712F_DEVID  0x8712
+
+#define LDN_GPIO   0x07/* GPIO and Watch Dog Timer */
+#define LDN_GAME   0x09/* Game Port */
+
+#define WDT_CONTROL0x71/* WDT Register: Control */
+#define WDT_CONFIG 0x72/* WDT Register: Configuration */
+#define WDT_TIMEOUT0x73   

[WATCHDOG] ipmi: add the standard watchdog timeout ioctls

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=783e6bcde4e6a7c849fa5fa7f35b0fba721ac5f4
Commit: 783e6bcde4e6a7c849fa5fa7f35b0fba721ac5f4
Parent: 38ff6fd2fa4959925cf217ccaebea90fabd8ce04
Author: Corey Minyard <[EMAIL PROTECTED]>
AuthorDate: Tue Nov 20 12:14:46 2007 -0800
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Wed Nov 28 08:25:19 2007 +

[WATCHDOG] ipmi: add the standard watchdog timeout ioctls

Add the standard IOCTLs to the IPMI driver for setting and getting
the pretimeout.  Tested by Benoit Guillon.

Signed off by: Corey Minyard <[EMAIL PROTECTED]>
Cc: Benoit Guillon <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
 drivers/char/ipmi/ipmi_watchdog.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/char/ipmi/ipmi_watchdog.c 
b/drivers/char/ipmi/ipmi_watchdog.c
index e686fc9..8f45ca9 100644
--- a/drivers/char/ipmi/ipmi_watchdog.c
+++ b/drivers/char/ipmi/ipmi_watchdog.c
@@ -669,6 +669,7 @@ static int ipmi_ioctl(struct inode *inode, struct file 
*file,
return 0;
 
case WDIOC_SET_PRETIMEOUT:
+   case WDIOC_SETPRETIMEOUT:
i = copy_from_user(&val, argp, sizeof(int));
if (i)
return -EFAULT;
@@ -676,6 +677,7 @@ static int ipmi_ioctl(struct inode *inode, struct file 
*file,
return ipmi_set_timeout(IPMI_SET_TIMEOUT_HB_IF_NECESSARY);
 
case WDIOC_GET_PRETIMEOUT:
+   case WDIOC_GETPRETIMEOUT:
i = copy_to_user(argp, &pretimeout, sizeof(pretimeout));
if (i)
return -EFAULT;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[WATCHDOG] add Nano 7240 driver

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4c283357d865aad1f124c069f5f6e3f39e76790
Commit: c4c283357d865aad1f124c069f5f6e3f39e76790
Parent: 783e6bcde4e6a7c849fa5fa7f35b0fba721ac5f4
Author: Gilles Gigan <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 31 16:31:42 2007 +1000
Committer:  Wim Van Sebroeck <[EMAIL PROTECTED]>
CommitDate: Tue Dec 4 16:48:06 2007 +

[WATCHDOG] add Nano 7240 driver

Adds support for the built-in watchdog on EPIC Nano 7240 boards from IEI.

Tested on Nano-7240RS.

Hardware documentation of the platform (including watchdog) can be found
on the IEI website: http://www.ieiworld.com

Signed-off-by: Gilles Gigan <[EMAIL PROTECTED]>
Signed-off-by: Wim Van Sebroeck <[EMAIL PROTECTED]>
---
 drivers/watchdog/Kconfig   |   13 ++
 drivers/watchdog/Makefile  |1 +
 drivers/watchdog/sbc7240_wdt.c |  324 
 3 files changed, 338 insertions(+), 0 deletions(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 126b554..52dff40 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -466,6 +466,19 @@ config SBC8360_WDT
 
  Most people will say N.
 
+config SBC7240_WDT
+   tristate "SBC Nano 7240 Watchdog Timer"
+   depends on X86_32
+   ---help---
+ This is the driver for the hardware watchdog found on the IEI
+ single board computers EPIC Nano 7240 (and likely others). This
+ watchdog simply watches your kernel to make sure it doesn't freeze,
+ and if it does, it reboots your computer after a certain amount of
+ time.
+
+ To compile this driver as a module, choose M here: the
+ module will be called sbc7240_wdt.
+
 config CPU5_WDT
tristate "SMA CPU5 Watchdog"
depends on X86
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index e4779f7..87483cc 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -72,6 +72,7 @@ obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
 obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o
 obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o
 obj-$(CONFIG_SBC8360_WDT) += sbc8360.o
+obj-$(CONFIG_SBC7240_WDT) += sbc7240_wdt.o
 obj-$(CONFIG_CPU5_WDT) += cpu5wdt.o
 obj-$(CONFIG_SMSC37B787_WDT) += smsc37b787_wdt.o
 obj-$(CONFIG_W83627HF_WDT) += w83627hf_wdt.o
diff --git a/drivers/watchdog/sbc7240_wdt.c b/drivers/watchdog/sbc7240_wdt.c
new file mode 100644
index 000..4c8cefb
--- /dev/null
+++ b/drivers/watchdog/sbc7240_wdt.c
@@ -0,0 +1,324 @@
+/*
+ * NANO7240 SBC Watchdog device driver
+ *
+ * Based on w83877f.c by Scott Jennings,
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation;
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * rights and limitations under the License.
+ *
+ * (c) Copyright 2007  Gilles GIGAN <[EMAIL PROTECTED]>
+ *
+ */
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define SBC7240_PREFIX "sbc7240_wdt: "
+
+#define SBC7240_ENABLE_PORT0x443
+#define SBC7240_DISABLE_PORT   0x043
+#define SBC7240_SET_TIMEOUT_PORT   SBC7240_ENABLE_PORT
+#define SBC7240_MAGIC_CHAR 'V'
+
+#define SBC7240_TIMEOUT30
+#define SBC7240_MAX_TIMEOUT255
+static int timeout = SBC7240_TIMEOUT;  /* in seconds */
+module_param(timeout, int, 0);
+MODULE_PARM_DESC(timeout, "Watchdog timeout in seconds. (1<=timeout<="
+__MODULE_STRING(SBC7240_MAX_TIMEOUT) ", default="
+__MODULE_STRING(SBC7240_TIMEOUT) ")");
+
+static int nowayout = WATCHDOG_NOWAYOUT;
+module_param(nowayout, int, 0);
+MODULE_PARM_DESC(nowayout, "Disable watchdog when closing device file");
+
+#define SBC7240_OPEN_STATUS_BIT0
+#define SBC7240_ENABLED_STATUS_BIT 1
+#define SBC7240_EXPECT_CLOSE_STATUS_BIT2
+static unsigned long wdt_status;
+
+/*
+ * Utility routines
+ */
+
+static void wdt_disable(void)
+{
+   /* disable the watchdog */
+   if (test_and_clear_bit(SBC7240_ENABLED_STATUS_BIT, &wdt_status)) {
+   inb_p(SBC7240_DISABLE_PORT);
+   printk(KERN_INFO SBC7240_PREFIX
+  "Watchdog timer is now disabled.\n");
+   }
+}
+
+static void wdt_enable(void)
+{
+   /* enable the watchdog */
+   if (!test_and_set_bit(SBC7240_ENABLED_STATUS_BIT, &wdt_status)) {
+   inb_p(SBC7240_ENABLE_PORT);
+   printk(KERN_INFO SBC7240_PREFIX
+  "Watchdog timer is now enabled.\n");
+   }

V4L/DVB (6803): buf-core.c locking fixes

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3f84307a10b4d9039c5c8f718bcdd0928c9994c1
Commit: 3f84307a10b4d9039c5c8f718bcdd0928c9994c1
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 16:44:54 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 00:15:25 2007 -0200

V4L/DVB (6803): buf-core.c locking fixes

After commit 19fb1457990b6b7e15586ec7331541a184233acc the callers in
videobuf-core.c that already hold the lock must call
__videobuf_read_start() instead of videobuf_read_start().

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/videobuf-core.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/videobuf-core.c 
b/drivers/media/video/videobuf-core.c
index 81f77d2..c8a5cb5 100644
--- a/drivers/media/video/videobuf-core.c
+++ b/drivers/media/video/videobuf-core.c
@@ -909,7 +909,7 @@ ssize_t videobuf_read_stream(struct videobuf_queue *q,
if (q->streaming)
goto done;
if (!q->reading) {
-   retval = videobuf_read_start(q);
+   retval = __videobuf_read_start(q);
if (retval < 0)
goto done;
}
@@ -982,7 +982,7 @@ unsigned int videobuf_poll_stream(struct file *file,
 struct videobuf_buffer, stream);
} else {
if (!q->reading)
-   videobuf_read_start(q);
+   __videobuf_read_start(q);
if (!q->reading) {
rc = POLLERR;
} else if (NULL == q->read_buf) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


V4L/DVB (6798): saa7134: enable LNA in analog mode for Hauppauge WinTV HVR-1110

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3aa2269bd06681fbd0c47d2007381c35258ce0c
Commit: b3aa2269bd06681fbd0c47d2007381c35258ce0c
Parent: 3f84307a10b4d9039c5c8f718bcdd0928c9994c1
Author: Michael Krufky <[EMAIL PROTECTED]>
AuthorDate: Sun Dec 9 21:13:38 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 17:44:46 2007 -0200

V4L/DVB (6798): saa7134: enable LNA in analog mode for Hauppauge WinTV 
HVR-1110

Thanks to Hermann Pitton for noticing that this was missing.

Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
Cc: Hermann Pitton <[EMAIL PROTECTED]>
Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/saa7134/saa7134-cards.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/media/video/saa7134/saa7134-cards.c 
b/drivers/media/video/saa7134/saa7134-cards.c
index c6eb1e3..98c1b08 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -3221,6 +3221,7 @@ struct saa7134_board saa7134_boards[] = {
.radio_type = UNSET,
.tuner_addr = ADDR_UNSET,
.radio_addr = ADDR_UNSET,
+   .tuner_config   = 1,
.mpeg   = SAA7134_MPEG_DVB,
.inputs = {{
.name = name_tv,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


V4L/DVB (6814): Makefile: always enter video/

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1c1a8b9cbec2b6a75b8fa0abf6ccfd948229998a
Commit: 1c1a8b9cbec2b6a75b8fa0abf6ccfd948229998a
Parent: b3aa2269bd06681fbd0c47d2007381c35258ce0c
Author: Adrian Bunk <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 15:40:32 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 17:58:05 2007 -0200

V4L/DVB (6814): Makefile: always enter video/

Since not all code under drivers/media/video/ depends on
CONFIG_VIDEO_DEV we cannot only enter it depending
on CONFIG_VIDEO_DEV.

Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/Makefile |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/media/Makefile b/drivers/media/Makefile
index 8fa1993..8cf9135 100644
--- a/drivers/media/Makefile
+++ b/drivers/media/Makefile
@@ -3,6 +3,6 @@
 #
 
 obj-y := common/
-obj-$(CONFIG_VIDEO_DEV) += video/
+obj-y += video/
 obj-$(CONFIG_VIDEO_DEV) += radio/
 obj-$(CONFIG_DVB_CORE)  += dvb/
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


V4L/DVB (6819): i2c: fix drivers/media/video/bt866.c

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b5ae10c815941fab8e0e3b3801b4cb60ee2383a
Commit: 4b5ae10c815941fab8e0e3b3801b4cb60ee2383a
Parent: 1c1a8b9cbec2b6a75b8fa0abf6ccfd948229998a
Author: Andrew Morton <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 02:30:26 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 17:58:05 2007 -0200

V4L/DVB (6819): i2c: fix drivers/media/video/bt866.c

usage_count got removed.

Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/video/bt866.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/media/video/bt866.c b/drivers/media/video/bt866.c
index b767b09..96b4155 100644
--- a/drivers/media/video/bt866.c
+++ b/drivers/media/video/bt866.c
@@ -300,7 +300,6 @@ static struct i2c_client bt866_client_tmpl =
.addr = 0,
.adapter = NULL,
.driver = &i2c_driver_bt866,
-   .usage_count = 0
 };
 
 static int bt866_found_proc(struct i2c_adapter *adapter,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


V4L/DVB (6820): s5h1409: QAM SNR related fixes

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2300317f30770abd625fb051b0e5d373ce55a6ad
Commit: 2300317f30770abd625fb051b0e5d373ce55a6ad
Parent: 4b5ae10c815941fab8e0e3b3801b4cb60ee2383a
Author: Steven Toth <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 22:14:00 2007 -0300
Committer:  Mauro Carvalho Chehab <[EMAIL PROTECTED]>
CommitDate: Thu Dec 13 17:58:06 2007 -0200

V4L/DVB (6820): s5h1409: QAM SNR related fixes

QAM SNR values were incorrect when the cable was disconnected. This
patch extends the lookup tables to ensure correct values are being
returned.

Signed-off-by: Steven Toth <[EMAIL PROTECTED]>
Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>
Signed-off-by: Mauro Carvalho Chehab <[EMAIL PROTECTED]>
---
 drivers/media/dvb/frontends/s5h1409.c |   11 ---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/media/dvb/frontends/s5h1409.c 
b/drivers/media/dvb/frontends/s5h1409.c
index 8dee7ec..562d920 100644
--- a/drivers/media/dvb/frontends/s5h1409.c
+++ b/drivers/media/dvb/frontends/s5h1409.c
@@ -107,7 +107,7 @@ static struct vsb_snr_tab {
u16 val;
u16 data;
 } vsb_snr_tab[] = {
-   { 1023, 770, },
+   {  924, 300, },
{  923, 300, },
{  918, 295, },
{  915, 290, },
@@ -154,6 +154,7 @@ static struct qam64_snr_tab {
u16 val;
u16 data;
 } qam64_snr_tab[] = {
+   {1,   0, },
{   12, 300, },
{   15, 290, },
{   18, 280, },
@@ -217,6 +218,7 @@ static struct qam64_snr_tab {
{   95, 202, },
{   96, 201, },
{  104, 200, },
+   {  255,   0, },
 };
 
 /* QAM256 SNR lookup table */
@@ -224,6 +226,7 @@ static struct qam256_snr_tab {
u16 val;
u16 data;
 } qam256_snr_tab[] = {
+   {1,   0, },
{   12, 400, },
{   13, 390, },
{   15, 380, },
@@ -292,6 +295,7 @@ static struct qam256_snr_tab {
{  105, 262, },
{  106, 261, },
{  110, 260, },
+   {  255,   0, },
 };
 
 /* 8 bit registers, 16 bit values */
@@ -670,14 +674,15 @@ static int s5h1409_read_snr(struct dvb_frontend* fe, u16* 
snr)
u16 reg;
dprintk("%s()\n", __FUNCTION__);
 
-   reg = s5h1409_readreg(state, 0xf1) & 0x1ff;
-
switch(state->current_modulation) {
case QAM_64:
+   reg = s5h1409_readreg(state, 0xf0) & 0xff;
return s5h1409_qam64_lookup_snr(fe, snr, reg);
case QAM_256:
+   reg = s5h1409_readreg(state, 0xf0) & 0xff;
return s5h1409_qam256_lookup_snr(fe, snr, reg);
case VSB_8:
+   reg = s5h1409_readreg(state, 0xf1) & 0x3ff;
return s5h1409_vsb_lookup_snr(fe, snr, reg);
default:
break;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ocfs2: Don't panic when truncating an empty extent

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=92295d8054289eff0d52b4d12349f9b9df0f58e4
Commit: 92295d8054289eff0d52b4d12349f9b9df0f58e4
Parent: a86370fbb65a0a2cb21d28bf25a748f6cc04385b
Author: Mark Fasheh <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 3 15:02:10 2007 -0800
Committer:  Mark Fasheh <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:51:04 2007 -0800

ocfs2: Don't panic when truncating an empty extent

This BUG_ON() was unintentionally left in after the sparse file support was
written.

Signed-off-by: Mark Fasheh <[EMAIL PROTECTED]>
---
 fs/ocfs2/alloc.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index ce62c15..97f0db5 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -6093,8 +6093,6 @@ start:
mlog(0, "clusters_to_del = %u in this pass, tail blk=%llu\n",
 clusters_to_del, (unsigned long 
long)path_leaf_bh(path)->b_blocknr);
 
-   BUG_ON(clusters_to_del == 0);
-
mutex_lock(&tl_inode->i_mutex);
tl_sem = 1;
/* ocfs2_truncate_log_needs_flush guarantees us at least one
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a86370fbb65a0a2cb21d28bf25a748f6cc04385b
Commit: a86370fbb65a0a2cb21d28bf25a748f6cc04385b
Parent: ea9e7b5569a538123dc4d60ba36b9170ca8e8830
Author: Mark Fasheh <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 3 14:06:23 2007 -0800
Committer:  Mark Fasheh <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:49:43 2007 -0800

ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans()

We're holding the cluster lock when a failure might happen in
ocfs2_dir_foreach() so it needs to be released.

Signed-off-by: Mark Fasheh <[EMAIL PROTECTED]>
---
 fs/ocfs2/journal.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index f9d01e2..7e5f7ce 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1277,11 +1277,12 @@ static int ocfs2_queue_orphans(struct ocfs2_super *osb,
   ocfs2_orphan_filldir);
if (status) {
mlog_errno(status);
-   goto out;
+   goto out_cluster;
}
 
*head = priv.head;
 
+out_cluster:
ocfs2_meta_unlock(orphan_dir_inode, 0);
 out:
mutex_unlock(&orphan_dir_inode->i_mutex);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


MAINTAINERS: update the NFS CLIENT entry

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=78f5815368837ae7e3a0d3709c9f95f74e4d8537
Commit: 78f5815368837ae7e3a0d3709c9f95f74e4d8537
Parent: a10db50a4ae813fcb2f431f2fb039933c109a925
Author: Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 20:16:06 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 20:16:06 2007 -0500

MAINTAINERS: update the NFS CLIENT entry

Add in the new NFS mailing list on vger, website, and git tree info, and
update my email address to reflect the fact that I've been working for
netapp for the past 2 years.

Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 MAINTAINERS |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 9507b42..94143d7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2751,8 +2751,10 @@ S:   Maintained
 
 NFS CLIENT
 P: Trond Myklebust
-M: [EMAIL PROTECTED]
-L: [EMAIL PROTECTED]
+M: [EMAIL PROTECTED]
+L: [EMAIL PROTECTED]
+W: http://client.linux-nfs.org
+T: git git://git.linux-nfs.org/pub/linux/nfs-2.6.git
 S: Maintained
 
 NI5010 NETWORK DRIVER
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: remove dead code from __ide_dma_test_irq()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3f3e6e21845259854d862bfa3c39f6a84356fc3d
Commit: 3f3e6e21845259854d862bfa3c39f6a84356fc3d
Parent: 809b53c4ef7188dc284498ef6e4ec2d4d587a275
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:32:00 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:32:00 2007 +0100

ide: remove dead code from __ide_dma_test_irq()

Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-dma.c |6 --
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c
index 6879aaa..4703837 100644
--- a/drivers/ide/ide-dma.c
+++ b/drivers/ide/ide-dma.c
@@ -611,12 +611,6 @@ static int __ide_dma_test_irq(ide_drive_t *drive)
ide_hwif_t *hwif= HWIF(drive);
u8 dma_stat = hwif->INB(hwif->dma_status);
 
-#if 0  /* do not set unless you know what you are doing */
-   if (dma_stat & 4) {
-   u8 stat = hwif->INB(IDE_STATUS_REG);
-   hwif->OUTB(hwif->dma_status, dma_stat & 0xE4);
-   }
-#endif
/* return 1 if INTR asserted */
if ((dma_stat & 4) == 4)
return 1;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


NFS: Fix NFS mountpoint crossing...

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4584f520e1f773082ef44ff4f8969a5d992b16ec
Commit: 4584f520e1f773082ef44ff4f8969a5d992b16ec
Parent: 75b8c133267053c9986a7c8db5131f0e7349e806
Author: Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 19:01:45 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Tue Dec 11 19:01:45 2007 -0500

NFS: Fix NFS mountpoint crossing...

The check that was added to nfs_xdev_get_sb() to work around broken
servers, works fine for NFSv2, but causes mountpoint crossing on NFSv3 to
always return ESTALE.

Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 fs/nfs/super.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 2426e71..ea92920 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1475,7 +1475,7 @@ static int nfs_xdev_get_sb(struct file_system_type 
*fs_type, int flags,
error = PTR_ERR(mntroot);
goto error_splat_super;
}
-   if (mntroot->d_inode->i_op != &nfs_dir_inode_operations) {
+   if (mntroot->d_inode->i_op != 
server->nfs_client->rpc_ops->dir_inode_ops) {
dput(mntroot);
error = -ESTALE;
goto error_splat_super;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


usb.h: fix kernel-doc warning

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f88ed90d8627d0d3d93b330d6d2012c2934fb54e
Commit: f88ed90d8627d0d3d93b330d6d2012c2934fb54e
Parent: b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
Author: Randy Dunlap <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 3 14:14:16 2007 -0800
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:15 2007 -0800

usb.h: fix kernel-doc warning

Fix kernel-doc warning in usb.h:
Warning(linux-2.6.24-rc3-git7//include/linux/usb.h:166): No description 
found for parameter 'sysfs_files_created'

Signed-off-by: Randy Dunlap <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 include/linux/usb.h |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/include/linux/usb.h b/include/linux/usb.h
index 416ee76..5fc8ff7 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -107,6 +107,7 @@ enum usb_interface_condition {
  * @condition: binding state of the interface: not bound, binding
  * (in probe()), bound to a driver, or unbinding (in disconnect())
  * @is_active: flag set when the interface is bound and not suspended.
+ * @sysfs_files_created: sysfs attributes exist
  * @needs_remote_wakeup: flag set when the driver requires remote-wakeup
  * capability during autosuspend.
  * @dev: driver model's view of this device
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: fix ->io_32bit race in set_io_32bit()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=644a9d764b4747af057b3db73ccba28a168b1f4f
Commit: 644a9d764b4747af057b3db73ccba28a168b1f4f
Parent: bbe4d6d86565bfd9edbc3f19bc23f816af66240d
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:32:00 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:32:00 2007 +0100

ide: fix ->io_32bit race in set_io_32bit()

set_io_32bit() (ide_procset_t function) can race against running
PIO transfers.  Fix it by using ide_spin_wait_hwgroup().

Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide.c |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 85740ae..54943da 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -800,11 +800,17 @@ int set_io_32bit(ide_drive_t *drive, int arg)
if (arg < 0 || arg > 1 + (SUPPORT_VLB_SYNC << 1))
return -EINVAL;
 
+   if (ide_spin_wait_hwgroup(drive))
+   return -EBUSY;
+
drive->io_32bit = arg;
 #ifdef CONFIG_BLK_DEV_DTC2278
if (HWIF(drive)->chipset == ide_dtc2278)
HWIF(drive)->drives[!drive->select.b.unit].io_32bit = arg;
 #endif /* CONFIG_BLK_DEV_DTC2278 */
+
+   spin_unlock_irq(&ide_lock);
+
return 0;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ocfs2: Allow for debugging of transaction extends

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0879c584ffcccd50a8d0f72cab3a51702613f901
Commit: 0879c584ffcccd50a8d0f72cab3a51702613f901
Parent: 92295d8054289eff0d52b4d12349f9b9df0f58e4
Author: Mark Fasheh <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 3 16:42:19 2007 -0800
Committer:  Mark Fasheh <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:51:14 2007 -0800

ocfs2: Allow for debugging of transaction extends

The nastiest cases of transaction extends are also the rarest. We can expose
them more quickly at the expense of performance by going straight to the
journal_restart() in ocfs2_extend_trans(). Wrap things in OCFS2_DEBUG_FS so
that we only do this when "expensive debugging" is turned on.

Signed-off-by: Mark Fasheh <[EMAIL PROTECTED]>
---
 fs/ocfs2/journal.c |4 
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 7e5f7ce..0e1250c 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -193,11 +193,15 @@ int ocfs2_extend_trans(handle_t *handle, int nblocks)
 
mlog(0, "Trying to extend transaction by %d blocks\n", nblocks);
 
+#ifdef OCFS2_DEBUG_FS
+   status = 1;
+#else
status = journal_extend(handle, nblocks);
if (status < 0) {
mlog_errno(status);
goto bail;
}
+#endif
 
if (status > 0) {
mlog(0, "journal_extend failed, trying journal_restart\n");
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


PCI: Restore PCI expansion ROM P2P prefetch window creation

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bb44609361fe87c5e136c2b8dfde59bcbdbabf61
Commit: bb44609361fe87c5e136c2b8dfde59bcbdbabf61
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Gary Hade <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 17:09:13 2007 -0800
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:41:19 2007 -0800

PCI: Restore PCI expansion ROM P2P prefetch window creation

Restore PCI expansion ROM P2P prefetch window creation.

This patch reverts previous "Avoid creating P2P prefetch
window for expansion ROMs" change due to regressions that
were spotted on some systems.

Signed-off-by: Gary Hade <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/pci/probe.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index c2f8a78..2f75d69 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -276,7 +276,8 @@ static void pci_read_bases(struct pci_dev *dev, unsigned 
int howmany, int rom)
sz = pci_size(l, sz, (u32)PCI_ROM_ADDRESS_MASK);
if (sz) {
res->flags = (l & IORESOURCE_ROM_ENABLE) |
- IORESOURCE_MEM | IORESOURCE_READONLY;
+ IORESOURCE_MEM | IORESOURCE_PREFETCH |
+ IORESOURCE_READONLY | IORESOURCE_CACHEABLE;
res->start = l & PCI_ROM_ADDRESS_MASK;
res->end = res->start + (unsigned long) sz;
}
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


pdc202xx_new: fix Promise TX4 support

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eadb6ecf761166aa55ad44f05b7a29b10ddaba34
Commit: eadb6ecf761166aa55ad44f05b7a29b10ddaba34
Parent: c86ae7df90a26708e9e54e3a362046873d874e6c
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:58 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:58 2007 +0100

pdc202xx_new: fix Promise TX4 support

In case of Promise TX4 the first PCI device is located at slot 1
and the second one is at slot 2 so the offset used by pci_get_slot()
should be "+1" and not "+2".

Thanks goes out to Markus Dietz for bugreport and testing this patch.

Cc: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/pci/pdc202xx_new.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c
index 4234efe..2b4f44e 100644
--- a/drivers/ide/pci/pdc202xx_new.c
+++ b/drivers/ide/pci/pdc202xx_new.c
@@ -482,8 +482,9 @@ static struct pci_dev * __devinit pdc20270_get_dev2(struct 
pci_dev *dev)
 {
struct pci_dev *dev2;
 
-   dev2 = pci_get_slot(dev->bus, PCI_DEVFN(PCI_SLOT(dev->devfn) + 2,
+   dev2 = pci_get_slot(dev->bus, PCI_DEVFN(PCI_SLOT(dev->devfn) + 1,
PCI_FUNC(dev->devfn)));
+
if (dev2 &&
dev2->vendor == dev->vendor &&
dev2->device == dev->device) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB: fix locking loop by avoiding flush_scheduled_work

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d48bd977e0dd8c17081d12242bfc09d743ea0d26
Commit: d48bd977e0dd8c17081d12242bfc09d743ea0d26
Parent: f88ed90d8627d0d3d93b330d6d2012c2934fb54e
Author: Alan Stern <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 16:02:23 2007 -0500
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:15 2007 -0800

USB: fix locking loop by avoiding flush_scheduled_work

This patch (as1027) replaces a call to flush_scheduled_work() -- a
dangerous routine to invoke, especially while holding any sort of lock
-- with calls to cancel_work_sync() and cancel_delayed_work_sync().

This fixes Bugzilla #9532.

Signed-off-by: Alan Stern <[EMAIL PROTECTED]>
CC: David Brownell <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/core/hub.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 13b326a..b04d232 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -522,9 +522,9 @@ static void hub_quiesce(struct usb_hub *hub)
/* (blocking) stop khubd and related activity */
usb_kill_urb(hub->urb);
if (hub->has_indicators)
-   cancel_delayed_work(&hub->leds);
-   if (hub->has_indicators || hub->tt.hub)
-   flush_scheduled_work();
+   cancel_delayed_work_sync(&hub->leds);
+   if (hub->tt.hub)
+   cancel_work_sync(&hub->tt.kevent);
 }
 
 static void hub_activate(struct usb_hub *hub)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: fix ide_scan_pcibus() error message

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=125a8191dcbc927441263a332826989cc2925681
Commit: 125a8191dcbc927441263a332826989cc2925681
Parent: 46255d4083ca6c6e3c40cb4d2f3198c77bca7e24
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:57 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:57 2007 +0100

ide: fix ide_scan_pcibus() error message

Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/setup-pci.c |7 ---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index 25fd090..708e01d 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -794,9 +794,10 @@ void __init ide_scan_pcibus (int scan_direction)
list_for_each_safe(l, n, &ide_pci_drivers) {
list_del(l);
d = list_entry(l, struct pci_driver, node);
-   if (__pci_register_driver(d, d->driver.owner, 
d->driver.mod_name))
-   printk(KERN_ERR "%s: failed to register driver for 
%s\n",
-  __FUNCTION__, d->driver.mod_name);
+   if (__pci_register_driver(d, d->driver.owner,
+ d->driver.mod_name))
+   printk(KERN_ERR "%s: failed to register %s driver\n",
+   __FUNCTION__, d->driver.mod_name);
}
 }
 #endif
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


NFS: Fix an Oops in NFS unmount

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a10db50a4ae813fcb2f431f2fb039933c109a925
Commit: a10db50a4ae813fcb2f431f2fb039933c109a925
Parent: a5576cfa5cd8d8aa874bd4ee500dc8a2e7cbad18
Author: Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 11:12:15 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 11:12:15 2007 -0500

NFS: Fix an Oops in NFS unmount

Ensure that the dummy 'root dentry' is invisible to d_find_alias(). If not,
then it may be spliced into the tree if a parent directory from the same
filesystem gets mounted at a later time.

Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 fs/nfs/getroot.c |   11 +++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/getroot.c b/fs/nfs/getroot.c
index 0ee4384..e6242cd 100644
--- a/fs/nfs/getroot.c
+++ b/fs/nfs/getroot.c
@@ -57,6 +57,17 @@ static int nfs_superblock_set_dummy_root(struct super_block 
*sb, struct inode *i
}
/* Circumvent igrab(): we know the inode is not being freed */
atomic_inc(&inode->i_count);
+   /*
+* Ensure that this dentry is invisible to d_find_alias().
+* Otherwise, it may be spliced into the tree by
+* d_materialise_unique if a parent directory from the same
+* filesystem gets mounted at a later time.
+* This again causes shrink_dcache_for_umount_subtree() to
+* Oops, since the test for IS_ROOT() will fail.
+*/
+   spin_lock(&dcache_lock);
+   list_del_init(&sb->s_root->d_alias);
+   spin_unlock(&dcache_lock);
}
return 0;
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


kobject: fix the documentation of how kobject_set_name works

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8c4606b1a4f6eb09344294b7f11641f36cd402af
Commit: 8c4606b1a4f6eb09344294b7f11641f36cd402af
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Greg Kroah-Hartman <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 4 14:45:47 2007 +0800
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:33:18 2007 -0800

kobject: fix the documentation of how kobject_set_name works

Thanks to Dave Young <[EMAIL PROTECTED]> for pointing out that I
forgot to update the comment when I rewrote kobject_set_name.

Cc: Dave Young <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 lib/kobject.c |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/kobject.c b/lib/kobject.c
index b52e9f4..3590f02 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -234,13 +234,13 @@ int kobject_register(struct kobject * kobj)
 
 
 /**
- * kobject_set_name - Set the name of an object
- * @kobj:  object.
- * @fmt:   format string used to build the name
+ * kobject_set_name - Set the name of a kobject
+ * @kobj: kobject to name
+ * @fmt: format string used to build the name
  *
- * If strlen(name) >= KOBJ_NAME_LEN, then use a dynamically allocated
- * string that @kobj->k_name points to. Otherwise, use the static 
- * @kobj->name array.
+ * This sets the name of the kobject.  If you have already added the
+ * kobject to the system, you must call kobject_rename() in order to
+ * change the name of the kobject.
  */
 int kobject_set_name(struct kobject * kobj, const char * fmt, ...)
 {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: deprecate CONFIG_BLK_DEV_OFFBOARD

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=46255d4083ca6c6e3c40cb4d2f3198c77bca7e24
Commit: 46255d4083ca6c6e3c40cb4d2f3198c77bca7e24
Parent: ad0e74d3851e440e0882424577bc984c89019f52
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:57 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:57 2007 +0100

ide: deprecate CONFIG_BLK_DEV_OFFBOARD

Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/Kconfig |6 +-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index 45b2228..fb06555 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -390,7 +390,7 @@ config IDEPCI_PCIBUS_ORDER
 
 # TODO: split it on per host driver config options (or module parameters)
 config BLK_DEV_OFFBOARD
-   bool "Boot off-board chipsets first support"
+   bool "Boot off-board chipsets first support (DEPRECATED)"
depends on BLK_DEV_IDEPCI && (BLK_DEV_AEC62XX || BLK_DEV_GENERIC || 
BLK_DEV_HPT34X || BLK_DEV_HPT366 || BLK_DEV_PDC202XX_NEW || 
BLK_DEV_PDC202XX_OLD || BLK_DEV_TC86C001)
help
  Normally, IDE controllers built into the motherboard (on-board
@@ -410,6 +410,10 @@ config BLK_DEV_OFFBOARD
  Note that, if you do this, the order of the hd* devices will be
  rearranged which may require modification of fstab and other files.
 
+ Please also note that this method of assuring stable naming of
+ IDE devices is unreliable and use other means for achieving it
+ (i.e. udev).
+
  If in doubt, say N.
 
 config BLK_DEV_GENERIC
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Add Documentation for FAIR_USER_SCHED sysfs files

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0594fe069df5a10686a3b923b36a0e7a6aed2393
Commit: 0594fe069df5a10686a3b923b36a0e7a6aed2393
Parent: e11d044efdd2e5c837c4d470fc447b49a9aebfe1
Author: Dhaval Giani <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 11:18:59 2007 +0530
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:33:19 2007 -0800

Add Documentation for FAIR_USER_SCHED sysfs files

This patch adds documentation about /sys/kernel/uids//cpu_share
to Documentation/ABI.

Signed-off-by: Dhaval Giani <[EMAIL PROTECTED]>
Cc: Ingo Molnar <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 Documentation/ABI/testing/sysfs-kernel-uids |   14 ++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/Documentation/ABI/testing/sysfs-kernel-uids 
b/Documentation/ABI/testing/sysfs-kernel-uids
new file mode 100644
index 000..648d65d
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-kernel-uids
@@ -0,0 +1,14 @@
+What:  /sys/kernel/uids//cpu_shares
+Date:  December 2007
+Contact:   Dhaval Giani <[EMAIL PROTECTED]>
+   Srivatsa Vaddagiri <[EMAIL PROTECTED]>
+Description:
+   The /sys/kernel/uids//cpu_shares tunable is used
+   to set the cpu bandwidth a user is allowed. This is a
+   propotional value. What that means is that if there
+   are two users logged in, each with an equal number of
+   shares, then they will get equal CPU bandwidth. Another
+   example would be, if User A has shares = 1024 and user
+   B has shares = 2048, User B will get twice the CPU
+   bandwidth user A will. For more details refer
+   Documentation/sched-design-CFS.txt
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB: option: Bind to the correct interface of the Huawei E220

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
Commit: b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8
Parent: 8be27c2de64e95c3da12a4b002f623570b039874
Author: Jaime Velasco Juan <[EMAIL PROTECTED]>
AuthorDate: Fri Nov 30 16:30:11 2007 +
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:15 2007 -0800

USB: option: Bind to the correct interface of the Huawei E220

This fixes a bunch of problems we are having with the Huawei devices...


Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]>
Signed-off-by: Jaime Velasco Juan <[EMAIL PROTECTED]>
Signed-off-by: Pete Zaitcev <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/serial/option.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 4590124..d1185f5 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -158,8 +158,8 @@ static struct usb_device_id option_ids[] = {
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_NETWORK) },
{ USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
-   { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220) },
-   { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS) },
+   { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 
0xff, 0xff, 0xff) },
+   { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 
HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1100) }, /* Novatel Merlin 
XS620/S640 */
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1110) }, /* Novatel Merlin 
S620 */
{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x1120) }, /* Novatel Merlin 
EX720 */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: remove stale changelog from ide-probe.c

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bbe4d6d86565bfd9edbc3f19bc23f816af66240d
Commit: bbe4d6d86565bfd9edbc3f19bc23f816af66240d
Parent: fedda1e13125153d502e84856a2640acdb4c38f0
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:32:00 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:32:00 2007 +0100

ide: remove stale changelog from ide-probe.c

Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-probe.c |   18 ++
 1 files changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index bd0a600..2994523 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -13,22 +13,8 @@
  *
  * This is the IDE probe module, as evolved from hd.c and ide.c.
  *
- * Version 1.00move drive probing code from ide.c to 
ide-probe.c
- * Version 1.01fix compilation problem for m68k
- * Version 1.02increase WAIT_PIDENTIFY to avoid CD-ROM locking 
at boot
- *  by Andrea Arcangeli
- * Version 1.03fix for (hwif->chipset == ide_4drives)
- * Version 1.04fixed buggy treatments of known flash memory 
cards
- *
- * Version 1.05fix for (hwif->chipset == ide_pdc4030)
- * added ide6/7/8/9
- * allowed for secondary flash card to be detectable
- *  with new flag : drive->ata_flash : 1;
- * Version 1.06stream line request queue and prep for cascade 
project.
- * Version 1.07max_sect <= 255; slower disks would get behind 
and
- * then fall over when they get to 256.Paul G.
- * Version 1.10Update set for new IDE. drive->id is now always
- * valid after probe time even with noprobe
+ * -- increase WAIT_PIDENTIFY to avoid CD-ROM locking at boot
+ *  by Andrea Arcangeli
  */
 
 #include 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB: revert portions of "UNUSUAL_DEV: Sync up some reported devices from Ubuntu"

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e70e7690b66dc06fe2ad9058e696e18fe7f3faa6
Commit: e70e7690b66dc06fe2ad9058e696e18fe7f3faa6
Parent: 565227c08226e458da191518251dbff6831624c2
Author: Greg Kroah-Hartman <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 14 19:18:31 2007 -0500
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:16 2007 -0800

USB: revert portions of "UNUSUAL_DEV: Sync up some reported devices from 
Ubuntu"

This reverts one change from 67fa10627ec0d8aa16f1cf38cf527e67d8097d3c
that prevented userspace from seing the "driver disk" lun in a san disk
device.  The kernel shouldn't do this, it's up to userspace to handle
this properly, if it somehow wants to filter this away.


Cc: Ben Collins <[EMAIL PROTECTED]>
Cc: Alan Stern <[EMAIL PROTECTED]>
Cc: Phil Dibowitz <[EMAIL PROTECTED]>
Cc: Kyle McMartin <[EMAIL PROTECTED]>
Cc: Matthew Dharm <[EMAIL PROTECTED]>
Cc: Hans de Goede <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/storage/unusual_devs.h |8 
 1 files changed, 0 insertions(+), 8 deletions(-)

diff --git a/drivers/usb/storage/unusual_devs.h 
b/drivers/usb/storage/unusual_devs.h
index 7bbfd31..6d6108b 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1265,14 +1265,6 @@ UNUSUAL_DEV( 0x0ace, 0x20ff, 0x0101, 0x0101,
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_IGNORE_DEVICE ),
 
-/* SanDisk that has a second LUN for a driver ISO, reported by
- * Ben Collins <[EMAIL PROTECTED]> */
-UNUSUAL_DEV( 0x0781, 0x5406, 0x, 0x,
-   "SanDisk",
-   "U3 Cruzer Micro driver ISO",
-   US_SC_DEVICE, US_PR_DEVICE, NULL,
-   US_FL_SINGLE_LUN ),
-
 #ifdef CONFIG_USB_STORAGE_ISD200
 UNUSUAL_DEV(  0x0bf6, 0xa001, 0x0100, 0x0110,
"ATI",
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: add /sys/bus/ide/devices/*/{model,firmware,serial} sysfs entries

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e11b9035a47da66fcd4bafd3a5f6b14f51ca667e
Commit: e11b9035a47da66fcd4bafd3a5f6b14f51ca667e
Parent: 1b7d3477a7b0d52406d68b01bc8931f43112677f
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:58 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:58 2007 +0100

ide: add /sys/bus/ide/devices/*/{model,firmware,serial} sysfs entries

Cc: Dan Kegel <[EMAIL PROTECTED]>
Cc: Kay Sievers <[EMAIL PROTECTED]>
Cc: Xavier Bestel <[EMAIL PROTECTED]>
Cc: Andrey Borzenkov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide.c |   24 
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 674a65c..85740ae 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -1670,10 +1670,34 @@ static ssize_t modalias_show(struct device *dev, struct 
device_attribute *attr,
return sprintf(buf, "ide:m-%s\n", media_string(drive));
 }
 
+static ssize_t model_show(struct device *dev, struct device_attribute *attr,
+ char *buf)
+{
+   ide_drive_t *drive = to_ide_device(dev);
+   return sprintf(buf, "%s\n", drive->id->model);
+}
+
+static ssize_t firmware_show(struct device *dev, struct device_attribute *attr,
+char *buf)
+{
+   ide_drive_t *drive = to_ide_device(dev);
+   return sprintf(buf, "%s\n", drive->id->fw_rev);
+}
+
+static ssize_t serial_show(struct device *dev, struct device_attribute *attr,
+  char *buf)
+{
+   ide_drive_t *drive = to_ide_device(dev);
+   return sprintf(buf, "%s\n", drive->id->serial_no);
+}
+
 static struct device_attribute ide_dev_attrs[] = {
__ATTR_RO(media),
__ATTR_RO(drivename),
__ATTR_RO(modalias),
+   __ATTR_RO(model),
+   __ATTR_RO(firmware),
+   __ATTR(serial, 0400, serial_show, NULL),
__ATTR_NULL
 };
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: add missing checks for control register existence

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ad0e74d3851e440e0882424577bc984c89019f52
Commit: ad0e74d3851e440e0882424577bc984c89019f52
Parent: 69ae6fee4f95c0535e49e338ce0ed3b27fd485b5
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:57 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:57 2007 +0100

ide: add missing checks for control register existence

Add missing checks for control register existence (some legacy m68k specific
IDE controllers don't have it).  Also use drive->ctl while at it.

Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-io.c|3 ++-
 drivers/ide/ide-probe.c |3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index db22d1f..bef781f 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -970,7 +970,8 @@ static void ide_check_pm_state(ide_drive_t *drive, struct 
request *rq)
if (rc)
printk(KERN_WARNING "%s: bus not ready on wakeup\n", 
drive->name);
SELECT_DRIVE(drive);
-   HWIF(drive)->OUTB(8, HWIF(drive)->io_ports[IDE_CONTROL_OFFSET]);
+   if (IDE_CONTROL_REG)
+   HWIF(drive)->OUTB(drive->ctl, IDE_CONTROL_REG);
rc = ide_wait_not_busy(HWIF(drive), 10);
if (rc)
printk(KERN_WARNING "%s: drive not ready on wakeup\n", 
drive->name);
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index ee848c7..bd0a600 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -667,7 +667,8 @@ static int wait_hwif_ready(ide_hwif_t *hwif)
/* Ignore disks that we will not probe for later. */
if (!drive->noprobe || drive->present) {
SELECT_DRIVE(drive);
-   hwif->OUTB(8, hwif->io_ports[IDE_CONTROL_OFFSET]);
+   if (IDE_CONTROL_REG)
+   hwif->OUTB(drive->ctl, IDE_CONTROL_REG);
mdelay(2);
rc = ide_wait_not_busy(hwif, 35000);
if (rc)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB: cp2101: new device id

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8be27c2de64e95c3da12a4b002f623570b039874
Commit: 8be27c2de64e95c3da12a4b002f623570b039874
Parent: 33abc04f0420dceed0ebc2d1094019d3bb2b5c29
Author: Jeff Long <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 28 11:02:09 2007 -0500
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:14 2007 -0800

USB: cp2101: new device id

This adds a device ID for the Aerocomm Radio Modem, which uses the
cp2102.  I'm sure changing num_bulk_in/num_bulk_out to NUM_DONT_CARE
is the wrong fix, but this is the only device I have with a cp2102,
so I have no idea what a good global value would be, if there is one.
Zero didn't work with this device.

From: Jeff Long <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/serial/cp2101.c |5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/serial/cp2101.c b/drivers/usb/serial/cp2101.c
index 3a83cb4..da16b51 100644
--- a/drivers/usb/serial/cp2101.c
+++ b/drivers/usb/serial/cp2101.c
@@ -71,6 +71,7 @@ static struct usb_device_id id_table [] = {
{ USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */
{ USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, 
Baby-JTAG */
{ USB_DEVICE(0x10C4, 0x81E2) }, /* Lipowsky Industrie Elektronik GmbH, 
Baby-LIN */
+   { USB_DEVICE(0x10C4, 0x81E7) }, /* Aerocomm Radio */
{ USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, 
HARP-1 */
{ USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
{ USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
@@ -98,8 +99,8 @@ static struct usb_serial_driver cp2101_device = {
.usb_driver = &cp2101_driver,
.id_table   = id_table,
.num_interrupt_in   = 0,
-   .num_bulk_in= 0,
-   .num_bulk_out   = 0,
+   .num_bulk_in= NUM_DONT_CARE,
+   .num_bulk_out   = NUM_DONT_CARE,
.num_ports  = 1,
.open   = cp2101_open,
.close  = cp2101_close,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB: at91_udc: correct hanging while disconnecting usb cable

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=08cbc706acd2dd601b0663e28fa97ffb0564e105
Commit: 08cbc706acd2dd601b0663e28fa97ffb0564e105
Parent: 442258e2ff69276ff767f3703b30ce6a31fdd181
Author: Nicolas Ferre <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 15:52:58 2007 -0800
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:15 2007 -0800

USB: at91_udc: correct hanging while disconnecting usb cable

Correct hanging while disconnecting the USB device cable.  Prevent a race
between vbus and UDP interrupts.  This bug was tracked on at91sam9260ek
boards.

A usb resume interrupt was firing after the vbus interrupt : the IP was
then already stoped and not able to deal with it (no more clock).  A simple
interrupt disabling is ok as the "end of bus reset" irq is non maskable and
ok to resume the USB device IP.

Signed-off-by: Nicolas Ferre <[EMAIL PROTECTED]>
Acked-by: David Brownell <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/gadget/at91_udc.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/at91_udc.c b/drivers/usb/gadget/at91_udc.c
index a6adf7e..cd62b02 100644
--- a/drivers/usb/gadget/at91_udc.c
+++ b/drivers/usb/gadget/at91_udc.c
@@ -887,6 +887,7 @@ static void pullup(struct at91_udc *udc, int is_on)
 
if (is_on) {
clk_on(udc);
+   at91_udp_write(udc, AT91_UDP_ICR, AT91_UDP_RXRSM);
at91_udp_write(udc, AT91_UDP_TXVC, 0);
if (cpu_is_at91rm9200())
at91_set_gpio_value(udc->board.pullup_pin, 1);
@@ -904,6 +905,7 @@ static void pullup(struct at91_udc *udc, int is_on)
}
} else {
stop_activity(udc);
+   at91_udp_write(udc, AT91_UDP_IDR, AT91_UDP_RXRSM);
at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS);
if (cpu_is_at91rm9200())
at91_set_gpio_value(udc->board.pullup_pin, 0);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


NFSv2/v3: Fix a memory leak when using -onolock

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5cef338b30c110daf547fb13d99f0c77f2a79fbc
Commit: 5cef338b30c110daf547fb13d99f0c77f2a79fbc
Parent: 4584f520e1f773082ef44ff4f8969a5d992b16ec
Author: Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 11 22:01:56 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Tue Dec 11 22:01:56 2007 -0500

NFSv2/v3: Fix a memory leak when using -onolock

Neil Brown said:
> Hi Trond,
>
> We found that a machine which made moderately heavy use of
> 'automount' was leaking some nfs data structures - particularly the
> 4K allocated by rpc_alloc_iostats.
> It turns out that this only happens with filesystems with -onolock
> set.

> The problem is that if NFS_MOUNT_NONLM is set, nfs_start_lockd doesn't
> set server->destroy, so when the filesystem is unmounted, the
> ->client_acl is not shutdown, and so several resources are still
> held.  Multiple mount/umount cycles will slowly eat away memory
> several pages at a time.

Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
Acked-by: NeilBrown <[EMAIL PROTECTED]>
---
 fs/nfs/client.c |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 70587f3..a6f6254 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -410,9 +410,6 @@ static int nfs_create_rpc_client(struct nfs_client *clp, 
int proto,
  */
 static void nfs_destroy_server(struct nfs_server *server)
 {
-   if (!IS_ERR(server->client_acl))
-   rpc_shutdown_client(server->client_acl);
-
if (!(server->flags & NFS_MOUNT_NONLM))
lockd_down();   /* release rpc.lockd */
 }
@@ -755,6 +752,9 @@ void nfs_free_server(struct nfs_server *server)
 
if (server->destroy != NULL)
server->destroy(server);
+
+   if (!IS_ERR(server->client_acl))
+   rpc_shutdown_client(server->client_acl);
if (!IS_ERR(server->client))
rpc_shutdown_client(server->client);
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB: sierra: fix product id

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9e13ac30f850313be9232497ff98e90c43bc6b6
Commit: b9e13ac30f850313be9232497ff98e90c43bc6b6
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
AuthorDate: Tue Dec 4 11:37:12 2007 -0700
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:14 2007 -0800

USB: sierra: fix product id

Attached is a patch to fix the addition of the new product ids I sent.

It is against 2.6.24-rc4, as Linus included the broken version of the
patch I sent you in that tree. :(

Not sure if this is the right method to go about this, but hopefully I got
it right this time.

Signed-off-by: Andrew Gilmore <[EMAIL PROTECTED]>
CC: Kevin Lloyd <[EMAIL PROTECTED]>
Cc: stable <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/serial/sierra.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 605ebcc..e5c2740 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -100,6 +100,7 @@ static struct usb_device_id id_table [] = {
{ USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */
{ USB_DEVICE(0x0f30, 0x1b1d) }, /* Sierra Wireless MC5720 */
{ USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */
+   { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */
{ USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */
{ USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */
{ USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U */
@@ -137,7 +138,6 @@ static struct usb_device_id id_table_3port [] = {
{ USB_DEVICE(0x1199, 0x0218) }, /* Sierra Wireless MC5720 */
{ USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */
{ USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */
-   { USB_DEVICE(0x1199, 0x0220) }, /* Sierra Wireless MC5725 */
{ USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */
{ USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */
{ USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U*/
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: remove stale changelog from ide-disk.c

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fedda1e13125153d502e84856a2640acdb4c38f0
Commit: fedda1e13125153d502e84856a2640acdb4c38f0
Parent: 3f3e6e21845259854d862bfa3c39f6a84356fc3d
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:32:00 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:32:00 2007 +0100

ide: remove stale changelog from ide-disk.c

Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-disk.c |   26 --
 1 files changed, 0 insertions(+), 26 deletions(-)

diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index b77c849..b178190 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -13,32 +13,6 @@
  *and Andre Hedrick <[EMAIL PROTECTED]>
  *
  * This is the IDE/ATA disk driver, as evolved from hd.c and ide.c.
- *
- * Version 1.00move disk only code from ide.c to ide-disk.c
- * support optional byte-swapping of all data
- * Version 1.01fix previous byte-swapping code
- * Version 1.02remove ", LBA" from drive identification msgs
- * Version 1.03fix display of id->buf_size for big-endian
- * Version 1.04add /proc configurable settings and S.M.A.R.T 
support
- * Version 1.05add capacity support for ATA3 >= 8GB
- * Version 1.06get boot-up messages to show full cyl count
- * Version 1.07disable door-locking if it fails
- * Version 1.08fixed CHS/LBA translations for ATA4 > 8GB,
- * process of adding new ATA4 compliance.
- * fixed problems in allowing fdisk to see
- * the entire disk.
- * Version 1.09added increment of rq->sector in ide_multwrite
- * added UDMA 3/4 reporting
- * Version 1.10request queue changes, Ultra DMA 100
- * Version 1.11added 48-bit lba
- * Version 1.12adding taskfile io access method
- * Version 1.13added standby and flush-cache for notifier
- * Version 1.14added acoustic-wcache
- * Version 1.15convert all calls to ide_raw_taskfile
- * since args will return register content.
- * Version 1.16added suspend-resume-checkpower
- * Version 1.17do flush on standby, do flush on ATA < ATA6
- * fix wcache setup.
  */
 
 #define IDEDISK_VERSION"1.18"
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide-cd: remove dead post_transform_command()

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c86ae7df90a26708e9e54e3a362046873d874e6c
Commit: c86ae7df90a26708e9e54e3a362046873d874e6c
Parent: 3ab7efe8e2cbcca2d401b43cfcc2fa9a7dac2299
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:58 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:58 2007 +0100

ide-cd: remove dead post_transform_command()

post_transform_command() call in cdrom_newpc_intr() has no effect because
it is done after the request has already been fully completed (rq->bio and
rq->data are always NULL).  It was verified to be true regardless whether
INQUIRY command is using DMA or PIO to transfer data (by using modified
Tejun Heo's test-shortsg.c utility and adding a few printk()-s to ide-cd).

This was uncovered thanks to the "blk_end_request: full I/O completion
handler (take 3)" patch series from Kiyoshi Ueda.

Cc: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Cc: Kiyoshi Ueda <[EMAIL PROTECTED]
Cc: Jun'ichi Nomura <[EMAIL PROTECTED]>
Cc: Tejun Heo <[EMAIL PROTECTED]>
Acked-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/ide-cd.c |   28 
 1 files changed, 0 insertions(+), 28 deletions(-)

diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index db9abd8..92ac658 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -1650,31 +1650,6 @@ static int cdrom_write_check_ireason(ide_drive_t *drive, 
int len, int ireason)
return 1;
 }
 
-static void post_transform_command(struct request *req)
-{
-   u8 *c = req->cmd;
-   char *ibuf;
-
-   if (!blk_pc_request(req))
-   return;
-
-   if (req->bio)
-   ibuf = bio_data(req->bio);
-   else
-   ibuf = req->data;
-
-   if (!ibuf)
-   return;
-
-   /*
-* set ansi-revision and response data as atapi
-*/
-   if (c[0] == GPCMD_INQUIRY) {
-   ibuf[2] |= 2;
-   ibuf[3] = (ibuf[3] & 0xf0) | 2;
-   }
-}
-
 typedef void (xfer_func_t)(ide_drive_t *, void *, u32);
 
 /*
@@ -1810,9 +1785,6 @@ static ide_startstop_t cdrom_newpc_intr(ide_drive_t 
*drive)
return ide_started;
 
 end_request:
-   if (!rq->data_len)
-   post_transform_command(rq);
-
spin_lock_irqsave(&ide_lock, flags);
blkdev_dequeue_request(rq);
end_that_request_last(rq, 1);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Revert "NFS: Ensure we return zero if applications attempt to write zero bytes"

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a5576cfa5cd8d8aa874bd4ee500dc8a2e7cbad18
Commit: a5576cfa5cd8d8aa874bd4ee500dc8a2e7cbad18
Parent: 50e1092b3a119bb4660bb6bd2e1749dc2d8ac62e
Author: Trond Myklebust <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 11:08:33 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 11:08:33 2007 -0500

Revert "NFS: Ensure we return zero if applications attempt to write zero 
bytes"

This reverts commit b9148c6b80d802dbc2a7530b29915a80432e50c7.

On Wed, 12 Dec 2007 10:57:30 -0500, Chuck Lever wrote
> commit b9148c6b should be reverted.  It was recently forward-ported
> from some years-old patches, and is clearly not needed now.
>
> On Dec 11, 2007, at 5:21 PM, Adrian Bunk wrote:
>
>> This code became dead after commit
>> b9148c6b80d802dbc2a7530b29915a80432e50c7
>> (which BTW doesn't seem to have changed any behaviour) and can
>> therefore
>> be removed.
>>
>> Spotted by the Coverity checker.
>>
>> Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]>
>>
>> ---
>> --- linux-2.6/fs/nfs/direct.c.old 2007-12-02 21:54:53.0 +0100
>> +++ linux-2.6/fs/nfs/direct.c 2007-12-02 21:55:10.0 +0100
>> @@ -897,15 +897,12 @@ ssize_t nfs_file_direct_write(struct kio
>>   if (!count)
>>   goto out;   /* return 0 */
>>
>>   retval = -EINVAL;
>>   if ((ssize_t) count < 0)
>>   goto out;
>> - retval = 0;
>> - if (!count)
>> - goto out;
>>
>>   retval = nfs_sync_mapping(mapping);
>>   if (retval)
>>   goto out;
>>
>>   retval = nfs_direct_write(iocb, iov, nr_segs, pos, count);
>>

Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 fs/nfs/direct.c |2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index 5e8d82f..3c9d16b 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -894,8 +894,6 @@ ssize_t nfs_file_direct_write(struct kiocb *iocb, const 
struct iovec *iov,
retval = generic_write_checks(file, &pos, &count, 0);
if (retval)
goto out;
-   if (!count)
-   goto out;   /* return 0 */
 
retval = -EINVAL;
if ((ssize_t) count < 0)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


HOWTO: change addresses of maintainer and lxr url for Korean HOWTO

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=57e1fd1f589414258dbbac8e0ea7bc2af8344ec3
Commit: 57e1fd1f589414258dbbac8e0ea7bc2af8344ec3
Parent: 0594fe069df5a10686a3b923b36a0e7a6aed2393
Author: minchan kim <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 13 11:47:17 2007 +0900
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:33:19 2007 -0800

HOWTO: change addresses of maintainer and lxr url for Korean HOWTO

So sorry. again My mail is set with EUC-kR.
I'll resend with UTF-8.

Signed-off-by: barrios <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 Documentation/ko_KR/HOWTO |6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Documentation/ko_KR/HOWTO b/Documentation/ko_KR/HOWTO
index b51d7ca..a69135b 100644
--- a/Documentation/ko_KR/HOWTO
+++ b/Documentation/ko_KR/HOWTO
@@ -90,7 +90,7 @@ GPL에 관한 잦은 질문들과 답변들은 다음을 참조하라.
 그 기능을 어떻게 사용하는지에 관한 설명을 위하여 새로운 문서 파일을
 추가하는 것을 권장한다. 커널이 유저스페이스로 노출하는 인터페이스를
 변경하게 되면 변경을 설명하는 메뉴얼 페이지들에 대한 패치나 정보를
[EMAIL PROTECTED] 메인트너에게 보낼 것을 권장한다.
[EMAIL PROTECTED] 메인트너에게 보낼 것을 권장한다.
 
 다음은 커널 소스 트리에 있는 읽어야 할 파일들의 리스트이다.
   README
@@ -212,7 +212,7 @@ Documentation/DocBook/ 디렉토리 내에서 만들어지며 PDF, Postscript, H
 것은 Linux Cross-Reference project이며 그것은 자기 참조 방식이며
 소스코드를 인덱스된 웹 페이지들의 형태로 보여준다. 최신의 멋진 커널
 코드 저장소는 다음을 통하여 참조할 수 있다.
-  http://sosdg.org/~coywolf/lxr/
+  http://users.sosdg.org/~qiyong/lxr/
 
 
 개발 프로세스
@@ -327,7 +327,7 @@ Andrew Morton에 의해 배포된 실험적인 커널 패치들이다. Andrew는
 - ACPI development tree, Len Brown <[EMAIL PROTECTED] >
 git.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
 
-- Block development tree, Jens Axboe <[EMAIL PROTECTED]>
+- Block development tree, Jens Axboe <[EMAIL PROTECTED]>
 git.kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
 
 - DRM development tree, Dave Airlie <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


SUNRPC xprtrdma: fix XDR tail buf marshalling for all ops

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50e1092b3a119bb4660bb6bd2e1749dc2d8ac62e
Commit: 50e1092b3a119bb4660bb6bd2e1749dc2d8ac62e
Parent: 5cef338b30c110daf547fb13d99f0c77f2a79fbc
Author: James Lentini <[EMAIL PROTECTED]>
AuthorDate: Mon Dec 10 11:24:48 2007 -0500
Committer:  Trond Myklebust <[EMAIL PROTECTED]>
CommitDate: Tue Dec 11 22:01:59 2007 -0500

SUNRPC xprtrdma: fix XDR tail buf marshalling for all ops

rpcrdma_convert_iovs is passed an xdr_buf representing either an RPC
request or an RPC reply. In the case of a request, several
calculations and tests involving pos are unnecessary. In the case of a
reply, several calculations and tests involving pos are incorrect (the
code tests pos against the reply xdr buf's len field, which is always
0 at the time rpcrdma_convert_iovs is executed). This change removes
the incorrect/unnecessary calculations and tests involving pos.

This fixes an observed problem when reading certain file sizes over
NFS/RDMA.

Signed-off-by: Tom Tucker <[EMAIL PROTECTED]>
Signed-off-by: Tom Talpey <[EMAIL PROTECTED]>
Signed-off-by: James Lentini <[EMAIL PROTECTED]>
Signed-off-by: Trond Myklebust <[EMAIL PROTECTED]>
---
 net/sunrpc/xprtrdma/rpc_rdma.c |9 +
 1 files changed, 1 insertions(+), 8 deletions(-)

diff --git a/net/sunrpc/xprtrdma/rpc_rdma.c b/net/sunrpc/xprtrdma/rpc_rdma.c
index 9e11ce7..ee8de7a 100644
--- a/net/sunrpc/xprtrdma/rpc_rdma.c
+++ b/net/sunrpc/xprtrdma/rpc_rdma.c
@@ -92,7 +92,6 @@ rpcrdma_convert_iovs(struct xdr_buf *xdrbuf, int pos,
seg[n].mr_page = NULL;
seg[n].mr_offset = xdrbuf->head[0].iov_base;
seg[n].mr_len = xdrbuf->head[0].iov_len;
-   pos += xdrbuf->head[0].iov_len;
++n;
}
 
@@ -104,7 +103,6 @@ rpcrdma_convert_iovs(struct xdr_buf *xdrbuf, int pos,
seg[n].mr_len = min_t(u32,
PAGE_SIZE - xdrbuf->page_base, xdrbuf->page_len);
len = xdrbuf->page_len - seg[n].mr_len;
-   pos += len;
++n;
p = 1;
while (len > 0) {
@@ -119,20 +117,15 @@ rpcrdma_convert_iovs(struct xdr_buf *xdrbuf, int pos,
}
}
 
-   if (pos < xdrbuf->len && xdrbuf->tail[0].iov_len) {
+   if (xdrbuf->tail[0].iov_len) {
if (n == nsegs)
return 0;
seg[n].mr_page = NULL;
seg[n].mr_offset = xdrbuf->tail[0].iov_base;
seg[n].mr_len = xdrbuf->tail[0].iov_len;
-   pos += xdrbuf->tail[0].iov_len;
++n;
}
 
-   if (pos < xdrbuf->len)
-   dprintk("RPC:   %s: marshaled only %d of %d\n",
-   __func__, pos, xdrbuf->len);
-
return n;
 }
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


usb: Remove broken optimisation in OHCI IRQ handler

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=565227c08226e458da191518251dbff6831624c2
Commit: 565227c08226e458da191518251dbff6831624c2
Parent: 08cbc706acd2dd601b0663e28fa97ffb0564e105
Author: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 6 13:28:25 2007 -0800
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:15 2007 -0800

usb: Remove broken optimisation in OHCI IRQ handler

The OHCI IRQ handler has an optimisation that avoids reading some
chip registers when the controller reports that the interrupt was
triggered *only* because completed requests were written into the
controller's "done list" and handed to the host.

This mechanism can't be used on some controllers.  Among others, it
fails for the SA and the AMCC 440EP PowerPC processor.

This patch removes the optimisation and makes the code clearer.

Signed-off-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
Signed-off-by: David Brownell <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/host/ohci-hcd.c |   23 +--
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 704f33f..ecfe800 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -732,24 +732,27 @@ static irqreturn_t ohci_irq (struct usb_hcd *hcd)
struct ohci_regs __iomem *regs = ohci->regs;
int ints;
 
-   /* we can eliminate a (slow) ohci_readl()
-* if _only_ WDH caused this irq
+   /* Read interrupt status (and flush pending writes).  We ignore the
+* optimization of checking the LSB of hcca->done_head; it doesn't
+* work on all systems (edge triggering for OHCI can be a factor).
 */
-   if ((ohci->hcca->done_head != 0)
-   && ! (hc32_to_cpup (ohci, &ohci->hcca->done_head)
-   & 0x01)) {
-   ints =  OHCI_INTR_WDH;
+   ints = ohci_readl(ohci, ®s->intrstatus);
 
-   /* cardbus/... hardware gone before remove() */
-   } else if ((ints = ohci_readl (ohci, ®s->intrstatus)) == ~(u32)0) {
+   /* Check for an all 1's result which is a typical consequence
+* of dead, unclocked, or unplugged (CardBus...) devices
+*/
+   if (ints == ~(u32)0) {
disable (ohci);
ohci_dbg (ohci, "device removed!\n");
return IRQ_HANDLED;
+   }
+
+   /* We only care about interrupts that are enabled */
+   ints &= ohci_readl(ohci, ®s->intrenable);
 
/* interrupt for some other device? */
-   } else if ((ints &= ohci_readl (ohci, ®s->intrenable)) == 0) {
+   if (ints == 0)
return IRQ_NOTMINE;
-   }
 
if (ints & OHCI_INTR_UE) {
// e.g. due to PCI Master/Target Abort
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide-scsi: add ide_scsi_hex_dump() helper

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=69ae6fee4f95c0535e49e338ce0ed3b27fd485b5
Commit: 69ae6fee4f95c0535e49e338ce0ed3b27fd485b5
Parent: da8cadb31b82c9d41fc593c8deab6aa20b162d6b
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:57 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:57 2007 +0100

ide-scsi: add ide_scsi_hex_dump() helper

Cc: Andrew Morton <[EMAIL PROTECTED]>
Cc: Denis Cheng <[EMAIL PROTECTED]>
Cc: Randy Dunlap <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/scsi/ide-scsi.c |   17 +
 1 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c
index 7a835a3..9706de9 100644
--- a/drivers/scsi/ide-scsi.c
+++ b/drivers/scsi/ide-scsi.c
@@ -242,6 +242,11 @@ static void idescsi_output_buffers (ide_drive_t *drive, 
idescsi_pc_t *pc, unsign
}
 }
 
+static void ide_scsi_hex_dump(u8 *data, int len)
+{
+   print_hex_dump(KERN_CONT, "", DUMP_PREFIX_NONE, 16, 1, data, len, 0);
+}
+
 static int idescsi_check_condition(ide_drive_t *drive, struct request 
*failed_command)
 {
idescsi_scsi_t *scsi = drive_to_idescsi(drive);
@@ -272,8 +277,7 @@ static int idescsi_check_condition(ide_drive_t *drive, 
struct request *failed_co
pc->scsi_cmd = ((idescsi_pc_t *) failed_command->special)->scsi_cmd;
if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
printk ("ide-scsi: %s: queue cmd = ", drive->name);
-   print_hex_dump(KERN_CONT, "", DUMP_PREFIX_NONE, 16, 1, pc->c,
-  6, 0);
+   ide_scsi_hex_dump(pc->c, 6);
}
rq->rq_disk = scsi->disk;
return ide_do_drive_cmd(drive, rq, ide_preempt);
@@ -328,8 +332,7 @@ static int idescsi_end_request (ide_drive_t *drive, int 
uptodate, int nrsecs)
idescsi_pc_t *opc = (idescsi_pc_t *) rq->buffer;
if (log) {
printk ("ide-scsi: %s: wrap up check %lu, rst = ", 
drive->name, opc->scsi_cmd->serial_number);
-   print_hex_dump(KERN_CONT, "", DUMP_PREFIX_NONE, 16, 1,
-  pc->buffer, 16, 0);
+   ide_scsi_hex_dump(pc->buffer, 16);
}
memcpy((void *) opc->scsi_cmd->sense_buffer, pc->buffer, 
SCSI_SENSE_BUFFERSIZE);
kfree(pc->buffer);
@@ -808,12 +811,10 @@ static int idescsi_queue (struct scsi_cmnd *cmd,
 
if (test_bit(IDESCSI_LOG_CMD, &scsi->log)) {
printk ("ide-scsi: %s: que %lu, cmd = ", drive->name, 
cmd->serial_number);
-   print_hex_dump(KERN_CONT, "", DUMP_PREFIX_NONE, 16, 1,
-  cmd->cmnd, cmd->cmd_len, 0);
+   ide_scsi_hex_dump(cmd->cmnd, cmd->cmd_len);
if (memcmp(pc->c, cmd->cmnd, cmd->cmd_len)) {
printk ("ide-scsi: %s: que %lu, tsl = ", drive->name, 
cmd->serial_number);
-   print_hex_dump(KERN_CONT, "", DUMP_PREFIX_NONE, 16, 1,
-  pc->c, 12, 0);
+   ide_scsi_hex_dump(pc->c, 12);
}
}
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ide: coding style fixes for drivers/ide/setup-pci.c

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b7d3477a7b0d52406d68b01bc8931f43112677f
Commit: 1b7d3477a7b0d52406d68b01bc8931f43112677f
Parent: 125a8191dcbc927441263a332826989cc2925681
Author: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:57 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:57 2007 +0100

ide: coding style fixes for drivers/ide/setup-pci.c

* remove trailing whitespaces
* 'if()' -> 'if ()'
* remove extra new-line before EXPORT_SYMBOL_GPL()
* add extra new-line after 'id' definition
* respect 80-columns limit

There should be no functionality changes caused by this patch.

Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/setup-pci.c |   24 
 1 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index 708e01d..d2cd5a3 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -704,7 +704,7 @@ EXPORT_SYMBOL_GPL(ide_setup_pci_devices);
 /*
  * Module interfaces
  */
- 
+
 static int pre_init = 1;   /* Before first ordered IDE scan */
 static LIST_HEAD(ide_pci_drivers);
 
@@ -714,7 +714,7 @@ static LIST_HEAD(ide_pci_drivers);
  * @module: owner module of the driver
  *
  * Registers a driver with the IDE layer. The IDE layer arranges that
- * boot time setup is done in the expected device order and then 
+ * boot time setup is done in the expected device order and then
  * hands the controllers off to the core PCI code to do the rest of
  * the work.
  *
@@ -724,13 +724,12 @@ static LIST_HEAD(ide_pci_drivers);
 int __ide_pci_register_driver(struct pci_driver *driver, struct module *module,
  const char *mod_name)
 {
-   if(!pre_init)
+   if (!pre_init)
return __pci_register_driver(driver, module, mod_name);
driver->driver.owner = module;
list_add_tail(&driver->node, &ide_pci_drivers);
return 0;
 }
-
 EXPORT_SYMBOL_GPL(__ide_pci_register_driver);
 
 /**
@@ -741,17 +740,18 @@ EXPORT_SYMBOL_GPL(__ide_pci_register_driver);
  * This is only used during boot up to get the ordering correct. After
  * boot up the pci layer takes over the job.
  */
- 
+
 static int __init ide_scan_pcidev(struct pci_dev *dev)
 {
struct list_head *l;
struct pci_driver *d;
-   
+
list_for_each(l, &ide_pci_drivers) {
d = list_entry(l, struct pci_driver, node);
if (d->id_table) {
-   const struct pci_device_id *id = 
pci_match_id(d->id_table,
- dev);
+   const struct pci_device_id *id =
+   pci_match_id(d->id_table, dev);
+
if (id != NULL && d->probe(dev, id) >= 0) {
dev->driver = d;
pci_dev_get(dev);
@@ -779,13 +779,13 @@ void __init ide_scan_pcibus (int scan_direction)
 
pre_init = 0;
if (!scan_direction)
-   while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != 
NULL)
+   while ((dev = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, dev)))
ide_scan_pcidev(dev);
else
-   while ((dev = pci_get_device_reverse(PCI_ANY_ID, PCI_ANY_ID, 
dev))
-  != NULL)
+   while ((dev = pci_get_device_reverse(PCI_ANY_ID, PCI_ANY_ID,
+dev)))
ide_scan_pcidev(dev);
-   
+
/*
 *  Hand the drivers over to the PCI layer now we
 *  are post init.
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


usb-storage: Fix devices that cannot handle 32k transfers

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=33abc04f0420dceed0ebc2d1094019d3bb2b5c29
Commit: 33abc04f0420dceed0ebc2d1094019d3bb2b5c29
Parent: b9e13ac30f850313be9232497ff98e90c43bc6b6
Author: Doug Maxey <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 5 23:36:45 2007 -0600
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:14 2007 -0800

usb-storage: Fix devices that cannot handle 32k transfers

When a device cannot handle the smallest previously limited transfer
size (64 blocks) without stalling, limit the device to the amount of
packets that fit in a platform native page.

The lowest possible limit is PAGE_CACHE_SIZE, so if the device is ever
used on a platform that has larger than 8K pages, you lose unless you
can convince the device firmware folks to fix the issue.

Cc: Mathew Dharm <[EMAIL PROTECTED]>
Cc: Alan Stern <[EMAIL PROTECTED]>
Cc: Pete Zaitcev <[EMAIL PROTECTED]>
Signed-off-by: Doug Maxey <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/storage/scsiglue.c |   12 +---
 drivers/usb/storage/unusual_devs.h |7 +++
 include/linux/usb_usual.h  |5 -
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
index 836a34a..7c9593b 100644
--- a/drivers/usb/storage/scsiglue.c
+++ b/drivers/usb/storage/scsiglue.c
@@ -114,9 +114,15 @@ static int slave_configure(struct scsi_device *sdev)
 * while others have trouble with more than 64K. At this time we
 * are limiting both to 32K (64 sectores).
 */
-   if ((us->flags & US_FL_MAX_SECTORS_64) &&
-   sdev->request_queue->max_sectors > 64)
-   blk_queue_max_sectors(sdev->request_queue, 64);
+   if (us->flags & (US_FL_MAX_SECTORS_64 | US_FL_MAX_SECTORS_MIN)) {
+   unsigned int max_sectors = 64;
+
+   if (us->flags & US_FL_MAX_SECTORS_MIN)
+   max_sectors = PAGE_CACHE_SIZE >> 9;
+   if (sdev->request_queue->max_sectors > max_sectors)
+   blk_queue_max_sectors(sdev->request_queue,
+ max_sectors);
+   }
 
/* We can't put these settings in slave_alloc() because that gets
 * called before the device type is known.  Consequently these
diff --git a/drivers/usb/storage/unusual_devs.h 
b/drivers/usb/storage/unusual_devs.h
index 2c27721..7bbfd31 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -376,6 +376,13 @@ UNUSUAL_DEV(  0x04b0, 0x0417, 0x0100, 0x0100,
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_FIX_CAPACITY),
 
+/* Reported by Doug Maxey ([EMAIL PROTECTED]) */
+UNUSUAL_DEV(  0x04b3, 0x4001, 0x0110, 0x0110,
+   "IBM",
+   "IBM RSA2",
+   US_SC_DEVICE, US_PR_CB, NULL,
+   US_FL_MAX_SECTORS_MIN),
+
 /* BENQ DC5330
  * Reported by Manuel Fombuena <[EMAIL PROTECTED]> and
  * Frank Copeland <[EMAIL PROTECTED]> */
diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h
index 1b792b9..a417b09 100644
--- a/include/linux/usb_usual.h
+++ b/include/linux/usb_usual.h
@@ -48,7 +48,10 @@
US_FLAG(IGNORE_DEVICE,  0x0800) \
/* Don't claim device */\
US_FLAG(CAPACITY_HEURISTICS,0x1000) \
-   /* sometimes sizes is too big */
+   /* sometimes sizes is too big */\
+   US_FLAG(MAX_SECTORS_MIN,0x2000) \
+   /* Sets max_sectors to arch min */
+
 
 #define US_FLAG(name, value)   US_FL_##name = value ,
 enum { US_DO_ALL_FLAGS };
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


hpt366: fix HPT37x PIO mode timings (take 2)

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=809b53c4ef7188dc284498ef6e4ec2d4d587a275
Commit: 809b53c4ef7188dc284498ef6e4ec2d4d587a275
Parent: eadb6ecf761166aa55ad44f05b7a29b10ddaba34
Author: Sergei Shtylyov <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 12 23:31:58 2007 +0100
Committer:  Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
CommitDate: Wed Dec 12 23:31:58 2007 +0100

hpt366: fix HPT37x PIO mode timings (take 2)

After looking into the HPT370 manual (now that I have it) and re-checking 
all
the timing tables, here's what I have discovered:

- at 33 MHz clock, PIO mode 0 timings turned to be overclocked, and all 
other
  PIO modes underclocked;

- at 50 MHz clock, PIO modes 0 to 2 turned to be overclocked;

- at 66 MHz clock, PIO mode 0 was overclocked too.

Finally, the taskfile timing (matching PIO mode 0) turned to be overclocked 
at
all clock frequencies (and in all manuals)...

The new timings have been tested on HPT370 chip (at 33 MHz PCI clock) and on
HPT371N chip (at both 50 and 66 MHz DPLL clock).

Signed-off-by: Sergei Shtylyov <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ide/pci/hpt366.c |   71 +-
 1 files changed, 70 insertions(+), 1 deletions(-)

diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
index 5682895..9fce25b 100644
--- a/drivers/ide/pci/hpt366.c
+++ b/drivers/ide/pci/hpt366.c
@@ -1,5 +1,5 @@
 /*
- * linux/drivers/ide/pci/hpt366.c  Version 1.21Oct 23, 2007
+ * linux/drivers/ide/pci/hpt366.c  Version 1.22Dec 4, 2007
  *
  * Copyright (C) 1999-2003 Andre Hedrick <[EMAIL PROTECTED]>
  * Portions Copyright (C) 2001 Sun Microsystems, Inc.
@@ -310,6 +310,8 @@ static u32 twenty_five_base_hpt36x[] = {
/* XFER_PIO_0 */0xc0d08585
 };
 
+#if 0
+/* These are the timing tables from the HighPoint open source drivers... */
 static u32 thirty_three_base_hpt37x[] = {
/* XFER_UDMA_6 */   0x12446231, /* 0x12646231 ?? */
/* XFER_UDMA_5 */   0x12446231,
@@ -369,6 +371,73 @@ static u32 sixty_six_base_hpt37x[] = {
/* XFER_PIO_1 */0x0d029d26,
/* XFER_PIO_0 */0x0d029d5e
 };
+#else
+/*
+ * The following are the new timing tables with PIO mode data/taskfile transfer
+ * overclocking fixed...
+ */
+
+/* This table is taken from the HPT370 data manual rev. 1.02 */
+static u32 thirty_three_base_hpt37x[] = {
+   /* XFER_UDMA_6 */   0x16455031, /* 0x16655031 ?? */
+   /* XFER_UDMA_5 */   0x16455031,
+   /* XFER_UDMA_4 */   0x16455031,
+   /* XFER_UDMA_3 */   0x166d5031,
+   /* XFER_UDMA_2 */   0x16495031,
+   /* XFER_UDMA_1 */   0x164d5033,
+   /* XFER_UDMA_0 */   0x16515097,
+
+   /* XFER_MW_DMA_2 */ 0x26515031,
+   /* XFER_MW_DMA_1 */ 0x26515033,
+   /* XFER_MW_DMA_0 */ 0x26515097,
+
+   /* XFER_PIO_4 */0x06515021,
+   /* XFER_PIO_3 */0x06515022,
+   /* XFER_PIO_2 */0x06515033,
+   /* XFER_PIO_1 */0x06915065,
+   /* XFER_PIO_0 */0x06d1508a
+};
+
+static u32 fifty_base_hpt37x[] = {
+   /* XFER_UDMA_6 */   0x1a861842,
+   /* XFER_UDMA_5 */   0x1a861842,
+   /* XFER_UDMA_4 */   0x1aae1842,
+   /* XFER_UDMA_3 */   0x1a8e1842,
+   /* XFER_UDMA_2 */   0x1a0e1842,
+   /* XFER_UDMA_1 */   0x1a161854,
+   /* XFER_UDMA_0 */   0x1a1a18ea,
+
+   /* XFER_MW_DMA_2 */ 0x2a821842,
+   /* XFER_MW_DMA_1 */ 0x2a821854,
+   /* XFER_MW_DMA_0 */ 0x2a8218ea,
+
+   /* XFER_PIO_4 */0x0a821842,
+   /* XFER_PIO_3 */0x0a821843,
+   /* XFER_PIO_2 */0x0a821855,
+   /* XFER_PIO_1 */0x0ac218a8,
+   /* XFER_PIO_0 */0x0b02190c
+};
+
+static u32 sixty_six_base_hpt37x[] = {
+   /* XFER_UDMA_6 */   0x1c86fe62,
+   /* XFER_UDMA_5 */   0x1caefe62, /* 0x1c8afe62 */
+   /* XFER_UDMA_4 */   0x1c8afe62,
+   /* XFER_UDMA_3 */   0x1c8efe62,
+   /* XFER_UDMA_2 */   0x1c92fe62,
+   /* XFER_UDMA_1 */   0x1c9afe62,
+   /* XFER_UDMA_0 */   0x1c82fe62,
+
+   /* XFER_MW_DMA_2 */ 0x2c82fe62,
+   /* XFER_MW_DMA_1 */ 0x2c82fe66,
+   /* XFER_MW_DMA_0 */ 0x2c82ff2e,
+
+   /* XFER_PIO_4 */0x0c82fe62,
+   /* XFER_PIO_3 */0x0c82fe84,
+   /* XFER_PIO_2 */0x0c82fea6,
+   /* XFER_PIO_1 */0x0d02ff26,
+   /* XFER_PIO_0 */0x0d42ff7f
+};
+#endif
 
 #define HPT366_DEBUG_DRIVE_INFO0
 #define HPT371_ALLOW_ATA133_6  1
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://

USB: use IRQF_DISABLED for HCD interrupt handlers

2007-12-17 Thread Linux Kernel Mailing List
Gitweb: 
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=442258e2ff69276ff767f3703b30ce6a31fdd181
Commit: 442258e2ff69276ff767f3703b30ce6a31fdd181
Parent: d48bd977e0dd8c17081d12242bfc09d743ea0d26
Author: Alan Stern <[EMAIL PROTECTED]>
AuthorDate: Thu Dec 6 14:47:08 2007 -0500
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Mon Dec 17 10:47:15 2007 -0800

USB: use IRQF_DISABLED for HCD interrupt handlers

Host controller IRQs are supposed to be serviced with interrupts
disabled.  This patch (as1026) adds an IRQF_DISABLED flag to all the
controller drivers that lack it.  It also replaces the
spin_lock_irqsave() and spin_unlock_irqrestore() calls in uhci_irq()
with simple spin_lock() and spin_unlock().

This fixes Bugzilla #9335.

Signed-off-by: Alan Stern <[EMAIL PROTECTED]>
Acked-by: David Brownell <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/usb/core/hcd-pci.c  |2 +-
 drivers/usb/host/ehci-fsl.c |2 +-
 drivers/usb/host/ohci-ppc-of.c  |2 +-
 drivers/usb/host/ohci-ssb.c |2 +-
 drivers/usb/host/r8a66597-hcd.c |2 +-
 drivers/usb/host/uhci-hcd.c |9 -
 6 files changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
index 5cf6d5f..3fb9af8 100644
--- a/drivers/usb/core/hcd-pci.c
+++ b/drivers/usb/core/hcd-pci.c
@@ -125,7 +125,7 @@ int usb_hcd_pci_probe (struct pci_dev *dev, const struct 
pci_device_id *id)
 
pci_set_master (dev);
 
-   retval = usb_add_hcd (hcd, dev->irq, IRQF_SHARED);
+   retval = usb_add_hcd(hcd, dev->irq, IRQF_DISABLED | IRQF_SHARED);
if (retval != 0)
goto err4;
return retval;
diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
index b7b7bfb..430821c 100644
--- a/drivers/usb/host/ehci-fsl.c
+++ b/drivers/usb/host/ehci-fsl.c
@@ -122,7 +122,7 @@ int usb_hcd_fsl_probe(const struct hc_driver *driver,
temp = in_le32(hcd->regs + 0x1a8);
out_le32(hcd->regs + 0x1a8, temp | 0x3);
 
-   retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
+   retval = usb_add_hcd(hcd, irq, IRQF_DISABLED | IRQF_SHARED);
if (retval != 0)
goto err4;
return retval;
diff --git a/drivers/usb/host/ohci-ppc-of.c b/drivers/usb/host/ohci-ppc-of.c
index 0a74269..0c3e6b7 100644
--- a/drivers/usb/host/ohci-ppc-of.c
+++ b/drivers/usb/host/ohci-ppc-of.c
@@ -142,7 +142,7 @@ ohci_hcd_ppc_of_probe(struct of_device *op, const struct 
of_device_id *match)
 
ohci_hcd_init(ohci);
 
-   rv = usb_add_hcd(hcd, irq, 0);
+   rv = usb_add_hcd(hcd, irq, IRQF_DISABLED);
if (rv == 0)
return 0;
 
diff --git a/drivers/usb/host/ohci-ssb.c b/drivers/usb/host/ohci-ssb.c
index fe70e72..6e9c2d6 100644
--- a/drivers/usb/host/ohci-ssb.c
+++ b/drivers/usb/host/ohci-ssb.c
@@ -160,7 +160,7 @@ static int ssb_ohci_attach(struct ssb_device *dev)
hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len);
if (!hcd->regs)
goto err_put_hcd;
-   err = usb_add_hcd(hcd, dev->irq, IRQF_SHARED);
+   err = usb_add_hcd(hcd, dev->irq, IRQF_DISABLED | IRQF_SHARED);
if (err)
goto err_iounmap;
 
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
index ae8ec44..0ce2fc5 100644
--- a/drivers/usb/host/r8a66597-hcd.c
+++ b/drivers/usb/host/r8a66597-hcd.c
@@ -2197,7 +2197,7 @@ static int __init r8a66597_probe(struct platform_device 
*pdev)
INIT_LIST_HEAD(&r8a66597->child_device);
 
hcd->rsrc_start = res->start;
-   ret = usb_add_hcd(hcd, irq, 0);
+   ret = usb_add_hcd(hcd, irq, IRQF_DISABLED);
if (ret != 0) {
err("Failed to add hcd");
goto clean_up;
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 4db17f7..ec98789 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -378,7 +378,6 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
 {
struct uhci_hcd *uhci = hcd_to_uhci(hcd);
unsigned short status;
-   unsigned long flags;
 
/*
 * Read the interrupt status, and write it back to clear the
@@ -398,7 +397,7 @@ static irqreturn_t uhci_irq(struct usb_hcd *hcd)
dev_err(uhci_dev(uhci), "host controller process "
"error, something bad happened!\n");
if (status & USBSTS_HCH) {
-   spin_lock_irqsave(&uhci->lock, flags);
+   spin_lock(&uhci->lock);
if (uhci->rh_state >= UHCI_RH_RUNNING) {
dev_err(uhci_dev(uhci),
"host controller halted, "
@@ -415,16 +414,16 @@ static irqreturn_t uhci_

  1   2   >