aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-01-22arm64: elf: fix core dumping to match what glibc expectsWill Deacon1-1/+4
The kernel's internal definition of ELF_NGREG uses struct pt_regs, which means that we disagree with userspace on the size of coredumps since glibc correctly uses the user-visible struct user_pt_regs. This patch fixes our ELF_NGREG definition to use struct user_pt_regs and introduces our own ELF_CORE_COPY_REGS to convert between the user and kernel structure definitions. Cc: <[email protected]> Signed-off-by: Will Deacon <[email protected]> Signed-off-by: Catalin Marinas <[email protected]>
2013-01-22USB: EHCI: add a name for the platform-private fieldAlan Stern1-0/+3
This patch (as1642) adds an ehci->priv field for private use by EHCI platform drivers. The space was provided some time ago, but it didn't have a name. Until now none of the platform drivers has used this private space, but that's about to change in the next patch of this series. Signed-off-by: Alan Stern <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-01-22USB: EHCI: fix incorrect configuration testAlan Stern1-1/+1
This patch (as1641) fixes a minor bug in ehci-hcd left over from when the Chipidea driver was converted to the "ehci-hcd is a library" scheme. The test for whether the Chipidea platform driver is active should be IS_ENABLED(), not defined(). Signed-off-by: Alan Stern <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-01-22USB: EHCI: Move definition of EHCI_STATS to ehci.hRoger Quadros2-4/+4
Without this, platform drivers e.g. ehci-omap.c will see a different version of struct ehci_hcd than ehci-hcd.c and break reference to 'debug_dir' and 'priv' members when CONFIG_USB_DEBUG is enabled. Signed-off-by: Roger Quadros <[email protected]> Acked-by: Alan Stern <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-01-22USB: UHCI: fix IRQ race during initializationAlan Stern1-6/+9
This patch (as1644) fixes a race that occurs during startup in uhci-hcd. If the IRQ line is shared with other devices, it's possible for the handler routine to be called before the data structures are fully initialized. The problem is fixed by adding a check to the IRQ handler routine. If the initialization hasn't finished yet, the routine will return immediately. Signed-off-by: Alan Stern <[email protected]> Reported-by: Don Zickus <[email protected]> Tested-by: "Huang, Adrian (ISS Linux TW)" <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-01-22ptrace: introduce signal_wake_up_state() and ptrace_signal_wake_up()Oleg Nesterov3-15/+18
Cleanup and preparation for the next change. signal_wake_up(resume => true) is overused. None of ptrace/jctl callers actually want to wakeup a TASK_WAKEKILL task, but they can't specify the necessary mask. Turn signal_wake_up() into signal_wake_up_state(state), reintroduce signal_wake_up() as a trivial helper, and add ptrace_signal_wake_up() which adds __TASK_TRACED. This way ptrace_signal_wake_up() can work "inside" ptrace_request() even if the tracee doesn't have the TASK_WAKEKILL bit set. Signed-off-by: Oleg Nesterov <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2013-01-22mfd: Fix compile errors and warnings when !CONFIG_AB8500_BMLee Jones3-27/+5
drivers/mfd/ab8500-core.c:1015:21: error: ‘ab8500_bm_data’ undeclared here include/linux/mfd/abx500/ab8500-bm.h:445:13: warning: ‘ab8500_fg_reinit’ defined but not used include/linux/mfd/abx500/ab8500-bm.h:448:13: warning: ‘ab8500_charger_usb_state_changed’ defined but not used include/linux/mfd/abx500/ab8500-bm.h:451:29: warning: ‘ab8500_btemp_get’ defined but not used include/linux/mfd/abx500/ab8500-bm.h:455:12: warning: ‘ab8500_btemp_get_batctrl_temp’ defined but not used include/linux/mfd/abx500/ab8500-bm.h:463:12: warning: ‘ab8500_fg_inst_curr_blocking’ defined but not used include/linux/mfd/abx500/ab8500-bm.h:442:12: warning: ‘ab8500_fg_inst_curr_done’ defined but not used include/linux/mfd/abx500/ab8500-bm.h:447:26: warning: ‘ab8500_fg_get’ defined but not used Signed-off-by: Lee Jones <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: vexpress: Export global functions to fix build errorGuenter Roeck1-2/+6
Compiling vexpress client drivers as module results in error messages such as ERROR: "__vexpress_config_func_get" [drivers/hwmon/vexpress.ko] undefined! ERROR: "vexpress_config_func_put" [drivers/hwmon/vexpress.ko] undefined! This is because the global functions in drivers/mfd/vexpress-config.c are not exported. Fix it. Signed-off-by: Guenter Roeck <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22i2c-designware: add missing MODULE_LICENSEMika Westerberg1-0/+4
The driver can also be built as a module so add MODULE_LICENSE for it. In addition add MODULE_DESCRIPTION as well. Signed-off-by: Mika Westerberg <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
2013-01-22i2c: omap: fix draining irq handlingAaro Koskinen1-2/+2
Commit 0bdfe0cb803dce699ff337c35d8e97ac355fa417 (i2c: omap: sanitize exit path) changed the interrupt handler to exit early and complete the transfer after the draining IRQ is handled. As a result, the ARDY may not be cleared properly, and it may cause all future I2C transfers to timeout with "timeout waiting for bus ready". This is reproducible at least with N900 when twl4030_gpio makes a long write (> FIFO size) during the probe (http://marc.info/?l=linux-omap&m=135818882610432&w=2). The fix is to continue until we get ARDY interrupt that completes the transfer. Tested with 3.8-rc4 + N900: 20 boots in a row without errors; without the patch the problem triggers after few reboots. Signed-off-by: Aaro Koskinen <[email protected]> Acked-by: Felipe Balbi <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
2013-01-22i2c: omap: errata i462: fix incorrect ack for arbitration lost interruptAaro Koskinen1-1/+1
The errata handling function acks wrong interrupt in case of "Arbitration lost". Fix it. Discovered during code review, the real impact of the bug is unknown. Signed-off-by: Aaro Koskinen <[email protected]> Reviewed-by: Felipe Balbi <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
2013-01-22ACPI: Check MSR valid bit before using P-state frequenciesStefan Bader1-0/+7
To fix incorrect P-state frequencies which can happen on some AMD systems f594065faf4f9067c2283a34619fc0714e79a98d "ACPI: Add fixups for AMD P-state figures" introduced a quirk to obtain the correct values by reading from AMD specific MSRs. This did cause a regression when running a kernel using that quirk under Xen which does (currently) not pass through MSR reads to the HW. Instead the guest gets a 0 in return. And this seems to cause a failure to initialize the ondemand governour (hard to say for sure as all P-states appear to run at the same frequency). While this should also be fixed in the hypervisor (to allow a guest to read that MSR), this patch is intended to work around the issue in the meantime. In discussion it turned out that indeed real HW/BIOSes may choose to not set the valid bit and thus mark the P-state as invalid. So this could be considered a fix for broken BIOSes that also works around the issue on Xen. Signed-off-by: Stefan Bader <[email protected]> Cc: 3.7+ <[email protected]> Acked-by: Borislav Petkov <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2013-01-22PM / devfreq: exynos4_bus: honor RCU lock usageNishanth Menon1-27/+67
OPP pointers cannot be expected to be valid beyond the boundary of rcu_read_lock and rcu_read_unlock. Unfortunately, the current exynos4 busfreq driver does not honor the usage constraint and stores the OPP pointer in struct busfreq_data. This could potentially become invalid later such as: across devfreq opp change decisions, resulting in unpredictable behavior. To fix this, we introduce a busfreq specific busfreq_opp_info structure which is used to handle OPP information. OPP information is de-referenced to voltage and frequency pairs as needed into busfreq_opp_info structure and used as needed. Signed-off-by: Nishanth Menon <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2013-01-22PM / devfreq: add locking documentation for recommended_oppNishanth Menon1-0/+5
OPP pointers are protected by RCU locks, the pointer validity is permissible only under the section of rcu_read_lock to rcu_read_unlock Add documentation to the effect. Signed-off-by: Nishanth Menon <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2013-01-22cpufreq: cpufreq-cpu0: use RCU locks around usage of OPPNishanth Menon1-0/+5
OPP pointer is RCU protected, hence after finding it, de-reference also should be protected with the same RCU context else the OPP pointer may become invalid. Reported-by: Jack Mitchell <[email protected]> Tested-by: Alexander Holler <[email protected]> Tested-by: Jack Mitchell <[email protected]> Acked-by: Alexander Holler <[email protected]> Signed-off-by: Nishanth Menon <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2013-01-22cpufreq: OMAP: use RCU locks around usage of OPPNishanth Menon1-0/+3
OPP pointer is RCU protected, hence after finding it, de-reference also should be protected with the same RCU context else the OPP pointer may become invalid. Reported-by: Alexander Holler <[email protected]> Tested-by: Alexander Holler <[email protected]> Acked-by: Alexander Holler <[email protected]> Signed-off-by: Nishanth Menon <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]>
2013-01-22i2c: muxes: fix wrong use of sizeof(ptr)Laurent Navet1-1/+1
sizeof when applied to a pointer typed expression gives the size of the pointer The semantic patch that makes this output is available in scripts/coccinelle/misc/noderef.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Laurent Navet <[email protected]> Acked-by: Jean Delvare <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
2013-01-22i2c: sirf: register i2c_client from dt child-nodes in probe entryBarry Song1-0/+4
in probe() entry of i2c_driver, set the of node of adapter and call of_i2c_register_devices to register all i2c_client from dt child-nodes Signed-off-by: Barry Song <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
2013-01-22i2c: mxs: Fix type of error codeFabio Estevam1-1/+1
cmd_err is used to handle error code, so it should not be unsigned. This fixes the following warning when building with W=1 option: drivers/i2c/busses/i2c-mxs.c: In function 'mxs_i2c_xfer_msg': drivers/i2c/busses/i2c-mxs.c:331:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] Signed-off-by: Fabio Estevam <[email protected]> Acked-by: Marek Vasut <[email protected]> Signed-off-by: Wolfram Sang <[email protected]> Cc: [email protected]
2013-01-22regmap: fix small typo in regmap_bulk_write commentNestor Ovroy1-1/+1
Signed-off-by: Nestor Ovroy <[email protected]> Signed-off-by: Mark Brown <[email protected]>
2013-01-22Merge tag 'imx-fixes-rc' of git://git.pengutronix.de/git/imx/linux-2.6 into ↵Olof Johansson3-3/+2
fixes From Sascha Hauer: ARM i.MX fixes for -rc. This contains a single compilation fix for the CODA driver. * tag 'imx-fixes-rc' of git://git.pengutronix.de/git/imx/linux-2.6: [media] coda: Fix build due to iram.h rename
2013-01-22mfd: arizona: Check errors from regcache_sync()Mark Brown1-1/+6
If the control bus is unrelabile we may hit errors during regcache_sync(), especially given that it tends to be one the most dense bursts of I/O in many systems. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: tc3589x: Use simple irqdomainLinus Walleij1-12/+5
This fixes a regression in the TC3589x driver introduced in commit 15e27b1088245a2de3b7d09d39cd209212eb16af "mfd: Provide the tc3589x with its own IRQ domain" If a system with a TC3589x expander is booted and a base IRQ is passed from platform data, a legacy domain will be used. However, since the Ux500 is now switched to use SPARSE_IRQ, no descriptors get allocated on-the-fly, and we get a crash. Fix this by switching to using the simple irqdomain that will handle this uniformly and also allocates descriptors explicitly. Also fix two small whitespace errors in the vicinity while we're at it. Cc: [email protected] Acked-by: Lee Jones <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: pcf50633: Init pcf->dev before using itAxel Lin1-3/+2
Current code uses pcf->dev in the dev_err call before setting it to &client->dev. Fix it. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: max77693: Init max77693->dev before using itAxel Lin1-16/+18
Current code uses max77693->dev in the dev_err call before setting it to &i2c->dev. Fix it. This patch also includes below cleanups: - Move checking pdata earlier and show dev_err if no platform data found. - Remove unnecessary err_regmap goto label. - Unregister i2c devices if regmap init for muic fails. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: max77686: Init max77686->dev before using itAxel Lin1-9/+9
Current code uses max77686->dev in the dev_err call before setting it to &i2c->dev. Fix it. Signed-off-by: Axel Lin <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22f2fs: use _safe() version of list_for_eachDan Carpenter1-4/+3
This is calling list_del() inside a loop which is a problem when we try move to the next item on the list. I've converted it to use the _safe version. And also, as a cleanup, I've converted it to use list_for_each_entry instead of list_for_each. Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Dmitry Torokhov <[email protected]> Signed-off-by: Jaegeuk Kim <[email protected]>
2013-01-22f2fs: add comments of start_bidx_of_nodeJaegeuk Kim1-1/+5
The caller of start_bidx_of_node() should give proper node offsets which point only direct node blocks. Otherwise, it is a caller's bug. This patch adds comments to make it clear. Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Jaegeuk Kim <[email protected]>
2013-01-22f2fs: avoid issuing small bios due to several dirty node pagesJaegeuk Kim1-6/+11
If some small bios of dirty node pages are supposed to be issued during the sequential data writes, there-in well-produced consecutive data bios are able to be split by the small node bios, resulting in performance degradation. So, let's collect a number of dirty node pages until reaching a threshold. And, by default, I set the threshold as 2MB, a segment size. This improves sequential write performance on i5, 512GB SSD (830 w/ SATA2) as follows. Before: 231 MB/s -> After: 255 MB/s Signed-off-by: Jaegeuk Kim <[email protected]> Reviewed-by: Namjae Jeon <[email protected]>
2013-01-22f2fs: support swapfileJaegeuk Kim1-0/+6
This patch adds f2fs_bmap operation to the data address space. This enables f2fs to support swapfile. Signed-off-by: Jaegeuk Kim <[email protected]>
2013-01-22f2fs: add remap_pages as generic_file_remap_pagesJaegeuk Kim1-2/+3
This was added for all the file systems before. See the following commit. commit id: 0b173bc4daa8f8ec03a85abf5e47b23502ff80af [PATCH] mm: kill vma flag VM_CAN_NONLINEAR This patch moves actual ptes filling for non-linear file mappings into special vma operation: ->remap_pages(). File system must implement this method to get non-linear mappings support, if it uses filemap_fault() then generic_file_remap_pages() can be used. Now device drivers can implement this method and obtain nonlinear vma support." Signed-off-by: Jaegeuk Kim <[email protected]>
2013-01-22f2fs: add __init to functions in init_f2fs_fsNamjae Jeon5-9/+9
Add __init to functions in init_f2fs_fs for code consistency. Signed-off-by: Namjae Jeon <[email protected]> Signed-off-by: Amit Sahrawat <[email protected]> Signed-off-by: Jaegeuk Kim <[email protected]>
2013-01-21Btrfs: fix a regression in balance usage filterIlya Dryomov1-1/+8
Commit 3fed40cc ("Btrfs: cleanup duplicated division functions"), which was merged into 3.8-rc1, has introduced a regression by removing logic that was guarding us against bad user input. Bring it back. Signed-off-by: Ilya Dryomov <[email protected]> Signed-off-by: Chris Mason <[email protected]>
2013-01-21Merge branch 'mutex-ops@next-for-chris' of ↵Chris Mason2-31/+86
git://github.com/idryomov/btrfs-unstable into linus
2013-01-21Merge branch 'for-chris' of ↵Chris Mason6-35/+91
git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next into linus
2013-01-21Btrfs: prevent qgroup destroy when there are still relationsArne Jansen1-1/+12
Currently you can just destroy a qgroup even though it is in use by other qgroups or has qgroups assigned to it. This patch prevents destruction of qgroups unless they are completely unused. Otherwise destroy will return EBUSY. Reported-by: Eric Hopper <[email protected]> Signed-off-by: Arne Jansen <[email protected]> Signed-off-by: Chris Mason <[email protected]>
2013-01-21Btrfs: ignore orphan qgroup relationsArne Jansen1-0/+7
If a qgroup that has still assignments is deleted by the user, the corresponding relations are left in the tree. This leads to an unmountable filesystem. With this patch, those relations are simple ignored. Reported-by: Eric Hopper <[email protected]> Signed-off-by: Arne Jansen <[email protected]> Signed-off-by: Chris Mason <[email protected]>
2013-01-22mfd: db8500-prcmu: Fix irqdomain usageLinus Walleij1-4/+9
This fixes two issues with the DB8500 PRCMU irqdomain: - You have to state the irq base 0 to get a linear domain for the DT case from irq_domain_add_simple() - The irqdomain was not used to translate the initial irq request using irq_create_mapping() making the linear case fail as it was lacking a proper descriptor. I took this opportunity to fix two lines of whitespace errors in related code as I was anyway messing around with it. Cc: [email protected] Acked-by Lee Jones <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: tps65910: Select REGMAP_IRQ in Kconfig to fix build errorAnilKumar Ch1-0/+1
TPS65910 mfd driver uses functions that are only avaiable when REGMAP_IRQ is enabled. So "select REGMAP_IRQ" is added to mfd Kconfig to fix below build error: drivers/built-in.o: In function `tps65910_irq_exit': /media/anil/kernel/drivers/mfd/tps65910.c:265: undefined reference to `regmap_del_irq_chip' drivers/built-in.o: In function `tps65910_irq_init': /media/anil/kernel/drivers/mfd/tps65910.c:254: undefined reference to `regmap_add_irq_chip' drivers/built-in.o: In function `tps65910_i2c_probe': /media/anil/kernel/drivers/mfd/tps65910.c:509: undefined reference to `regmap_irq_get_domain' make: *** [vmlinux] Error 1 Signed-off-by: AnilKumar Ch <[email protected]> Tested-by: Matt Porter <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-22mfd: arizona: Disable control interface reporting for WM5102 and WM5110Mark Brown1-16/+2
Rather than disabling the error reporting only for earlier revisions unconditionally disable it. Signed-off-by: Mark Brown <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
2013-01-21isdn/gigaset: fix zero size border case in debug dumpTilman Schmidt1-0/+2
If subtracting 12 from l leaves zero we'd do a zero size allocation, leading to an oops later when we try to set the NUL terminator. Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Tilman Schmidt <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21Merge tag 'fixes-for-v3.8-rc5' of ↵Greg Kroah-Hartman1706-10059/+17804
git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v3.8-rc5 Finally we have a build fix for fsl-mxc-udc UDC driver. We also have a fix for ep0 maxburst setting on DWC3 which could confuse the HW if we tell it we had way too many streams on that endpoint when it _has_ to be only one. cppi_dma support for MUSB got a fix when running as a module. By dropping the wrong __init annotation, the function will be available even when we're modules and we're done with .init.text section. Last, but not least, we have a fix on FunctionFS which was causing a bug on our option parsing algorithm.
2013-01-21cdc_ncm: add support FLAG_NOARP for Infineon modem platformWei Shuai1-0/+21
Infineon(now Intel) HSPA Modem platform NCM cannot support ARP. we can define a new common structure wwan_noarp_info. Then more similiar NO ARP devices can be handled easily Signed-off-by: Wei Shuai <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21usbnet: add new flag FLAG_NOARP for usb net devicesWei Shuai2-0/+5
We do have some USB net devices, which cannot do ARP. so we can introduce a new flag FLAG_NOARP, then client drivers can easily handle this kind of devices Signed-off-by: Wei Shuai <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21Merge branch 'usb_cdc_fixes'David S. Miller2-2/+30
Bjørn Mork says: ==================== The 2 first patches in this series are required to make the Sierra Wireless MC7710 card work in MBIM mode. They may also be required for other Qualcomm firmware based MBIM devices. Patch #1 was previously posted as a standalone patch. This version is a replacement, removing a theoretical NULL pointer exception. Patch #3 fixes a bug I introduced in v3.7 ==================== Signed-off-by: David S. Miller <[email protected]>
2013-01-21net: cdc_ncm: fix error path for single interface probingBjørn Mork1-1/+2
commit bbc8d92 (net: cdc_ncm: add Huawei devices) implemented support for devices with a single combined control and data interface. Fix up the error path so that we do not double release such interfaces in case of probing failures. Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21net: cdc_mbim: send ZLP after max sized NTBsBjørn Mork1-1/+1
We normally avoid sending ZLPs by padding NTBs with a zero byte if the NTB is shorter than dwNtbOutMaxSize, resulting in a short USB packet instead of a ZLP. But in the case where the NTB length is exactly dwNtbOutMaxSize and this is an exact multiplum of wMaxPacketSize, then we must send a ZLP. This fixes an issue seen on a Sierra Wireless MC7710 device where the transmission would fail whenever we ended up padding the NTBs to max size. Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21net: cdc_ncm: workaround for missing CDC UnionBjørn Mork1-0/+27
Adding support for the MBIM mode in some Sierra Wireless devices. Some Sierra Wireless firmwares support CDC MBIM but have no CDC Union funtional descriptor. This violates the MBIM specification, but we can easily work around the bug by looking at the Interface Association Descriptor instead. This is most likely what Windows uses too, which explains how the firmware bug has gone unnoticed until now. This change will not affect any currently supported device conforming to the NCM or MBIM specifications, as they must have the CDC Union descriptor. Cc: Greg Suarez <[email protected]> Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21ipv4: Add a socket release callback for datagram socketsSteffen Klassert5-0/+30
This implements a socket release callback function to check if the socket cached route got invalid during the time we owned the socket. The function is used from udp, raw and ping sockets. Signed-off-by: Steffen Klassert <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-01-21ipv4: Invalidate the socket cached route on pmtu events if possibleSteffen Klassert1-1/+41
The route lookup in ipv4_sk_update_pmtu() might return a route different from the route we cached at the socket. This is because standart routes are per cpu, so each cpu has it's own struct rtable. This means that we do not invalidate the socket cached route if the NET_RX_SOFTIRQ is not served by the same cpu that the sending socket uses. As a result, the cached route reused until we disconnect. With this patch we invalidate the socket cached route if possible. If the socket is owened by the user, we can't update the cached route directly. A followup patch will implement socket release callback functions for datagram sockets to handle this case. Reported-by: Yurij M. Plotnikov <[email protected]> Signed-off-by: Steffen Klassert <[email protected]> Signed-off-by: David S. Miller <[email protected]>