ACPI: video_device_list corruption
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
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
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
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
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
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
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
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
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.
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.
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
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.
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
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
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
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()
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
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
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().
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
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
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.
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.
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.
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
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
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.
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()
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.
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.
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
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
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.
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
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()
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().
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.
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
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.
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/
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
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
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
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()
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
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()
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...
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
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()
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
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
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
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
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()
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"
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
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
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
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
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
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
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)
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
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_