3.0.3-stable review
Subsystems (21)
cover 3.0.3-stable review
This is the start of the stable review cycle for the 3.0.3 release. There are 26 patches in this series, all will be posted as a response to this one. If anyone has any issues with these being applied, please let us know. If anyone is a maintainer of the proper subsystem, and wants to add a Signed-off-by: line to the patch, please respond with it.
Responses should be made by Wed, August 17, 2010, 12:00:00 UTC. Anything received after that time might be too late.
The whole patch series can be found in one patch at:
kernel.org/pub/linux/kernel/v3.0/stable-review/patch-3.0.3-rc1.gz
and the diffstat can be found below.
thanks,
greg k-h
Documentation/virtual/lguest/lguest.c | 3 +++ Makefile | 4 ++-- drivers/gpu/drm/radeon/atombios_dp.c | 12 ++++++++++++ drivers/gpu/drm/radeon/radeon_connectors.c | 16 +++++++++------- drivers/gpu/drm/radeon/radeon_encoders.c | 3 +++ drivers/gpu/drm/radeon/radeon_mode.h | 1 + drivers/hwmon/ibmaem.c | 15 ++++++++++----- drivers/net/wireless/ath/ath5k/base.c | 23 ++++++++++++++--------- drivers/staging/rtl8192u/r819xU_firmware.c | 9 +++------ drivers/usb/class/usbtmc.c | 2 +- drivers/usb/core/config.c | 11 ++++++----- drivers/usb/host/pci-quirks.c | 2 +- drivers/usb/host/xhci.c | 19 ++++++++++++++----- drivers/usb/musb/musb_gadget.c | 5 +++++ drivers/usb/serial/ftdi_sio.c | 2 +- drivers/usb/serial/option.c | 12 ++++++++++++ drivers/usb/serial/qcserial.c | 1 + drivers/usb/storage/unusual_devs.h | 10 ++++++++++ mm/vmalloc.c | 7 ++++--- net/atm/br2684.c | 2 -- sound/soc/samsung/jive_wm8750.c | 2 +- sound/soc/tegra/tegra_pcm.c | 9 +++++++-- sound/soc/tegra/tegra_wm8903.c | 15 +++++++++++---- sound/usb/caiaq/audio.c | 6 ++++-- tools/perf/util/config.c | 7 ------- 25 files changed, 135 insertions(+), 63 deletions(-)
PATCH 1/26 staging: rtl8192u: declare MODULE_FIRMWARE
3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Stefan Lippers-Hollmann <[email protected]>
commit 589c3ca00b7886bf743998398884cd4f4d354e17 upstream.
declaring MODULE_FIRMWARE has apparently forgotten while removing the embedded firmware arrays in 0a8692b534e18fcec6eac07551bb37a22659f5c7 (rtl8192u_usb:
Remove built-in firmware images).
--- drivers/staging/rtl8192u/r819xU_firmware.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-)
drivers/staging/rtl8192u/r819xU_firmware.c +3 -6
@@ -399,10 +399,7 @@ download_firmware_fail: } - - - - - - +MODULE_FIRMWARE ("RTL8192U/boot.img" ); +MODULE_FIRMWARE ("RTL8192U/main.img" ); +MODULE_FIRMWARE ("RTL8192U/data.img" );
PATCH 2/26 USB: xhci: fix OS want to own HC
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: JiSheng Zhang <[email protected]>
commit 6768458b17f9bf48a4c3a34e49b20344091b5f7e upstream.
Software should set XHCI_HC_OS_OWNED bit to request ownership of xHC.
This patch should be backported to kernels as far back as 2.6.31.
--- drivers/usb/host/pci-quirks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/host/pci-quirks.c +1 -1
@@ -803,7 +803,7 @@ static void __devinit quirk_usb_handoff_/* If the BIOS owns the HC, signal that the OS wants it, and wait */ if (val &XHCI_HC_BIOS_OWNED ) { -writel (val &XHCI_HC_OS_OWNED , base + ext_cap_offset); +writel (val |XHCI_HC_OS_OWNED , base + ext_cap_offset);/* Wait for 5 seconds with 10 microsecond polling interval */ timeout = handshake(base + ext_cap_offset, XHCI_HC_BIOS_OWNED,
PATCH 3/26 xhci: Dont submit commands or URBs to halted hosts.
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Sarah Sharp <[email protected]>
commit 7bd89b4017f46a9b92853940fd9771319acb578a upstream.
Commit fccf4e86200b8f5edd9a65da26f150e32ba79808
"USB: Free bandwidth when usb_disable_device is called" caused a bit of an issue when the xHCI host controller driver is unloaded. It changed the USB core to remove all endpoints when a USB device is disabled. When the driver is unloaded, it will remove the SuperSpeed split root hub, which will disable all devices under that roothub and then halt the host controller. When the second High Speed split roothub is removed, the USB core will attempt to disable the endpoints, which will submit a Configure Endpoint command to a halted host controller.
The command will eventually time out, but it makes the xHCI driver unload take *minutes* if there are a couple of USB 1.1/2.0 devices attached. We must halt the host controller when the SuperSpeed roothub is removed, because we can't allow any interrupts from things like port status changes.
Make several different functions not submit commands or URBs to the host controller when the host is halted, by adding a check in xhci_check_args(). xhci_check_args() is used by these functions:
xhci.c-int xhci_urb_enqueue()
xhci.c-int xhci_drop_endpoint()
xhci.c-int xhci_add_endpoint()
xhci.c-int xhci_check_bandwidth()
xhci.c-void xhci_reset_bandwidth()
xhci.c-static int xhci_check_streams_endpoint()
xhci.c-int xhci_discover_or_reset_device()
It's also used by xhci_free_dev(). However, we have to take special care in that case, because we want the device memory to be freed if the host controller is halted.
This patch should be backported to the 2.6.39 and 3.0 kernel.
--- drivers/usb/host/xhci.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-)
drivers/usb/host/xhci.c +14 -5
@@ -345,7 +345,8 @@ static void xhci_event_ring_work(unsignespin_lock_irqsave (&xhci->lock, flags); temp =xhci_readl (xhci, &xhci->op_regs->status);xhci_dbg (xhci,"op reg status = 0x%x\n" , temp); -if (temp ==0xffffffff || (xhci->xhc_state &XHCI_STATE_DYING )) { +if (temp ==0xffffffff || (xhci->xhc_state &XHCI_STATE_DYING ) || + (xhci->xhc_state &XHCI_STATE_HALTED )) {xhci_dbg (xhci,"HW died, polling stopped.\n" );spin_unlock_irqrestore (&xhci->lock, flags);return ;
@@ -939,8 +940,11 @@ static int xhci_check_args(struct usb_hcreturn 0 ; } + xhci =hcd_to_xhci (hcd); +if (xhci->xhc_state &XHCI_STATE_HALTED ) +return -ENODEV ; +if (check_virt_dev) { - xhci =hcd_to_xhci (hcd);if (!udev->slot_id || !xhci->devs || !xhci->devs[udev->slot_id]) { printk(KERN_DEBUG "xHCI %s called with unaddressed "
@@ -1242,7 +1246,8 @@ int xhci_urb_dequeue(struct usb_hcd *hcdxhci_urb_free_priv (xhci, urb_priv);return ret; } -if (xhci->xhc_state &XHCI_STATE_DYING ) { +if ((xhci->xhc_state &XHCI_STATE_DYING ) || + (xhci->xhc_state &XHCI_STATE_HALTED )) {xhci_dbg (xhci,"Ep 0x%x: URB %p to be canceled on " "non-responsive xHCI host.\n" , urb->ep->desc.bEndpointAddress, urb);
@@ -2667,7 +2672,10 @@ void xhci_free_dev(struct usb_hcd *hcd,int i, ret; ret =xhci_check_args (hcd, udev,NULL ,0 , true, __func__); -if (ret <=0 ) +/* If the host is halted due to driver unload, we still need to free the +* device. +*/ +if (ret <=0 && ret != -ENODEV )return ; virt_dev = xhci->devs[udev->slot_id];
@@ -2681,7 +2689,8 @@ void xhci_free_dev(struct usb_hcd *hcd,spin_lock_irqsave (&xhci->lock, flags);/* Don't disable the slot if the host controller is dead. */ state =xhci_readl (xhci, &xhci->op_regs->status); -if (state ==0xffffffff || (xhci->xhc_state &XHCI_STATE_DYING )) { +if (state ==0xffffffff || (xhci->xhc_state &XHCI_STATE_DYING ) || + (xhci->xhc_state &XHCI_STATE_HALTED )) {xhci_free_virt_device (xhci, udev->slot_id);spin_unlock_irqrestore (&xhci->lock, flags);return ;
PATCH 4/26 usb/config: use proper endian access for wMaxPacketSize
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Sebastian Andrzej Siewior <[email protected]>
commit 7de7c7d2cb49900e0b967be871bf695c7d6135c9 upstream.
wMaxPacketSize is __le16 and should be accessed as such. Also fix the wBytesPerInterval assignment while here.
v2: also fix the wBytesPerInterval assigment, noticed by Matt Evans
This patch should be backported to the 3.0 kernel.
--- drivers/usb/core/config.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)
drivers/usb/core/config.c +6 -5
@@ -123,10 +123,11 @@ static void usb_parse_ss_endpoint_compan }if (usb_endpoint_xfer_isoc (&ep->desc)) - max_tx = ep->desc.wMaxPacketSize * (desc->bMaxBurst +1 ) * - (desc->bmAttributes +1 ); + max_tx = (desc->bMaxBurst +1 ) * (desc->bmAttributes +1 ) * +le16_to_cpu (ep->desc.wMaxPacketSize);else if (usb_endpoint_xfer_int (&ep->desc)) - max_tx = ep->desc.wMaxPacketSize * (desc->bMaxBurst +1 ); + max_tx =le16_to_cpu (ep->desc.wMaxPacketSize) * + (desc->bMaxBurst +1 );else max_tx =999999 ;if (le16_to_cpu (desc->wBytesPerInterval) > max_tx) {
@@ -134,10 +135,10 @@ static void usb_parse_ss_endpoint_compan"config %d interface %d altsetting %d ep %d: " "setting to %d\n" ,usb_endpoint_xfer_isoc (&ep->desc) ?"Isoc" :"Int" , - desc->wBytesPerInterval, +le16_to_cpu (desc->wBytesPerInterval), cfgno, inum, asnum, ep->desc.bEndpointAddress, max_tx); - ep->ss_ep_comp.wBytesPerInterval = max_tx; + ep->ss_ep_comp.wBytesPerInterval =cpu_to_le16 (max_tx); } }
PATCH 5/26 usb: musb: fix oops on musb_gadget_pullup
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: John Stultz <[email protected]>
commit 72c487dfb94d02025fb7437dfe2314d836d5a9ab upstream.
an 'unhandled fault' is causes when a gadget driver calls usb_gadget_connect() while the USB cable isn't plugged into the OTG port.
the fault is caused by an access to MUSB's memory space while its clock is turned off due to pm_runtime kicking in.
in order to fix the fault, we enclose musb_gadget_pullup() with pm_runtime_get_sync() ... pm_runtime_put() calls to be sure we will always reach that path with clock turned on.
[ [email protected] : simplified commit log; removed few things
which didn't belong there ]
--- drivers/usb/musb/musb_gadget.c | 5 +++++ 1 file changed, 5 insertions(+)
drivers/usb/musb/musb_gadget.c +5 -0
@@ -1698,6 +1698,8 @@ static int musb_gadget_pullup(struct usb is_on = !!is_on; +pm_runtime_get_sync (musb->controller); +/* NOTE: this assumes we are sensing vbus; we'd rather * not pullup unless the B-session is active. */
@@ -1707,6 +1709,9 @@ static int musb_gadget_pullup(struct usbmusb_pullup (musb, is_on); }spin_unlock_irqrestore (&musb->lock, flags); + +pm_runtime_put (musb->controller); +return 0 ; }
PATCH 6/26 USB: assign instead of equal in usbtmc.c
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Maxim Nikulin <[email protected]>
commit 4f1a7a3e78037721496283ea3e87cfefc64d99c7 upstream.
Assign operator instead of equality test in the usbtmc_ioctl_abort_bulk_in() function.
--- drivers/usb/class/usbtmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/class/usbtmc.c +1 -1
@@ -268,7 +268,7 @@ usbtmc_abort_bulk_in_status:dev_err (dev,"usb_bulk_msg returned %d\n" , rv); goto exit; } - }while ((actual = max_size) && + }while ((actual == max_size) && (n <USBTMC_MAX_READS_TO_CLEAR_BULK_IN ));if (actual == max_size) {
PATCH 7/26 USB: ftdi_sio: fix minor typo in get_ftdi_divisor
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Ionut Nicu <[email protected]>
commit 1862cdd542025218f7a390b7e6ddc83a1362d1e0 upstream.
Even if it's unlikely for this to cause an error, there is a typo in the code that uses the bitwise-AND operator instead of the logical one.
--- drivers/usb/serial/ftdi_sio.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/usb/serial/ftdi_sio.c +1 -1
@@ -1171,7 +1171,7 @@ static __u32 get_ftdi_divisor(struct ttycase FT2232H :/* FT2232H chip */ case FT4232H :/* FT4232H chip */ case FT232H :/* FT232H chip */ -if ((baud <=12000000 ) & (baud >=1200 )) { +if ((baud <=12000000 ) && (baud >=1200 )) { div_value =ftdi_2232h_baud_to_divisor (baud); }else if (baud <1200 ) { div_value =ftdi_232bm_baud_to_divisor (baud);
PATCH 8/26 USB: usb-storage: unusual_devs entry for ARM V2M
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
motherboard.
From: Nick Bowler <[email protected]>
commit a871e4f5519d8c52430052e1d340dd5710eb5ad6 upstream.
Connecting the V2M to a Linux host results in a constant stream of errors spammed to the console, all of the form
sd 1:0:0:0: ioctl_internal_command return code = 8070000
: Sense Key : 0x4 [current]
: ASC=0x0 ASCQ=0x0The errors appear to be otherwise harmless. Add an unusual_devs entry which eliminates all of the error messages.
--- drivers/usb/storage/unusual_devs.h | 10 ++++++++++ 1 file changed, 10 insertions(+)
drivers/usb/storage/unusual_devs.h +10 -0
@@ -1988,6 +1988,16 @@ UNUSUAL_DEV( 0x4146, 0xba01, 0x0100, 0x "Micro Mini 1GB", USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NOT_LOCKABLE ), +/* +* Nick Bowler <[email protected]> +* SCSI stack spams (otherwise harmless) error messages. +*/ +UNUSUAL_DEV (0xc251 ,0x4003 ,0x0100 ,0x0100 , +"Keil Software, Inc." , +"V2M MotherBoard" , +USB_SC_DEVICE ,USB_PR_DEVICE ,NULL , +US_FL_NOT_LOCKABLE ), +/* Reported by Andrew Simmons <[email protected]> */ UNUSUAL_DEV( 0xed06, 0x4500, 0x0001, 0x0001, "DataStor",
PATCH 9/26 USB: Serial: Added device ID for Qualcomm Modem in
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
Sagemcom's HiLo3G
From: Vijay Chavan <[email protected]>
commit e468561739fffb972d486b98f66c723936335136 upstream.
A new device ID pair is added for Qualcomm Modem present in Sagemcom's HiLo3G module.
--- drivers/usb/serial/qcserial.c | 1 + 1 file changed, 1 insertion(+)
drivers/usb/serial/qcserial.c +1 -0
@@ -45,6 +45,7 @@ static const struct usb_device_id id_tab {USB_DEVICE(0x05c6, 0x9203)}, /* Generic Gobi Modem device */ {USB_DEVICE(0x05c6, 0x9222)}, /* Generic Gobi Modem device */ {USB_DEVICE(0x05c6, 0x9008)}, /* Generic Gobi QDL device */ + {USB_DEVICE(0x05c6, 0x9009)}, /* Generic Gobi Modem device */ {USB_DEVICE(0x05c6, 0x9201)}, /* Generic Gobi QDL device */ {USB_DEVICE(0x05c6, 0x9221)}, /* Generic Gobi QDL device */ {USB_DEVICE(0x05c6, 0x9231)}, /* Generic Gobi QDL device */
PATCH 10/26 USB: option driver: add PID for Vodafone-Huawei K3770
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Andrew Bird <[email protected]>
commit 07b21fd83606263fe6f327b98774d51e13e502fd upstream.
This patch adds the product ID of Huawei's Vodafone K3770 mobile broadband modem to option.c. This is necessary so that the driver gets loaded on demand without the intervention of usb_modeswitch. This has the benefit of it becoming available faster and also ensures that the option driver is not bound to a network interface that should be claimed by cdc_ether.
--- drivers/usb/serial/option.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/serial/option.c +3 -0
@@ -148,6 +148,7 @@ static void option_instat_callback(struc#define HUAWEI_PRODUCT_K4505 0x1464#define HUAWEI_PRODUCT_K3765 0x1465#define HUAWEI_PRODUCT_E14AC 0x14AC +#define HUAWEI_PRODUCT_K3770 0x14C9#define HUAWEI_PRODUCT_ETS1220 0x1803#define HUAWEI_PRODUCT_E353 0x1506
@@ -547,6 +548,8 @@ static const struct usb_device_id option { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3765, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ETS1220, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x01) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },
PATCH 11/26 USB: option driver: add PID for Vodafone-Huawei K3771
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Andrew Bird <[email protected]>
commit e2949080792256d1c979aaf30ecd4cab42829f87 upstream.
This patch adds the product ID of Huawei's Vodafone K3771 mobile broadband modem to option.c. This is necessary so that the driver gets loaded on demand without the intervention of usb_modeswitch. This has the benefit of it becoming available faster and also ensures that the option driver is not bound to a network interface that should be claimed by cdc_ether.
--- drivers/usb/serial/option.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/serial/option.c +3 -0
@@ -149,6 +149,7 @@ static void option_instat_callback(struc#define HUAWEI_PRODUCT_K3765 0x1465#define HUAWEI_PRODUCT_E14AC 0x14AC#define HUAWEI_PRODUCT_K3770 0x14C9 +#define HUAWEI_PRODUCT_K3771 0x14CA#define HUAWEI_PRODUCT_ETS1220 0x1803#define HUAWEI_PRODUCT_E353 0x1506
@@ -550,6 +551,8 @@ static const struct usb_device_id option { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x31) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x32) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x01) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },
PATCH 12/26 USB: option driver: add PID for Vodafone-Huawei K4510
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Andrew Bird <[email protected]>
commit 0930bb46bbbb43afe3381ece2cb2f8a5bc3fb544 upstream.
This patch adds the product ID of Huawei's Vodafone K4510 mobile broadband modem to option.c. This is necessary so that the driver gets loaded on demand without the intervention of usb_modeswitch. This has the benefit of it becoming available faster and also ensures that the option driver is not bound to a network interface that should be claimed by cdc_ether.
--- drivers/usb/serial/option.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/serial/option.c +3 -0
@@ -150,6 +150,7 @@ static void option_instat_callback(struc#define HUAWEI_PRODUCT_E14AC 0x14AC#define HUAWEI_PRODUCT_K3770 0x14C9#define HUAWEI_PRODUCT_K3771 0x14CA +#define HUAWEI_PRODUCT_K4510 0x14CB#define HUAWEI_PRODUCT_ETS1220 0x1803#define HUAWEI_PRODUCT_E353 0x1506
@@ -553,6 +554,8 @@ static const struct usb_device_id option { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x31) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x32) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4510, 0xff, 0x01, 0x31) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4510, 0xff, 0x01, 0x32) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x01) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },
PATCH 13/26 USB: option driver: add PID for Vodafone-Huawei K4511
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Andrew Bird <[email protected]>
commit 35e9e21fb30dc4452b33aed5cbf233743bffca40 upstream.
This patch adds the product ID of Huawei's Vodafone K4511 mobile broadband modem to option.c. This is necessary so that the driver gets loaded on demand without the intervention of usb_modeswitch. This has the benefit of it becoming available faster and also ensures that the option driver is not bound to a network interface that should be claimed by cdc_ether.
--- drivers/usb/serial/option.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/usb/serial/option.c +3 -0
@@ -151,6 +151,7 @@ static void option_instat_callback(struc#define HUAWEI_PRODUCT_K3770 0x14C9#define HUAWEI_PRODUCT_K3771 0x14CA#define HUAWEI_PRODUCT_K4510 0x14CB +#define HUAWEI_PRODUCT_K4511 0x14CC#define HUAWEI_PRODUCT_ETS1220 0x1803#define HUAWEI_PRODUCT_E353 0x1506
@@ -556,6 +557,8 @@ static const struct usb_device_id option { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x32) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4510, 0xff, 0x01, 0x31) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4510, 0xff, 0x01, 0x32) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4511, 0xff, 0x01, 0x31) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4511, 0xff, 0x01, 0x32) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E353, 0xff, 0x01, 0x01) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) },
PATCH 14/26 atm: br2864: sent packets truncated in VC routed mode
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Chas Williams <[email protected]>
commit a08af810cdc29d2ca930e8a869d3d01744c392d8 upstream.
--- net/atm/br2684.c | 2 -- 1 file changed, 2 deletions(-)
net/atm/br2684.c +0 -2
@@ -242,8 +242,6 @@ static int br2684_xmit_vcc(struct sk_bufif (brdev->payload == p_bridged) {skb_push (skb,2 );memset (skb->data,0 ,2 ); - }else {/* p_routed */ -skb_pull (skb,ETH_HLEN ); } }skb_debug (skb);
PATCH 15/26 hwmon: (ibmaem) add missing kfree
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Julia Lawall <[email protected]>
commit 66a89b2164e2d30661edbd1953eacf0594d8203a upstream.
rs_resp is dynamically allocated in aem_read_sensor(), so it should be freed before exiting in every case. This collects the kfree and the return at the end of the function.
--- drivers/hwmon/ibmaem.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-)
drivers/hwmon/ibmaem.c +10 -5
@@ -432,13 +432,15 @@ static int aem_read_sensor(struct aem_daaem_send_message (ipmi); res =wait_for_completion_timeout (&ipmi->read_complete,IPMI_TIMEOUT ); -if (!res) -return -ETIMEDOUT ; +if (!res) { + res = -ETIMEDOUT ; + goto out; + }if (ipmi->rx_result || ipmi->rx_msg_len != rs_size ||memcmp (&rs_resp->id, &system_x_id,sizeof (system_x_id))) { -kfree (rs_resp); -return -ENOENT ; + res = -ENOENT ; + goto out; }switch (size) {
@@ -463,8 +465,11 @@ static int aem_read_sensor(struct aem_dabreak ; } } + res =0 ; -return 0 ; +out: +kfree (rs_resp); +return res; }/* Update AEM energy registers */
PATCH 16/26 ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_desc
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Daniel Mack <[email protected]>
commit 15439bde3af7ff88459ea2b5520b77312e958df2 upstream.
This fixes faulty outbount packets in case the inbound packets received from the hardware are fragmented and contain bogus input iso frames. The bug has been there for ages, but for some strange reasons, it was only triggered by newer machines in 64bit mode.
--- sound/usb/caiaq/audio.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
sound/usb/caiaq/audio.c +4 -2
@@ -614,6 +614,7 @@ static void read_completed(struct urb *ustruct snd_usb_caiaqdev *dev;struct urb *out;int frame, len, send_it =0 , outframe =0 ; +size_t offset =0 ;if (urb->status || !info)return ;
@@ -634,7 +635,8 @@ static void read_completed(struct urb *u len = urb->iso_frame_desc[outframe].actual_length; out->iso_frame_desc[outframe].length = len; out->iso_frame_desc[outframe].actual_length =0 ; - out->iso_frame_desc[outframe].offset =BYTES_PER_FRAME * frame; + out->iso_frame_desc[outframe].offset = offset; + offset += len;if (len >0 ) {spin_lock (&dev->spinlock);
@@ -650,7 +652,7 @@ static void read_completed(struct urb *u }if (send_it) { - out->number_of_packets =FRAMES_PER_URB ; + out->number_of_packets = outframe; out->transfer_flags =URB_ISO_ASAP ;usb_submit_urb (out,GFP_ATOMIC ); }
PATCH 17/26 ASoC: Fix binding of WM8750 on Jive
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Mark Brown <[email protected]>
commit 6678050442e90a4e9511a9ed14b9bdfc5e393323 upstream.
The I2C address is misformatted and would never match.
--- sound/soc/samsung/jive_wm8750.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
sound/soc/samsung/jive_wm8750.c +1 -1
@@ -131,7 +131,7 @@ static struct snd_soc_dai_link jive_dai .cpu_dai_name = "s3c2412-i2s", .codec_dai_name = "wm8750-hifi", .platform_name = "samsung-audio", - .codec_name = "wm8750-codec.0-0x1a", + .codec_name = "wm8750-codec.0-001a", .init = jive_wm8750_init, .ops = &jive_ops, };
PATCH 18/26 ASoC: Tegra: tegra_pcm_deallocate_dma_buffer: Dont OOPS
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Stephen Warren <[email protected]>
commit a96edd59b2bc88b3d1ea47e0ba48076d65db9302 upstream.
Not all PCM devices have all sub-streams. Specifically, the SPDIF driver only supports playback and hence has no capture substream. Check whether a substream exists before dereferencing it, when de-allocating DMA buffers in tegra_pcm_deallocate_dma_buffer.
--- sound/soc/tegra/tegra_pcm.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
sound/soc/tegra/tegra_pcm.c +7 -2
@@ -309,9 +309,14 @@ static int tegra_pcm_preallocate_dma_bufstatic void tegra_pcm_deallocate_dma_buffer (struct snd_pcm *pcm,int stream) { -struct snd_pcm_substream *substream = pcm->streams[stream].substream; -struct snd_dma_buffer *buf = &substream->dma_buffer; +struct snd_pcm_substream *substream; +struct snd_dma_buffer *buf; + substream = pcm->streams[stream].substream; +if (!substream) +return ; + + buf = &substream->dma_buffer;if (!buf->area)return ;
PATCH 19/26 ASoC: Tegra: wm8903 machine driver: Allow re-insertion of
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
module
From: Stephen Warren <[email protected]>
commit 29591ed4ac6fe00e3ff23b5be0cdc7016ef9c47e upstream.
Two issues were preventing module snd-soc-tegra-wm8903.ko from being removed and re-inserted:
a) The speaker-enable GPIO is hosted by the WM8903 chip. This GPIO must be freed before snd_soc_unregister_card() is called, because that triggers wm8903.c:wm8903_remove(), which calls gpiochip_remove(), which then fails if any of the GPIOs are in use. To solve this, free all GPIOs first, so the code doesn't care where they come from.
b) We need to call snd_soc_jack_free_gpios() to match the call to snd_soc_jack_add_gpios() during initialization. Without this, the call to snd_soc_jack_add_gpios() fails during any subsequent modprobe and initialization, since the GPIO and IRQ are already registered. In turn, this causes the headphone state not to be monitored, so the headphone is assumed not to be plugged in, and the audio path to it is never enabled.
--- sound/soc/tegra/tegra_wm8903.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
sound/soc/tegra/tegra_wm8903.c +11 -4
@@ -56,6 +56,7 @@#define GPIO_HP_MUTE BIT(1)#define GPIO_INT_MIC_EN BIT(2)#define GPIO_EXT_MIC_EN BIT(3) +#define GPIO_HP_DET BIT(4)struct tegra_wm8903 {struct tegra_asoc_utils_data util_data;
@@ -304,6 +305,7 @@ static int tegra_wm8903_init(struct snd_snd_soc_jack_add_gpios (&tegra_wm8903_hp_jack,1 , &tegra_wm8903_hp_jack_gpio); + machine->gpio_requested |=GPIO_HP_DET ; } snd_soc_jack_new(codec, "Mic Jack", SND_JACK_MICROPHONE,
@@ -429,10 +431,10 @@ static int __devexit tegra_wm8903_driverstruct tegra_wm8903 *machine =snd_soc_card_get_drvdata (card);struct tegra_wm8903_platform_data *pdata = machine->pdata; -snd_soc_unregister_card (card); - -tegra_asoc_utils_fini (&machine->util_data); - +if (machine->gpio_requested &GPIO_HP_DET ) +snd_soc_jack_free_gpios (&tegra_wm8903_hp_jack, +1 , + &tegra_wm8903_hp_jack_gpio);if (machine->gpio_requested &GPIO_EXT_MIC_EN )gpio_free (pdata->gpio_ext_mic_en);if (machine->gpio_requested &GPIO_INT_MIC_EN )
@@ -441,6 +443,11 @@ static int __devexit tegra_wm8903_drivergpio_free (pdata->gpio_hp_mute);if (machine->gpio_requested &GPIO_SPKR_EN )gpio_free (pdata->gpio_spkr_en); + machine->gpio_requested =0 ; + +snd_soc_unregister_card (card); + +tegra_asoc_utils_fini (&machine->util_data);kfree (machine);
PATCH 20/26 ath5k: fix error handling in ath5k_beacon_send
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Bob Copeland <[email protected]>
commit bdc71bc59231f5542af13b5061b9ab124d093050 upstream.
This cleans up error handling for the beacon in case of dma mapping failure. We need to free the skb when dma mapping fails instead of nulling and leaking the pointer, and we should bail out to avoid giving the hardware the bad descriptor.
Finally, we need to perform the null check after trying to update the beacon, or else beacons will never be sent after a single mapping failure.
--- drivers/net/wireless/ath/ath5k/base.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-)
drivers/net/wireless/ath/ath5k/base.c +14 -9
@@ -1748,6 +1748,8 @@ ath5k_beacon_setup(struct ath5k_softc *sif (dma_mapping_error (sc->dev, bf->skbaddr)) {ATH5K_ERR (sc,"beacon DMA mapping failed\n" ); +dev_kfree_skb_any (skb); + bf->skb =NULL ;return -EIO ; }
@@ -1832,8 +1834,6 @@ ath5k_beacon_update(struct ieee80211_hwath5k_txbuf_free_skb (sc, avf->bbuf); avf->bbuf->skb = skb; ret =ath5k_beacon_setup (sc, avf->bbuf); -if (ret) - avf->bbuf->skb =NULL ; out:return ret; }
@@ -1854,6 +1854,7 @@ ath5k_beacon_send(struct ath5k_softc *scstruct ath5k_vif *avf;struct ath5k_buf *bf;struct sk_buff *skb; +int err;ATH5K_DBG_UNLIMIT (sc,ATH5K_DEBUG_BEACON ,"in beacon_send\n" );
@@ -1902,11 +1903,6 @@ ath5k_beacon_send(struct ath5k_softc *sc avf = (void *)vif->drv_priv; bf = avf->bbuf; -if (unlikely (bf->skb ==NULL || sc->opmode ==NL80211_IFTYPE_STATION || - sc->opmode ==NL80211_IFTYPE_MONITOR )) { -ATH5K_WARN (sc,"bf=%p bf_skb=%p\n" , bf, bf ? bf->skb :NULL ); -return ; - }/* * Stop any current dma and put the new frame on the queue.
@@ -1920,8 +1916,17 @@ ath5k_beacon_send(struct ath5k_softc *sc/* refresh the beacon for AP or MESH mode */ if (sc->opmode ==NL80211_IFTYPE_AP || - sc->opmode ==NL80211_IFTYPE_MESH_POINT ) -ath5k_beacon_update (sc->hw, vif); + sc->opmode ==NL80211_IFTYPE_MESH_POINT ) { + err =ath5k_beacon_update (sc->hw, vif); +if (err) +return ; + } + +if (unlikely (bf->skb ==NULL || sc->opmode ==NL80211_IFTYPE_STATION || + sc->opmode ==NL80211_IFTYPE_MONITOR )) { +ATH5K_WARN (sc,"bf=%p bf_skb=%p\n" , bf, bf->skb); +return ; + }trace_ath5k_tx (sc, bf->skb, &sc->txqs[sc->bhalq]);
PATCH 21/26 mm: fix wrong vmap address calculations with odd NR_CPUS values
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Clemens Ladisch <[email protected]>
commit f982f91516fa4cfd9d20518833cd04ad714585be upstream.
Commit db64fe02258f ("mm: rewrite vmap layer") introduced code that does address calculations under the assumption that VMAP_BLOCK_SIZE is a power of two. However, this might not be true if CONFIG_NR_CPUS is not set to a power of two.
Wrong vmap_block index/offset values could lead to memory corruption. However, this has never been observed in practice (or never been diagnosed correctly); what caught this was the BUG_ON in vb_alloc() that checks for inconsistent vmap_block indices.
To fix this, ensure that VMAP_BLOCK_SIZE always is a power of two.
--- mm/vmalloc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
mm/vmalloc.c +4 -3
@@ -732,9 +732,10 @@ static void free_unmap_vmap_area_addr(un#define VMAP_BBMAP_BITS_MIN (VMAP_MAX_ALLOC*2)#define VMAP_MIN (x, y) ((x) < (y) ? (x) : (y))/* can't use min() */ #define VMAP_MAX (x, y) ((x) > (y) ? (x) : (y))/* can't use max() */ -#define VMAP_BBMAP_BITS VMAP_MIN(VMAP_BBMAP_BITS_MAX, \ - VMAP_MAX(VMAP_BBMAP_BITS_MIN, \ - VMALLOC_PAGES / NR_CPUS / 16)) +#define VMAP_BBMAP_BITS \ + VMAP_MIN(VMAP_BBMAP_BITS_MAX, \ + VMAP_MAX(VMAP_BBMAP_BITS_MIN, \ + VMALLOC_PAGES / roundup_pow_of_two(NR_CPUS) / 16))#define VMAP_BLOCK_SIZE (VMAP_BBMAP_BITS * PAGE_SIZE)
PATCH 22/26 lguest: allow booting guest with CONFIG_RELOCATABLE=y
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Rusty Russell <[email protected]>
commit e22a539824e8ddb82c87b4f415165ede82e6ab56 upstream.
The CONFIG_RELOCATABLE code tries to align the unpack destination to the value of 'kernel_alignment' in the setup_hdr. If that's 0, it tries to unpack to address 0, which in fact causes the gunzip code to call 'error("Out of memory while allocating output buffer")'.
The bootloader (ie. the lguest Launcher in this case) should be doing setting this field; the normal bzImage is 16M, we can use the same.
--- Documentation/virtual/lguest/lguest.c | 3 +++ 1 file changed, 3 insertions(+)
Documentation/virtual/lguest/lguest.c +3 -0
@@ -2008,6 +2008,9 @@ int main(int argc, char *argv[])/* We use a simple helper to copy the arguments separated by spaces. */ concat ((char *)(boot +1 ), argv+optind+2 ); +/* Set kernel alignment to 16M (CONFIG_PHYSICAL_ALIGN) */ + boot->hdr.kernel_alignment =0x1000000 ; +/* Boot protocol version: 2.07 supports the fields for lguest. */ boot->hdr.version =0x207 ;
PATCH 23/26 drm/radeon/kms: dont enable connectors that are off in the
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
hotplug handler
From: Alex Deucher <[email protected]>
commit 73104b5cfe3067d68f2c2de3f3d4d4964c55873e upstream.
If we get a hotplug event on an connector that is off, don't attempt to turn it on or off, it should already be off.
Fixes:
https://bugzilla.redhat.com/show_bug.cgi?id=728228
--- drivers/gpu/drm/radeon/radeon_connectors.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/gpu/drm/radeon/radeon_connectors.c +4 -0
@@ -60,6 +60,10 @@ void radeon_connector_hotplug(struct drmradeon_hpd_set_polarity (rdev, radeon_connector->hpd.hpd); +/* if the connector is already off, don't turn it back on */ +if (connector->dpms !=DRM_MODE_DPMS_ON ) +return ; +/* powering up/down the eDP panel generates hpd events which * can interfere with modesetting. */
PATCH 24/26 drm/radeon/kms: fix regression is handling >2 heads on
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
cedar/caicos
From: Alex Deucher <[email protected]>
commit 33ae1827d6c3c79c5957536ec29d5a8780623147 upstream.
Need to add support for 4 crtcs when setting the possible crtcs for the encoders.
--- drivers/gpu/drm/radeon/radeon_encoders.c | 3 +++ 1 file changed, 3 insertions(+)
drivers/gpu/drm/radeon/radeon_encoders.c +3 -0
@@ -2323,6 +2323,9 @@ radeon_add_atom_encoder(struct drm_devicdefault : encoder->possible_crtcs =0x3 ;break ; +case 4 : + encoder->possible_crtcs =0xf ; +break ;case 6 : encoder->possible_crtcs =0x3f ;break ;
PATCH 25/26 drm/radeon/kms: dont try to be smart in the hpd handler
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Alex Deucher <[email protected]>
commit d5811e8731213f80c80d89e980505052f16aca1c upstream.
Attempting to try and turn off disconnected display hw in the hotput handler lead to more problems than it helped. For now just register an event and only attempt the do something interesting with DP. Other connectors are just too problematic:
- Some systems have an HPD pin assigned to LVDS, but it's rarely if ever connected properly and we don't really care about hpd events on LVDS anyway since it's always connected.
- The HPD pin is wired up correctly for eDP, but we don't really have to do anything since the events since it's always connected.
- Some HPD pins fire more than once when you connect/disconnect
- etc.
Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=39882
--- drivers/gpu/drm/radeon/atombios_dp.c | 12 ++++++++++++ drivers/gpu/drm/radeon/radeon_connectors.c | 14 ++++++-------- drivers/gpu/drm/radeon/radeon_mode.h | 1 + 3 files changed, 19 insertions(+), 8 deletions(-)
drivers/gpu/drm/radeon/atombios_dp.c +12 -0
@@ -613,6 +613,18 @@ static bool radeon_dp_get_link_status(streturn true; } +bool radeon_dp_needs_link_train (struct radeon_connector *radeon_connector) +{ +u8 link_status[DP_LINK_STATUS_SIZE ]; +struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; + +if (!radeon_dp_get_link_status (radeon_connector, link_status)) +return false; +if (dp_channel_eq_ok (link_status, dig->dp_lane_count)) +return false; +return true; +} +struct radeon_dp_link_train_info {struct radeon_device *rdev;struct drm_encoder *encoder;
drivers/gpu/drm/radeon/radeon_connectors.c +6 -8
@@ -64,18 +64,16 @@ void radeon_connector_hotplug(struct drmif (connector->dpms !=DRM_MODE_DPMS_ON )return ; -/* powering up/down the eDP panel generates hpd events which -* can interfere with modesetting. -*/ -if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) -return ; +/* just deal with DP (not eDP) here. */ +if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) { +int saved_dpms = connector->dpms; -/* pre-r600 did not always have the hpd pins mapped accurately to connectors */ -if (rdev->family >=CHIP_R600 ) { -if (radeon_hpd_sense (rdev, radeon_connector->hpd.hpd)) +if (radeon_hpd_sense (rdev, radeon_connector->hpd.hpd) && +radeon_dp_needs_link_train (radeon_connector))drm_helper_connector_dpms (connector,DRM_MODE_DPMS_ON );else drm_helper_connector_dpms (connector,DRM_MODE_DPMS_OFF ); + connector->dpms = saved_dpms; } }
drivers/gpu/drm/radeon/radeon_mode.h +1 -0
@@ -479,6 +479,7 @@ extern void radeon_dp_set_link_config(st struct drm_display_mode *mode);extern void radeon_dp_link_train (struct drm_encoder *encoder,struct drm_connector *connector); +extern bool radeon_dp_needs_link_train (struct radeon_connector *radeon_connector);extern u8 radeon_dp_getsinktype (struct radeon_connector *radeon_connector);extern bool radeon_dp_getdpcd (struct radeon_connector *radeon_connector);extern void atombios_dig_encoder_setup (struct drm_encoder *encoder,int action,int panel_mode);
PATCH 26/26 perf tools: do not look at ./config for configuration
In reply to Greg KH3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Jonathan Nieder <[email protected]>
commit aba8d056078e47350d85b06a9cabd5afcc4b72ea upstream.
In addition to /etc/perfconfig and $HOME/.perfconfig, perf looks for configuration in the file ./config, imitating git which looks at $GIT_DIR/config. If ./config is not a perf configuration file, it fails, or worse, treats it as a configuration file and changes behavior in some unexpected way.
"config" is not an unusual name for a file to be lying around and perf does not have a private directory dedicated for its own use, so let's just stop looking for configuration in the cwd. Callers needing context-sensitive configuration can use the PERF_CONFIG environment variable.
--- tools/perf/util/config.c | 7 ------- 1 file changed, 7 deletions(-)
tools/perf/util/config.c +0 -7
@@ -399,7 +399,6 @@ static int perf_config_global(void)int perf_config (config_fn_t fn,void *data) {int ret =0 , found =0 ; -char *repo_config =NULL ;const char *home =NULL ;/* Setting $PERF_CONFIG makes perf read _only_ the given config file. */
@@ -421,12 +420,6 @@ int perf_config(config_fn_t fn, void *dafree (user_config); } - repo_config =perf_pathdup ("config" ); -if (!access (repo_config,R_OK )) { - ret +=perf_config_from_file (fn, repo_config, data); - found +=1 ; - } -free (repo_config);if (found ==0 )return -1 ;return ret;