Linux 3.4.30
Greg KH
maintainerI'm announcing the release of the 3.4.30 kernel.
All users of the 3.4 kernel series must upgrade.
The updated 3.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-3.4.y
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2 arch/x86/ia32/ia32entry.S | 4 drivers/gpu/drm/radeon/evergreen.c | 10 drivers/gpu/drm/radeon/radeon_combios.c | 8 drivers/gpu/drm/radeon/radeon_display.c | 4 drivers/gpu/drm/radeon/radeon_ring.c | 3 drivers/gpu/drm/radeon/reg_srcs/cayman | 1 drivers/rtc/rtc-isl1208.c | 3 drivers/usb/core/hub.c | 70 +++++- drivers/usb/host/ehci-hub.c | 6 drivers/usb/host/ehci-sched.c | 2 drivers/usb/host/pci-quirks.c | 1 drivers/usb/host/xhci-ring.c | 13 - drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 9 drivers/usb/serial/option.c | 13 + drivers/usb/serial/qcserial.c | 1 drivers/usb/storage/initializers.c | 76 +++++++ drivers/usb/storage/initializers.h | 4 drivers/usb/storage/unusual_devs.h | 329 -------------------------------- drivers/usb/storage/usb.c | 12 + drivers/usb/storage/usual-tables.c | 15 + fs/nilfs2/ioctl.c | 5 include/linux/usb/ch9.h | 6 kernel/sched/rt.c | 2 lib/digsig.c | 2 26 files changed, 241 insertions(+), 362 deletions(-)
Alan Stern (3):
USB: EHCI: fix timer bug affecting port resume
USB: EHCI: fix bug in scheduling periodic split transfers
USB: XHCI: fix memory leak of URB-private data
Alex Deucher (4):
drm/radeon/evergreen+: wait for the MC to settle after MC blackout drm/radeon: add WAIT_UNTIL to the non-VM safe regs list for cayman/TN drm/radeon: add quirk for RV100 board
drm/radeon: prevent crash in the ring space allocation
Bjørn Mork (1):
USB: option: add Changhong CH690
Christopher Staite (1):
drm/radeon: fix MC blackout on evergreen+
Daniele Palmas (2):
USB: option: add support for Telit LE920
USB: qcserial: add Telit Gobi QDL device
David Moore (1):
usb: Prevent dead ports when xhci is not enabled
Greg Kroah-Hartman (1):
Linux 3.4.30
Jan Beulich (1):
x86-64: Replace left over sti/cli in ia32 audit exit code
Jan Luebbe (1):
drivers/rtc/rtc-isl1208.c: call rtc_update_irq() from the alarm irq handler
Lan Tianyu (1):
usb: Using correct way to clear usb3.0 device's remote wakeup feature.
Nickolai Zeldovich (1):
drivers: xhci: fix incorrect bit test
Petr Kubánek (1):
USB: ftdi_sio: add Zolix FTDI PID
Sarah Sharp (2):
xhci: Fix isoc TD encoding.
xhci: Fix TD size for isochronous URBs.
Shawn Bohrer (1):
sched/rt: Use root_domain of rt_rq not current processor
Sven Killig (1):
USB: ftdi_sio: add PID/VID entries for ELV WS 300 PC II
Vyacheslav Dubeyko (1):
nilfs2: fix fix very long mount time issue
YOSHIFUJI Hideaki (1):
digsig: Fix memory leakage in digsig_verify_rsa()
fangxiaozhi (2):
USB: storage: Define a new macro for USB storage match rules
USB: storage: optimize to match the Huawei USB storage devices and support new switch command
liu chuansheng (1):
drm/radeon: Calling object_unrefer() when creating fb failure
Greg KH
maintainerMakefile +1 -1
@@ -1,6 +1,6 @@ VERSION = 3 PATCHLEVEL = 4 -SUBLEVEL = 29 +SUBLEVEL = 30 EXTRAVERSION = NAME = Saber-toothed Squirrel
arch/x86/ia32/ia32entry.S +2 -2
@@ -205,7 +205,7 @@ sysexit_from_sys_call: testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) jnz ia32_ret_from_sys_call TRACE_IRQS_ON - sti + ENABLE_INTERRUPTS(CLBR_NONE) movl %eax,%esi /* second arg, syscall return value */ cmpl $-MAX_ERRNO,%eax /* is it an error ? */ jbe 1f
@@ -215,7 +215,7 @@ sysexit_from_sys_call: call __audit_syscall_exit movq RAX-ARGOFFSET(%rsp),%rax /* reload syscall return value */ movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT),%edi - cli + DISABLE_INTERRUPTS(CLBR_NONE) TRACE_IRQS_OFF testl %edi,TI_flags+THREAD_INFO(%rsp,RIP-ARGOFFSET) jz \exit
drivers/gpu/drm/radeon/evergreen.c +10 -0
@@ -1147,14 +1147,18 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *savif (!(tmp &EVERGREEN_CRTC_BLANK_DATA_EN )) {radeon_wait_for_vblank (rdev, i); tmp |=EVERGREEN_CRTC_BLANK_DATA_EN ; +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],1 );WREG32 (EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i], tmp); +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],0 ); } }else { tmp =RREG32 (EVERGREEN_CRTC_CONTROL + crtc_offsets[i]);if (!(tmp &EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE )) {radeon_wait_for_vblank (rdev, i); tmp |=EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE ; +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],1 );WREG32 (EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp); +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],0 ); } }/* wait for the next frame */
@@ -1179,6 +1183,8 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav blackout &= ~BLACKOUT_MODE_MASK ;WREG32 (MC_SHARED_BLACKOUT_CNTL , blackout |1 ); } +/* wait for the MC to settle */ +udelay (100 ); }void evergreen_mc_resume (struct radeon_device *rdev,struct evergreen_mc_save *save)
@@ -1212,11 +1218,15 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *sif (ASIC_IS_DCE6 (rdev)) { tmp =RREG32 (EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i]); tmp |=EVERGREEN_CRTC_BLANK_DATA_EN ; +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],1 );WREG32 (EVERGREEN_CRTC_BLANK_CONTROL + crtc_offsets[i], tmp); +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],0 ); }else { tmp =RREG32 (EVERGREEN_CRTC_CONTROL + crtc_offsets[i]); tmp &= ~EVERGREEN_CRTC_DISP_READ_REQUEST_DISABLE ; +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],1 );WREG32 (EVERGREEN_CRTC_CONTROL + crtc_offsets[i], tmp); +WREG32 (EVERGREEN_CRTC_UPDATE_LOCK + crtc_offsets[i],0 ); }/* wait for the next frame */ frame_count =radeon_get_vblank_counter (rdev, i);
drivers/gpu/drm/radeon/radeon_combios.c +8 -0
@@ -2338,6 +2338,14 @@ bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev) 1), ATOM_DEVICE_CRT1_SUPPORT); } +/* RV100 board with external TDMS bit mis-set. +* Actually uses internal TMDS, clear the bit. +*/ +if (dev->pdev->device ==0x5159 && + dev->pdev->subsystem_vendor ==0x1014 && + dev->pdev->subsystem_device ==0x029A ) { + tmp &= ~(1 <<4 ); + }if ((tmp >>4 ) &0x1 ) { devices |=ATOM_DEVICE_DFP2_SUPPORT ; radeon_add_legacy_encoder(dev,
drivers/gpu/drm/radeon/radeon_display.c +3 -1
@@ -1129,8 +1129,10 @@ radeon_user_framebuffer_create(struct drm_device *dev, } radeon_fb =kzalloc (sizeof (*radeon_fb),GFP_KERNEL ); -if (radeon_fb ==NULL ) +if (radeon_fb ==NULL ) { +drm_gem_object_unreference_unlocked (obj);return ERR_PTR (-ENOMEM ); + } ret =radeon_framebuffer_init (dev, radeon_fb, mode_cmd, obj);if (ret) {
drivers/gpu/drm/radeon/radeon_ring.c +3 -0
@@ -311,6 +311,9 @@ int radeon_ring_alloc(struct radeon_device *rdev, struct radeon_ring *ring, unsi {int r; +/* make sure we aren't trying to allocate more space than there is on the ring */ +if (ndw > (ring->ring_size /4 )) +return -ENOMEM ;/* Align requested size with padding so unlock_commit can * pad safely */ ndw = (ndw + ring->align_mask) & ~ring->align_mask;
drivers/gpu/drm/radeon/reg_srcs/cayman +1 -0
@@ -1,5 +1,6 @@ cayman 0x9400 0x0000802C GRBM_GFX_INDEX +0x00008040 WAIT_UNTIL 0x000084FC CP_STRMOUT_CNTL 0x000085F0 CP_COHER_CNTL 0x000085F4 CP_COHER_SIZE
drivers/rtc/rtc-isl1208.c +3 -0
@@ -494,6 +494,7 @@ isl1208_rtc_interrupt(int irq, void *data) {unsigned long timeout = jiffies +msecs_to_jiffies (1000 );struct i2c_client *client = data; +struct rtc_device *rtc =i2c_get_clientdata (client);int handled =0 , sr, err;/*
@@ -516,6 +517,8 @@ isl1208_rtc_interrupt(int irq, void *data)if (sr &ISL1208_REG_SR_ALM ) {dev_dbg (&client->dev,"alarm!\n" ); +rtc_update_irq (rtc,1 ,RTC_IRQF |RTC_AF ); +/* Clear the alarm */ sr &= ~ISL1208_REG_SR_ALM ; sr =i2c_smbus_write_byte_data (client,ISL1208_REG_SR , sr);
drivers/usb/core/hub.c +52 -18
90 lines not on this page · raw message
drivers/usb/host/ehci-hub.c +5 -1
@@ -612,7 +612,11 @@ ehci_hub_status_data (struct usb_hcd *hcd, char *buf) status =STS_PCD ; } } -/* FIXME autosuspend idle root hubs */ + +/* If a resume is in progress, make sure it can finish */ +if (ehci->resuming_ports) +mod_timer (&hcd->rh_timer, jiffies +msecs_to_jiffies (25 )); +spin_unlock_irqrestore (&ehci->lock, flags);return status ? retval :0 ; }
drivers/usb/host/ehci-sched.c +1 -1
@@ -236,7 +236,7 @@ static inline unsigned char tt_start_uframe(struct ehci_hcd *ehci, __hc32 mask) }static const unsigned char -max_tt_usecs[] = {125 ,125 ,125 ,125 ,125 ,125 ,30 ,0 }; +max_tt_usecs[] = {125 ,125 ,125 ,125 ,125 ,125 ,125 ,25 };/* carryover low/fullspeed bandwidth that crosses uframe boundries */ static inline void carryover_tt_bandwidth (unsigned short tt_usecs[8 ])
drivers/usb/host/pci-quirks.c +1 -0
@@ -780,6 +780,7 @@ void usb_enable_xhci_ports(struct pci_dev *xhci_pdev) "defaulting to EHCI.\n");dev_warn (&xhci_pdev->dev,"USB 3.0 devices will work at USB 2.0 speeds.\n" ); +usb_disable_xhci_ports (xhci_pdev);return ; }
drivers/usb/host/xhci-ring.c +9 -4
@@ -1698,7 +1698,7 @@ static void handle_port_status(struct xhci_hcd *xhci, faked_port_index + 1);if (slot_id && xhci->devs[slot_id])xhci_ring_device (xhci, slot_id); -if (bus_state->port_remote_wakeup && (1 << faked_port_index)) { +if (bus_state->port_remote_wakeup & (1 << faked_port_index)) { bus_state->port_remote_wakeup &= ~(1 << faked_port_index); xhci_test_and_clear_bit(xhci, port_array,
@@ -2587,6 +2587,8 @@ cleanup: (trb_comp_code != COMP_STALL && trb_comp_code != COMP_BABBLE))xhci_urb_free_priv (xhci, urb_priv); + else +kfree (urb_priv );usb_hcd_unlink_urb_from_ep (bus_to_hcd (urb->dev->bus), urb); if ((urb->actual_length != urb->transfer_buffer_length &&
@@ -3106,7 +3108,7 @@ static u32 xhci_v1_0_td_remainder(int running_total, int trb_buff_len,* running_total. */ packets_transferred = (running_total + trb_buff_len) / -usb_endpoint_maxp (&urb->ep->desc); +GET_MAX_PACKET (usb_endpoint_maxp (&urb->ep->desc));if ((total_packet_count - packets_transferred) >31 )return 31 <<17 ;
@@ -3640,7 +3642,8 @@ static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags, td_len = urb->iso_frame_desc[i].length; td_remain_len = td_len; total_packet_count =DIV_ROUND_UP (td_len, -usb_endpoint_maxp (&urb->ep->desc)); +GET_MAX_PACKET ( +usb_endpoint_maxp (&urb->ep->desc)));/* A zero-length transfer still involves at least one packet. */ if (total_packet_count ==0 ) total_packet_count++;
@@ -3662,9 +3665,11 @@ static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags, td = urb_priv->td[i];for (j =0 ; j < trbs_per_td; j++) {u32 remainder =0 ; - field =TRB_TBC (burst_count) |TRB_TLBPC (residue); + field =0 ;if (first_trb) { + field =TRB_TBC (burst_count) | +TRB_TLBPC (residue);/* Queue the isoc TRB */ field |=TRB_TYPE (TRB_ISOC );/* Assume URB_ISO_ASAP is set */
drivers/usb/serial/ftdi_sio.c +2 -0
@@ -590,6 +590,7 @@ static struct usb_device_id id_table_combined [] = {/* * ELV devices: */ + { USB_DEVICE(FTDI_ELV_VID, FTDI_ELV_WS300_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ELV_USR_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ELV_MSM1_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ELV_KL100_PID) },
@@ -676,6 +677,7 @@ static struct usb_device_id id_table_combined [] = { { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_5_PID) }, { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_6_PID) }, { USB_DEVICE(FTDI_VID, XSENS_CONVERTER_7_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_OMNI1509) }, { USB_DEVICE(MOBILITY_VID, MOBILITY_USB_SERIAL_PID) }, { USB_DEVICE(FTDI_VID, FTDI_ACTIVE_ROBOTS_PID) }, { USB_DEVICE(FTDI_VID, FTDI_MHAM_KW_PID) },
drivers/usb/serial/ftdi_sio_ids.h +8 -1
@@ -147,6 +147,11 @@#define XSENS_CONVERTER_6_PID 0xD38E#define XSENS_CONVERTER_7_PID 0xD38F +/** +* Zolix (www.zolix.com.cb) product ids +*/ +#define FTDI_OMNI1509 0xD491/* Omni1509 embedded USB-serial */ +/* * NDI (www.ndigital.com) product ids */
@@ -204,7 +209,7 @@/* * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). -* All of these devices use FTDI's vendor ID (0x0403). +* Almost all of these devices use FTDI's vendor ID (0x0403). * Further IDs taken from ELV Windows .inf file. * * The previously included PID for the UO 100 module was incorrect.
@@ -212,6 +217,8 @@* * Armin Laeuger originally sent the PID for the UM 100 module. */ +#define FTDI_ELV_VID 0x1B1F/* ELV AG */ +#define FTDI_ELV_WS300_PID 0xC006/* eQ3 WS 300 PC II */ #define FTDI_ELV_USR_PID 0xE000/* ELV Universal-Sound-Recorder */ #define FTDI_ELV_MSM1_PID 0xE001/* ELV Mini-Sound-Modul */ #define FTDI_ELV_KL100_PID 0xE002/* ELV Kfz-Leistungsmesser KL 100 */
drivers/usb/serial/option.c +13 -0
@@ -242,6 +242,7 @@ static void option_instat_callback(struct urb *urb);#define TELIT_PRODUCT_CC864_DUAL 0x1005#define TELIT_PRODUCT_CC864_SINGLE 0x1006#define TELIT_PRODUCT_DE910_DUAL 0x1010 +#define TELIT_PRODUCT_LE920 0x1200/* ZTE PRODUCTS */ #define ZTE_VENDOR_ID 0x19d2
@@ -453,6 +454,10 @@ static void option_instat_callback(struct urb *urb);#define TPLINK_VENDOR_ID 0x2357#define TPLINK_PRODUCT_MA180 0x0201 +/* Changhong products */ +#define CHANGHONG_VENDOR_ID 0x2077 +#define CHANGHONG_PRODUCT_CH690 0x7001 +/* some devices interfaces need special handling due to a number of reasons */ enum option_blacklist_reason {OPTION_BLACKLIST_NONE =0 ,
@@ -534,6 +539,11 @@ static const struct option_blacklist_info zte_1255_blacklist = { .reserved = BIT(3) | BIT(4), }; +static const struct option_blacklist_info telit_le920_blacklist = { + .sendsetup =BIT (0 ), + .reserved =BIT (1 ) |BIT (5 ), +}; +static const struct usb_device_id option_ids[] = { {USB_DEVICE (OPTION_VENDOR_ID ,OPTION_PRODUCT_COLT ) }, {USB_DEVICE (OPTION_VENDOR_ID ,OPTION_PRODUCT_RICOLA ) },
@@ -784,6 +794,8 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_LE920), + .driver_info = (kernel_ulong_t)&telit_le920_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */ { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&net_intf1_blacklist },
@@ -1318,6 +1330,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(PETATEL_VENDOR_ID, PETATEL_PRODUCT_NP10T) }, { USB_DEVICE(TPLINK_VENDOR_ID, TPLINK_PRODUCT_MA180), .driver_info = (kernel_ulong_t)&net_intf4_blacklist }, + { USB_DEVICE(CHANGHONG_VENDOR_ID, CHANGHONG_PRODUCT_CH690) }, { } /* Terminating entry */ };MODULE_DEVICE_TABLE (usb, option_ids);
drivers/usb/serial/qcserial.c +1 -0
@@ -55,6 +55,7 @@ static const struct usb_device_id id_table[] = { {DEVICE_G1K(0x05c6, 0x9221)}, /* Generic Gobi QDL device */ {DEVICE_G1K(0x05c6, 0x9231)}, /* Generic Gobi QDL device */ {DEVICE_G1K(0x1f45, 0x0001)}, /* Unknown Gobi QDL device */ + {DEVICE_G1K(0x1bc7, 0x900e)}, /* Telit Gobi QDL device *//* Gobi 2000 devices */ {USB_DEVICE(0x1410, 0xa010)}, /* Novatel Gobi 2000 QDL device */
drivers/usb/storage/initializers.c +74 -2
85 lines not on this page · raw message
drivers/usb/storage/initializers.h +2 -2
@@ -46,5 +46,5 @@ int usb_stor_euscsi_init(struct us_data *us);* flash reader */ int usb_stor_ucr61s2b_init (struct us_data *us); -/* This places the HUAWEI E220 devices in multi-port mode */ -int usb_stor_huawei_e220_init (struct us_data *us); +/* This places the HUAWEI usb dongles in multi-port mode */ +int usb_stor_huawei_init (struct us_data *us);
drivers/usb/storage/unusual_devs.h +2 -327
337 lines not on this page · raw message
drivers/usb/storage/usb.c +12 -0
@@ -120,6 +120,17 @@ MODULE_PARM_DESC(quirks, "supplemental list of device IDs and their quirks"); .useTransport = use_transport, \ } +#define UNUSUAL_VENDOR_INTF (idVendor, cl, sc, pr, \ + vendor_name, product_name, use_protocol, use_transport, \ + init_function, Flags) \ +{ \ + .vendorName = vendor_name, \ + .productName = product_name, \ + .useProtocol = use_protocol, \ + .useTransport = use_transport, \ + .initFunction = init_function, \ +} +static struct us_unusual_dev us_unusual_dev_list[] = { # include "unusual_devs.h" { }/* Terminating entry */
@@ -131,6 +142,7 @@ static struct us_unusual_dev for_dynamic_ids =#undef UNUSUAL_DEV#undef COMPLIANT_DEV#undef USUAL_DEV +#undef UNUSUAL_VENDOR_INTF#ifdef CONFIG_LOCKDEP
drivers/usb/storage/usual-tables.c +15 -0
@@ -46,6 +46,20 @@ { USB_INTERFACE_INFO(USB_CLASS_MASS_STORAGE, useProto, useTrans), \ .driver_info = ((useType)<<24) } +/* Define the device is matched with Vendor ID and interface descriptors */ +#define UNUSUAL_VENDOR_INTF (id_vendor, cl, sc, pr, \ + vendorName, productName, useProtocol, useTransport, \ + initFunction, flags) \ +{ \ + .match_flags = USB_DEVICE_ID_MATCH_INT_INFO \ + | USB_DEVICE_ID_MATCH_VENDOR, \ + .idVendor = (id_vendor), \ + .bInterfaceClass = (cl), \ + .bInterfaceSubClass = (sc), \ + .bInterfaceProtocol = (pr), \ + .driver_info = (flags) \ +} +struct usb_device_id usb_storage_usb_ids[] = { # include "unusual_devs.h" { }/* Terminating entry */
@@ -57,6 +71,7 @@ MODULE_DEVICE_TABLE(usb, usb_storage_usb_ids);#undef UNUSUAL_DEV#undef COMPLIANT_DEV#undef USUAL_DEV +#undef UNUSUAL_VENDOR_INTF/*
fs/nilfs2/ioctl.c +4 -1
@@ -666,8 +666,11 @@ static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp,if (ret <0 )printk (KERN_ERR "NILFS: GC failed during preparation: " "cannot read source blocks: err=%d\n" , ret); -else +else { +if (nilfs_sb_need_update (nilfs)) +set_nilfs_discontinued (nilfs); ret =nilfs_clean_segments (inode->i_sb, argv, kbufs); + }nilfs_remove_all_gcinodes (nilfs);clear_nilfs_gc_running (nilfs);
include/linux/usb/ch9.h +6 -0
@@ -150,6 +150,12 @@#define USB_INTRF_FUNC_SUSPEND_LP (1 << (8 + 0))#define USB_INTRF_FUNC_SUSPEND_RW (1 << (8 + 1)) +/* +* Interface status, Figure 9-5 USB 3.0 spec +*/ +#define USB_INTRF_STAT_FUNC_RW_CAP 1 +#define USB_INTRF_STAT_FUNC_RW 2 +#define USB_ENDPOINT_HALT 0/* IN/OUT will STALL */ /* Bit array elements as returned by the USB_REQ_GET_STATUS request. */
kernel/sched/rt.c +1 -1
@@ -560,7 +560,7 @@ static inline struct rt_bandwidth *sched_rt_bandwidth(struct rt_rq *rt_rq)static int do_balance_runtime (struct rt_rq *rt_rq) {struct rt_bandwidth *rt_b =sched_rt_bandwidth (rt_rq); -struct root_domain *rd =cpu_rq (smp_processor_id ())->rd; +struct root_domain *rd =rq_of_rt_rq (rt_rq)->rd;int i, weight, more =0 ;u64 rt_period;
lib/digsig.c +2 -0
@@ -162,6 +162,8 @@ static int digsig_verify_rsa(struct key *key,memset (out1,0 , head);memcpy (out1 + head, p, l); +kfree (p); + err =pkcs_1_v1_5_decode_emsa (out1, len, mblen, out2, &len);if (err) goto err;