Changeset 32707


Ignore:
Timestamp:
Jul 15, 2017, 4:30:04 PM (11 days ago)
Author:
brainslayer
Message:

update kernels

Location:
src/linux/universal
Files:
111 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.18/Makefile

    r32569 r32707  
    11VERSION = 3
    22PATCHLEVEL = 18
    3 SUBLEVEL = 60
     3SUBLEVEL = 61
    44EXTRAVERSION =
    55NAME = Diseased Newt
  • src/linux/universal/linux-3.18/drivers/base/platform.c

    r28057 r32707  
    728728{
    729729        struct platform_device *pdev = to_platform_device(dev);
    730         char *driver_override, *old = pdev->driver_override, *cp;
     730        char *driver_override, *old, *cp;
    731731
    732732        if (count > PATH_MAX)
     
    741741                *cp = '\0';
    742742
     743        device_lock(dev);
     744        old = pdev->driver_override;
    743745        if (strlen(driver_override)) {
    744746                pdev->driver_override = driver_override;
     
    747749                pdev->driver_override = NULL;
    748750        }
     751        device_unlock(dev);
    749752
    750753        kfree(old);
     
    757760{
    758761        struct platform_device *pdev = to_platform_device(dev);
    759 
    760         return sprintf(buf, "%s\n", pdev->driver_override);
     762        ssize_t len;
     763
     764        device_lock(dev);
     765        len = sprintf(buf, "%s\n", pdev->driver_override);
     766        device_unlock(dev);
     767        return len;
    761768}
    762769static DEVICE_ATTR_RW(driver_override);
  • src/linux/universal/linux-3.18/drivers/md/md.c

    r30910 r32707  
    18301830        sb = page_address(rdev->sb_page);
    18311831        sb->data_size = cpu_to_le64(num_sectors);
    1832         sb->super_offset = rdev->sb_start;
     1832        sb->super_offset = cpu_to_le64(rdev->sb_start);
    18331833        sb->sb_csum = calc_sb_1_csum(sb);
    18341834        md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
  • src/linux/universal/linux-3.18/drivers/media/pci/saa7134/saa7134-i2c.c

    r25370 r32707  
    351351/* ----------------------------------------------------------- */
    352352
     353/* On Medion 7134 reading EEPROM needs DVB-T demod i2c gate open */
     354static void saa7134_i2c_eeprom_md7134_gate(struct saa7134_dev *dev)
     355{
     356        u8 subaddr = 0x7, dmdregval;
     357        u8 data[2];
     358        int ret;
     359        struct i2c_msg i2cgatemsg_r[] = { {.addr = 0x08, .flags = 0,
     360                                           .buf = &subaddr, .len = 1},
     361                                          {.addr = 0x08,
     362                                           .flags = I2C_M_RD,
     363                                           .buf = &dmdregval, .len = 1}
     364                                        };
     365        struct i2c_msg i2cgatemsg_w[] = { {.addr = 0x08, .flags = 0,
     366                                           .buf = data, .len = 2} };
     367
     368        ret = i2c_transfer(&dev->i2c_adap, i2cgatemsg_r, 2);
     369        if ((ret == 2) && (dmdregval & 0x2)) {
     370                pr_debug("%s: DVB-T demod i2c gate was left closed\n",
     371                         dev->name);
     372
     373                data[0] = subaddr;
     374                data[1] = (dmdregval & ~0x2);
     375                if (i2c_transfer(&dev->i2c_adap, i2cgatemsg_w, 1) != 1)
     376                        pr_err("%s: EEPROM i2c gate open failure\n",
     377                          dev->name);
     378        }
     379}
     380
    353381static int
    354382saa7134_i2c_eeprom(struct saa7134_dev *dev, unsigned char *eedata, int len)
     
    356384        unsigned char buf;
    357385        int i,err;
     386
     387        if (dev->board == SAA7134_BOARD_MD7134)
     388                saa7134_i2c_eeprom_md7134_gate(dev);
    358389
    359390        dev->i2c_client.addr = 0xa0 >> 1;
  • src/linux/universal/linux-3.18/drivers/net/ethernet/broadcom/bgmac.c

    r25370 r32707  
    14131413static int bgmac_probe(struct bcma_device *core)
    14141414{
     1415        struct bcma_chipinfo *ci = &core->bus->chipinfo;
    14151416        struct net_device *net_dev;
    14161417        struct bgmac *bgmac;
     
    14301431                dev_warn(&core->dev, "Using random MAC: %pM\n", mac);
    14311432        }
     1433
     1434        /* This (reset &) enable is not preset in specs or reference driver but
     1435         * Broadcom does it in arch PCI code when enabling fake PCI device.
     1436         */
     1437        bcma_core_enable(core, 0);
    14321438
    14331439        /* Allocation and references */
     
    14751481
    14761482        /* For Northstar, we have to take all GMAC core out of reset */
    1477         if (core->id.id == BCMA_CHIP_ID_BCM4707 ||
    1478             core->id.id == BCMA_CHIP_ID_BCM53018) {
     1483        if (ci->id == BCMA_CHIP_ID_BCM4707 ||
     1484            ci->id == BCMA_CHIP_ID_BCM53018) {
    14791485                struct bcma_device *ns_core;
    14801486                int ns_gmac;
  • src/linux/universal/linux-3.18/drivers/pinctrl/freescale/pinctrl-mxs.c

    r25370 r32707  
    196196}
    197197
     198static void mxs_pinctrl_rmwl(u32 value, u32 mask, u8 shift, void __iomem *reg)
     199{
     200        u32 tmp;
     201
     202        tmp = readl(reg);
     203        tmp &= ~(mask << shift);
     204        tmp |= value << shift;
     205        writel(tmp, reg);
     206}
     207
    198208static int mxs_pinctrl_set_mux(struct pinctrl_dev *pctldev, unsigned selector,
    199209                               unsigned group)
     
    213223                shift = pin % 16 * 2;
    214224
    215                 writel(0x3 << shift, reg + CLR);
    216                 writel(g->muxsel[i] << shift, reg + SET);
     225                mxs_pinctrl_rmwl(g->muxsel[i], 0x3, shift, reg);
    217226        }
    218227
     
    281290                        if (config & MA_PRESENT) {
    282291                                shift = pin % 8 * 4;
    283                                 writel(0x3 << shift, reg + CLR);
    284                                 writel(ma << shift, reg + SET);
     292                                mxs_pinctrl_rmwl(ma, 0x3, shift, reg);
    285293                        }
    286294
  • src/linux/universal/linux-3.18/drivers/pinctrl/sh-pfc/core.c

    r25370 r32707  
    530530                if (ret < 0)
    531531                        return ret;
     532
     533                /* .init() may have overridden pfc->info */
     534                info = pfc->info;
    532535        }
    533536
  • src/linux/universal/linux-3.18/drivers/staging/comedi/comedi_fops.c

    r25370 r32707  
    26012601                if (IS_ERR(dev)) {
    26022602                        comedi_cleanup_board_minors();
     2603                        class_destroy(comedi_class);
    26032604                        cdev_del(&comedi_cdev);
    26042605                        unregister_chrdev_region(MKDEV(COMEDI_MAJOR, 0),
  • src/linux/universal/linux-3.18/drivers/staging/vt6656/main_usb.c

    r25370 r32707  
    540540        }
    541541
     542        if (vnt_key_init_table(priv))
     543                goto free_all;
     544
    542545        priv->int_interval = 1;  /* bInterval is set to 1 */
    543546
  • src/linux/universal/linux-3.18/drivers/usb/core/quirks.c

    r31869 r32707  
    217217        { USB_DEVICE(0x1edb, 0xbd4f), .driver_info = USB_QUIRK_NO_LPM },
    218218
     219        /* Hauppauge HVR-950q */
     220        { USB_DEVICE(0x2040, 0x7200), .driver_info =
     221                        USB_QUIRK_CONFIG_INTF_STRINGS },
     222
    219223        /* INTEL VALUE SSD */
    220224        { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
  • src/linux/universal/linux-3.18/drivers/usb/dwc3/dwc3-st.c

    r25370 r32707  
    228228        dwc3_data->syscfg_reg_off = res->start;
    229229
    230         dev_vdbg(&pdev->dev, "glue-logic addr 0x%p, syscfg-reg offset 0x%x\n",
     230        dev_vdbg(&pdev->dev, "glue-logic addr 0x%pK, syscfg-reg offset 0x%x\n",
    231231                 dwc3_data->glue_base, dwc3_data->syscfg_reg_off);
    232232
  • src/linux/universal/linux-3.18/drivers/usb/dwc3/gadget.c

    r30588 r32707  
    12301230                        goto out1;
    12311231                }
    1232                 dev_err(dwc->dev, "request %p was not queued to %s\n",
     1232                dev_err(dwc->dev, "request %pK was not queued to %s\n",
    12331233                                request, ep->name);
    12341234                ret = -EINVAL;
     
    18341834                 * fixes the root cause instead of looking away :)
    18351835                 */
    1836                 dev_err(dwc->dev, "%s's TRB (%p) still owned by HW\n",
     1836                dev_err(dwc->dev, "%s's TRB (%pK) still owned by HW\n",
    18371837                                dep->name, trb);
    18381838
  • src/linux/universal/linux-3.18/drivers/usb/serial/cp210x.c

    r30910 r32707  
    133133        { USB_DEVICE(0x10C4, 0x8998) }, /* KCF Technologies PRN */
    134134        { USB_DEVICE(0x10C4, 0x8A2A) }, /* HubZ dual ZigBee and Z-Wave dongle */
     135        { USB_DEVICE(0x10C4, 0x8A5E) }, /* CEL EM3588 ZigBee USB Stick Long Range */
    135136        { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
    136137        { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
  • src/linux/universal/linux-3.18/drivers/usb/serial/option.c

    r32142 r32707  
    18721872        },
    18731873        { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, SPEEDUP_PRODUCT_SU9800, 0xff) },
     1874        { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9801, 0xff),
     1875          .driver_info = (kernel_ulong_t)&net_intf3_blacklist },
     1876        { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9803, 0xff),
     1877          .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
    18741878        { USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) },
    18751879        { USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) },
  • src/linux/universal/linux-3.18/drivers/usb/serial/qcserial.c

    r32142 r32707  
    158158        {DEVICE_SWI(0x1199, 0x9060)},   /* Sierra Wireless Modem */
    159159        {DEVICE_SWI(0x1199, 0x9061)},   /* Sierra Wireless Modem */
     160        {DEVICE_SWI(0x1199, 0x9063)},   /* Sierra Wireless EM7305 */
    160161        {DEVICE_SWI(0x1199, 0x9070)},   /* Sierra Wireless MC74xx */
    161162        {DEVICE_SWI(0x1199, 0x9071)},   /* Sierra Wireless MC74xx */
  • src/linux/universal/linux-3.18/drivers/usb/usbip/stub_main.c

    r25370 r32707  
    263263
    264264                kfree(urb->transfer_buffer);
     265                urb->transfer_buffer = NULL;
     266
    265267                kfree(urb->setup_packet);
     268                urb->setup_packet = NULL;
     269
    266270                usb_free_urb(urb);
    267271        }
  • src/linux/universal/linux-3.18/drivers/usb/usbip/stub_tx.c

    r30986 r32707  
    2929
    3030        kfree(urb->setup_packet);
     31        urb->setup_packet = NULL;
     32
    3133        kfree(urb->transfer_buffer);
     34        urb->transfer_buffer = NULL;
     35
    3236        list_del(&priv->list);
    3337        kmem_cache_free(stub_priv_cache, priv);
  • src/linux/universal/linux-3.18/include/linux/usb/hcd.h

    r29844 r32707  
    554554
    555555#define EndpointRequest \
    556         ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
     556        ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT)<<8)
    557557#define EndpointOutRequest \
    558         ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
     558        ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT)<<8)
    559559
    560560/* class requests from the USB 2.0 hub spec, table 11-15 */
  • src/linux/universal/linux-3.18/ipc/mqueue.c

    r27768 r32707  
    12401240                        timeo = MAX_SCHEDULE_TIMEOUT;
    12411241                        ret = netlink_attachskb(sock, nc, &timeo, NULL);
    1242                         if (ret == 1)
     1242                        if (ret == 1) {
     1243                                sock = NULL;
    12431244                                goto retry;
     1245                        }
    12441246                        if (ret) {
    12451247                                sock = NULL;
  • src/linux/universal/linux-3.18/kernel/trace/trace_kprobe.c

    r32142 r32707  
    672672                return -EINVAL;
    673673        }
    674         if (isdigit(argv[1][0])) {
    675                 if (is_return) {
    676                         pr_info("Return probe point must be a symbol.\n");
    677                         return -EINVAL;
    678                 }
    679                 /* an address specified */
    680                 ret = kstrtoul(&argv[1][0], 0, (unsigned long *)&addr);
    681                 if (ret) {
    682                         pr_info("Failed to parse address.\n");
    683                         return ret;
    684                 }
    685         } else {
     674
     675        /* try to parse an address. if that fails, try to read the
     676         * input as a symbol. */
     677        if (kstrtoul(argv[1], 0, (unsigned long *)&addr)) {
    686678                /* a symbol specified */
    687679                symbol = argv[1];
     
    689681                ret = traceprobe_split_symbol_offset(symbol, &offset);
    690682                if (ret) {
    691                         pr_info("Failed to parse symbol.\n");
     683                        pr_info("Failed to parse either an address or a symbol.\n");
    692684                        return ret;
    693685                }
     
    696688                        return -EINVAL;
    697689                }
     690        } else if (is_return) {
     691                pr_info("Return probe point must be a symbol.\n");
     692                return -EINVAL;
    698693        }
    699694        argc -= 2; argv += 2;
  • src/linux/universal/linux-3.18/security/keys/encrypted-keys/encrypted.c

    r29492 r32707  
    429429                                      u8 **master_key, size_t *master_keylen)
    430430{
    431         struct key *mkey = NULL;
     431        struct key *mkey = ERR_PTR(-EINVAL);
    432432
    433433        if (!strncmp(epayload->master_desc, KEY_TRUSTED_PREFIX,
  • src/linux/universal/linux-4.4/Makefile

    r32569 r32707  
    11VERSION = 4
    22PATCHLEVEL = 4
    3 SUBLEVEL = 76
     3SUBLEVEL = 77
    44EXTRAVERSION =
    55NAME = Blurry Fish Butt
  • src/linux/universal/linux-4.4/arch/x86/include/asm/pat.h

    r30442 r32707  
    88void pat_disable(const char *reason);
    99extern void pat_init(void);
     10extern void init_cache_modes(void);
    1011
    1112extern int reserve_memtype(u64 start, u64 end,
  • src/linux/universal/linux-4.4/arch/x86/kernel/setup.c

    r28606 r32707  
    10491049                max_pfn = e820_end_of_ram_pfn();
    10501050
     1051        /*
     1052         * This call is required when the CPU does not support PAT. If
     1053         * mtrr_bp_init() invoked it already via pat_init() the call has no
     1054         * effect.
     1055         */
     1056        init_cache_modes();
     1057
    10511058#ifdef CONFIG_X86_32
    10521059        /* max_low_pfn get updated here */
  • src/linux/universal/linux-4.4/arch/x86/lib/copy_user_64.S

    r29166 r32707  
    8181        andl $63,%edx
    8282        shrl $6,%ecx
    83         jz 17f
     83        jz .L_copy_short_string
    84841:      movq (%rsi),%r8
    85852:      movq 1*8(%rsi),%r9
     
    102102        decl %ecx
    103103        jnz 1b
    104 17:     movl %edx,%ecx
     104.L_copy_short_string:
     105        movl %edx,%ecx
    105106        andl $7,%edx
    106107        shrl $3,%ecx
     
    216217ENTRY(copy_user_enhanced_fast_string)
    217218        ASM_STAC
     219        cmpl $64,%edx
     220        jb .L_copy_short_string /* less then 64 bytes, avoid the costly 'rep' */
    218221        movl %edx,%ecx
    2192221:      rep
  • src/linux/universal/linux-4.4/arch/x86/mm/pat.c

    r30442 r32707  
    3737#define pr_fmt(fmt) "" fmt
    3838
    39 static bool boot_cpu_done;
    40 
    41 static int __read_mostly __pat_enabled = IS_ENABLED(CONFIG_X86_PAT);
    42 static void init_cache_modes(void);
     39static bool __read_mostly boot_cpu_done;
     40static bool __read_mostly pat_disabled = !IS_ENABLED(CONFIG_X86_PAT);
     41static bool __read_mostly pat_initialized;
     42static bool __read_mostly init_cm_done;
    4343
    4444void pat_disable(const char *reason)
    4545{
    46         if (!__pat_enabled)
     46        if (pat_disabled)
    4747                return;
    4848
     
    5252        }
    5353
    54         __pat_enabled = 0;
     54        pat_disabled = true;
    5555        pr_info("x86/PAT: %s\n", reason);
    56 
    57         init_cache_modes();
    5856}
    5957
     
    6765bool pat_enabled(void)
    6866{
    69         return !!__pat_enabled;
     67        return pat_initialized;
    7068}
    7169EXPORT_SYMBOL_GPL(pat_enabled);
     
    205203        }
    206204        pr_info("x86/PAT: Configuration [0-7]: %s\n", pat_msg);
     205
     206        init_cm_done = true;
    207207}
    208208
     
    225225
    226226        wrmsrl(MSR_IA32_CR_PAT, pat);
     227        pat_initialized = true;
    227228
    228229        __init_cache_modes(pat);
     
    242243}
    243244
    244 static void init_cache_modes(void)
     245void init_cache_modes(void)
    245246{
    246247        u64 pat = 0;
    247         static int init_cm_done;
    248248
    249249        if (init_cm_done)
     
    287287
    288288        __init_cache_modes(pat);
    289 
    290         init_cm_done = 1;
    291289}
    292290
     
    306304        struct cpuinfo_x86 *c = &boot_cpu_data;
    307305
    308         if (!pat_enabled()) {
    309                 init_cache_modes();
     306        if (pat_disabled)
    310307                return;
    311         }
    312308
    313309        if ((c->x86_vendor == X86_VENDOR_INTEL) &&
  • src/linux/universal/linux-4.4/arch/x86/tools/relocs.c

    r28606 r32707  
    993993
    994994        /* Order the relocations for more efficient processing */
    995         sort_relocs(&relocs16);
    996995        sort_relocs(&relocs32);
    997996#if ELF_BITS == 64
    998997        sort_relocs(&relocs32neg);
    999998        sort_relocs(&relocs64);
     999#else
     1000        sort_relocs(&relocs16);
    10001001#endif
    10011002
  • src/linux/universal/linux-4.4/drivers/base/platform.c

    r30802 r32707  
    808808{
    809809        struct platform_device *pdev = to_platform_device(dev);
    810         char *driver_override, *old = pdev->driver_override, *cp;
     810        char *driver_override, *old, *cp;
    811811
    812812        if (count > PATH_MAX)
     
    821821                *cp = '\0';
    822822
     823        device_lock(dev);
     824        old = pdev->driver_override;
    823825        if (strlen(driver_override)) {
    824826                pdev->driver_override = driver_override;
     
    827829                pdev->driver_override = NULL;
    828830        }
     831        device_unlock(dev);
    829832
    830833        kfree(old);
     
    837840{
    838841        struct platform_device *pdev = to_platform_device(dev);
    839 
    840         return sprintf(buf, "%s\n", pdev->driver_override);
     842        ssize_t len;
     843
     844        device_lock(dev);
     845        len = sprintf(buf, "%s\n", pdev->driver_override);
     846        device_unlock(dev);
     847        return len;
    841848}
    842849static DEVICE_ATTR_RW(driver_override);
  • src/linux/universal/linux-4.4/drivers/gpu/drm/virtio/virtgpu_object.c

    r28606 r32707  
    8282        size = roundup(size, PAGE_SIZE);
    8383        ret = drm_gem_object_init(vgdev->ddev, &bo->gem_base, size);
    84         if (ret != 0)
     84        if (ret != 0) {
     85                kfree(bo);
    8586                return ret;
     87        }
    8688        bo->dumb = false;
    8789        virtio_gpu_init_ttm_placement(bo, pinned);
  • src/linux/universal/linux-4.4/drivers/infiniband/core/uverbs_cmd.c

    r28606 r32707  
    22882288                return -EFAULT;
    22892289
     2290        if (cmd.port_num < rdma_start_port(ib_dev) ||
     2291            cmd.port_num > rdma_end_port(ib_dev))
     2292                return -EINVAL;
     2293
    22902294        INIT_UDATA(&udata, buf + sizeof cmd, NULL, in_len - sizeof cmd,
    22912295                   out_len);
     
    28272831        if (copy_from_user(&cmd, buf, sizeof cmd))
    28282832                return -EFAULT;
     2833
     2834        if (cmd.attr.port_num < rdma_start_port(ib_dev) ||
     2835            cmd.attr.port_num > rdma_end_port(ib_dev))
     2836                return -EINVAL;
    28292837
    28302838        uobj = kmalloc(sizeof *uobj, GFP_KERNEL);
  • src/linux/universal/linux-4.4/drivers/md/md.c

    r31121 r32707  
    18671867        sb = page_address(rdev->sb_page);
    18681868        sb->data_size = cpu_to_le64(num_sectors);
    1869         sb->super_offset = rdev->sb_start;
     1869        sb->super_offset = cpu_to_le64(rdev->sb_start);
    18701870        sb->sb_csum = calc_sb_1_csum(sb);
    18711871        md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
     
    22742274        if ((mddev->dev_sectors != le64_to_cpu(sb->size)) ||
    22752275            (mddev->reshape_position != le64_to_cpu(sb->reshape_position)) ||
    2276             (mddev->layout != le64_to_cpu(sb->layout)) ||
     2276            (mddev->layout != le32_to_cpu(sb->layout)) ||
    22772277            (mddev->raid_disks != le32_to_cpu(sb->raid_disks)) ||
    22782278            (mddev->chunk_sectors != le32_to_cpu(sb->chunksize)))
  • src/linux/universal/linux-4.4/drivers/media/pci/saa7134/saa7134-i2c.c

    r28606 r32707  
    356356/* ----------------------------------------------------------- */
    357357
     358/* On Medion 7134 reading EEPROM needs DVB-T demod i2c gate open */
     359static void saa7134_i2c_eeprom_md7134_gate(struct saa7134_dev *dev)
     360{
     361        u8 subaddr = 0x7, dmdregval;
     362        u8 data[2];
     363        int ret;
     364        struct i2c_msg i2cgatemsg_r[] = { {.addr = 0x08, .flags = 0,
     365                                           .buf = &subaddr, .len = 1},
     366                                          {.addr = 0x08,
     367                                           .flags = I2C_M_RD,
     368                                           .buf = &dmdregval, .len = 1}
     369                                        };
     370        struct i2c_msg i2cgatemsg_w[] = { {.addr = 0x08, .flags = 0,
     371                                           .buf = data, .len = 2} };
     372
     373        ret = i2c_transfer(&dev->i2c_adap, i2cgatemsg_r, 2);
     374        if ((ret == 2) && (dmdregval & 0x2)) {
     375                pr_debug("%s: DVB-T demod i2c gate was left closed\n",
     376                         dev->name);
     377
     378                data[0] = subaddr;
     379                data[1] = (dmdregval & ~0x2);
     380                if (i2c_transfer(&dev->i2c_adap, i2cgatemsg_w, 1) != 1)
     381                        pr_err("%s: EEPROM i2c gate open failure\n",
     382                          dev->name);
     383        }
     384}
     385
    358386static int
    359387saa7134_i2c_eeprom(struct saa7134_dev *dev, unsigned char *eedata, int len)
     
    361389        unsigned char buf;
    362390        int i,err;
     391
     392        if (dev->board == SAA7134_BOARD_MD7134)
     393                saa7134_i2c_eeprom_md7134_gate(dev);
    363394
    364395        dev->i2c_client.addr = 0xa0 >> 1;
  • src/linux/universal/linux-4.4/drivers/net/ethernet/broadcom/bgmac.c

    r32569 r32707  
    15841584        }
    15851585
     1586        /* This (reset &) enable is not preset in specs or reference driver but
     1587         * Broadcom does it in arch PCI code when enabling fake PCI device.
     1588         */
     1589        bcma_core_enable(core, 0);
     1590
    15861591        /* Allocation and references */
    15871592        net_dev = alloc_etherdev(sizeof(*bgmac));
  • src/linux/universal/linux-4.4/drivers/net/wireless/ath/ath10k/pci.c

    r28606 r32707  
    30513051        }
    30523052
    3053         if (QCA_REV_6174(ar))
     3053        if (QCA_REV_6174(ar) || QCA_REV_9377(ar))
    30543054                ath10k_pci_override_ce_config(ar);
    30553055
  • src/linux/universal/linux-4.4/drivers/net/wireless/mac80211_hwsim.c

    r32101 r32707  
    25402540        tasklet_hrtimer_init(&data->beacon_timer,
    25412541                             mac80211_hwsim_beacon,
    2542                              CLOCK_MONOTONIC_RAW, HRTIMER_MODE_ABS);
     2542                             CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
    25432543
    25442544        spin_lock_bh(&hwsim_radio_lock);
  • src/linux/universal/linux-4.4/drivers/pinctrl/freescale/pinctrl-mxs.c

    r28606 r32707  
    196196}
    197197
     198static void mxs_pinctrl_rmwl(u32 value, u32 mask, u8 shift, void __iomem *reg)
     199{
     200        u32 tmp;
     201
     202        tmp = readl(reg);
     203        tmp &= ~(mask << shift);
     204        tmp |= value << shift;
     205        writel(tmp, reg);
     206}
     207
    198208static int mxs_pinctrl_set_mux(struct pinctrl_dev *pctldev, unsigned selector,
    199209                               unsigned group)
     
    213223                shift = pin % 16 * 2;
    214224
    215                 writel(0x3 << shift, reg + CLR);
    216                 writel(g->muxsel[i] << shift, reg + SET);
     225                mxs_pinctrl_rmwl(g->muxsel[i], 0x3, shift, reg);
    217226        }
    218227
     
    281290                        if (config & MA_PRESENT) {
    282291                                shift = pin % 8 * 4;
    283                                 writel(0x3 << shift, reg + CLR);
    284                                 writel(ma << shift, reg + SET);
     292                                mxs_pinctrl_rmwl(ma, 0x3, shift, reg);
    285293                        }
    286294
  • src/linux/universal/linux-4.4/drivers/pinctrl/meson/pinctrl-meson8b.c

    r28606 r32707  
    733733        "nand_io", "nand_io_ce0", "nand_io_ce1",
    734734        "nand_io_rb0", "nand_ale", "nand_cle",
    735         "nand_wen_clk", "nand_ren_clk", "nand_dqs0",
    736         "nand_dqs1"
     735        "nand_wen_clk", "nand_ren_clk", "nand_dqs_0",
     736        "nand_dqs_1"
    737737};
    738738
  • src/linux/universal/linux-4.4/drivers/pinctrl/sh-pfc/core.c

    r29492 r32707  
    544544                if (ret < 0)
    545545                        return ret;
     546
     547                /* .init() may have overridden pfc->info */
     548                info = pfc->info;
    546549        }
    547550
  • src/linux/universal/linux-4.4/drivers/pinctrl/sh-pfc/pfc-r8a7791.c

    r28606 r32707  
    11031103        PINMUX_IPSR_DATA(IP6_7_6, AUDIO_CLKOUT),
    11041104        PINMUX_IPSR_MSEL(IP6_7_6, MSIOF1_SS1_B, SEL_SOF1_1),
    1105         PINMUX_IPSR_MSEL(IP6_5_3, TX2, SEL_SCIF2_0),
     1105        PINMUX_IPSR_MSEL(IP6_7_6, TX2, SEL_SCIF2_0),
    11061106        PINMUX_IPSR_MSEL(IP6_7_6, SCIFA2_TXD, SEL_SCIFA2_0),
    11071107        PINMUX_IPSR_DATA(IP6_9_8, IRQ0),
  • src/linux/universal/linux-4.4/drivers/pinctrl/sunxi/pinctrl-sun8i-a83t.c

    r28606 r32707  
    395395                  SUNXI_FUNCTION(0x0, "gpio_in"),
    396396                  SUNXI_FUNCTION(0x1, "gpio_out"),
    397                   SUNXI_FUNCTION(0x3, "owa")),          /* DOUT */
     397                  SUNXI_FUNCTION(0x3, "spdif")),        /* DOUT */
    398398        SUNXI_PIN(SUNXI_PINCTRL_PIN(E, 19),
    399399                  SUNXI_FUNCTION(0x0, "gpio_in"),
  • src/linux/universal/linux-4.4/drivers/staging/comedi/comedi_fops.c

    r28606 r32707  
    29122912                if (IS_ERR(dev)) {
    29132913                        comedi_cleanup_board_minors();
     2914                        class_destroy(comedi_class);
    29142915                        cdev_del(&comedi_cdev);
    29152916                        unregister_chrdev_region(MKDEV(COMEDI_MAJOR, 0),
  • src/linux/universal/linux-4.4/drivers/staging/vt6656/main_usb.c

    r28606 r32707  
    530530        }
    531531
     532        if (vnt_key_init_table(priv))
     533                goto free_all;
     534
    532535        priv->int_interval = 1;  /* bInterval is set to 1 */
    533536
  • src/linux/universal/linux-4.4/drivers/usb/core/quirks.c

    r31794 r32707  
    224224        { USB_DEVICE(0x1edb, 0xbd4f), .driver_info = USB_QUIRK_NO_LPM },
    225225
     226        /* Hauppauge HVR-950q */
     227        { USB_DEVICE(0x2040, 0x7200), .driver_info =
     228                        USB_QUIRK_CONFIG_INTF_STRINGS },
     229
    226230        /* INTEL VALUE SSD */
    227231        { USB_DEVICE(0x8086, 0xf1a5), .driver_info = USB_QUIRK_RESET_RESUME },
  • src/linux/universal/linux-4.4/drivers/usb/dwc3/dwc3-st.c

    r28606 r32707  
    225225        dwc3_data->syscfg_reg_off = res->start;
    226226
    227         dev_vdbg(&pdev->dev, "glue-logic addr 0x%p, syscfg-reg offset 0x%x\n",
     227        dev_vdbg(&pdev->dev, "glue-logic addr 0x%pK, syscfg-reg offset 0x%x\n",
    228228                 dwc3_data->glue_base, dwc3_data->syscfg_reg_off);
    229229
  • src/linux/universal/linux-4.4/drivers/usb/dwc3/gadget.c

    r31884 r32707  
    12211221        }
    12221222
    1223         if (WARN(req->dep != dep, "request %p belongs to '%s'\n",
     1223        if (WARN(req->dep != dep, "request %pK belongs to '%s'\n",
    12241224                                request, req->dep->name)) {
    12251225                ret = -EINVAL;
     
    12661266                        goto out1;
    12671267                }
    1268                 dev_err(dwc->dev, "request %p was not queued to %s\n",
     1268                dev_err(dwc->dev, "request %pK was not queued to %s\n",
    12691269                                request, ep->name);
    12701270                ret = -EINVAL;
     
    18751875                 * fixes the root cause instead of looking away :)
    18761876                 */
    1877                 dev_err(dwc->dev, "%s's TRB (%p) still owned by HW\n",
     1877                dev_err(dwc->dev, "%s's TRB (%pK) still owned by HW\n",
    18781878                                dep->name, trb);
    18791879        count = trb->size & DWC3_TRB_SIZE_MASK;
  • src/linux/universal/linux-4.4/drivers/usb/serial/cp210x.c

    r31506 r32707  
    135135        { USB_DEVICE(0x10C4, 0x8998) }, /* KCF Technologies PRN */
    136136        { USB_DEVICE(0x10C4, 0x8A2A) }, /* HubZ dual ZigBee and Z-Wave dongle */
     137        { USB_DEVICE(0x10C4, 0x8A5E) }, /* CEL EM3588 ZigBee USB Stick Long Range */
    137138        { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
    138139        { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
  • src/linux/universal/linux-4.4/drivers/usb/serial/option.c

    r32142 r32707  
    18871887        },
    18881888        { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, SPEEDUP_PRODUCT_SU9800, 0xff) },
     1889        { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9801, 0xff),
     1890          .driver_info = (kernel_ulong_t)&net_intf3_blacklist },
     1891        { USB_DEVICE_INTERFACE_CLASS(LONGCHEER_VENDOR_ID, 0x9803, 0xff),
     1892          .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
    18891893        { USB_DEVICE(LONGCHEER_VENDOR_ID, ZOOM_PRODUCT_4597) },
    18901894        { USB_DEVICE(LONGCHEER_VENDOR_ID, IBALL_3_5G_CONNECT) },
  • src/linux/universal/linux-4.4/drivers/usb/serial/qcserial.c

    r32142 r32707  
    159159        {DEVICE_SWI(0x1199, 0x9060)},   /* Sierra Wireless Modem */
    160160        {DEVICE_SWI(0x1199, 0x9061)},   /* Sierra Wireless Modem */
     161        {DEVICE_SWI(0x1199, 0x9063)},   /* Sierra Wireless EM7305 */
    161162        {DEVICE_SWI(0x1199, 0x9070)},   /* Sierra Wireless MC74xx */
    162163        {DEVICE_SWI(0x1199, 0x9071)},   /* Sierra Wireless MC74xx */
  • src/linux/universal/linux-4.4/drivers/usb/usbip/stub_main.c

    r28606 r32707  
    263263
    264264                kfree(urb->transfer_buffer);
     265                urb->transfer_buffer = NULL;
     266
    265267                kfree(urb->setup_packet);
     268                urb->setup_packet = NULL;
     269
    266270                usb_free_urb(urb);
    267271        }
  • src/linux/universal/linux-4.4/drivers/usb/usbip/stub_tx.c

    r30988 r32707  
    2929
    3030        kfree(urb->setup_packet);
     31        urb->setup_packet = NULL;
     32
    3133        kfree(urb->transfer_buffer);
     34        urb->transfer_buffer = NULL;
     35
    3236        list_del(&priv->list);
    3337        kmem_cache_free(stub_priv_cache, priv);
  • src/linux/universal/linux-4.4/fs/ext4/sysfs.c

    r30802 r32707  
    101101
    102102        ret = kstrtoull(skip_spaces(buf), 0, &val);
    103         if (!ret || val >= clusters)
     103        if (ret || val >= clusters)
    104104                return -EINVAL;
    105105
  • src/linux/universal/linux-4.4/fs/fcntl.c

    r28606 r32707  
    745745         * is defined as O_NONBLOCK on some platforms and not on others.
    746746         */
    747         BUILD_BUG_ON(21 - 1 /* for O_RDONLY being 0 */ != HWEIGHT32(
    748                 O_RDONLY        | O_WRONLY      | O_RDWR        |
    749                 O_CREAT         | O_EXCL        | O_NOCTTY      |
    750                 O_TRUNC         | O_APPEND      | /* O_NONBLOCK | */
    751                 __O_SYNC        | O_DSYNC       | FASYNC        |
    752                 O_DIRECT        | O_LARGEFILE   | O_DIRECTORY   |
    753                 O_NOFOLLOW      | O_NOATIME     | O_CLOEXEC     |
    754                 __FMODE_EXEC    | O_PATH        | __O_TMPFILE   |
    755                 __FMODE_NONOTIFY
    756                 ));
     747        BUILD_BUG_ON(21 - 1 /* for O_RDONLY being 0 */ !=
     748                HWEIGHT32(
     749                        (VALID_OPEN_FLAGS & ~(O_NONBLOCK | O_NDELAY)) |
     750                        __FMODE_EXEC | __FMODE_NONOTIFY));
    757751
    758752        fasync_cache = kmem_cache_create("fasync_cache",
  • src/linux/universal/linux-4.4/fs/gfs2/glock.c

    r31632 r32707  
    8181static struct rhashtable gl_hash_table;
    8282
    83 void gfs2_glock_free(struct gfs2_glock *gl)
    84 {
    85         struct gfs2_sbd *sdp = gl->gl_name.ln_sbd;
     83static void gfs2_glock_dealloc(struct rcu_head *rcu)
     84{
     85        struct gfs2_glock *gl = container_of(rcu, struct gfs2_glock, gl_rcu);
    8686
    8787        if (gl->gl_ops->go_flags & GLOF_ASPACE) {
     
    9191                kmem_cache_free(gfs2_glock_cachep, gl);
    9292        }
     93}
     94
     95void gfs2_glock_free(struct gfs2_glock *gl)
     96{
     97        struct gfs2_sbd *sdp = gl->gl_name.ln_sbd;
     98
     99        call_rcu(&gl->gl_rcu, gfs2_glock_dealloc);
    93100        if (atomic_dec_and_test(&sdp->sd_glock_disposal))
    94101                wake_up(&sdp->sd_glock_wait);
  • src/linux/universal/linux-4.4/fs/gfs2/incore.h

    r31778 r32707  
    368368                } gl_vm;
    369369        };
     370        struct rcu_head gl_rcu;
    370371        struct rhash_head gl_node;
    371372};
  • src/linux/universal/linux-4.4/fs/open.c

    r29744 r32707  
    888888        int acc_mode;
    889889
     890        /*
     891         * Clear out all open flags we don't know about so that we don't report
     892         * them in fcntl(F_GETFD) or similar interfaces.
     893         */
     894        flags &= VALID_OPEN_FLAGS;
     895
    890896        if (flags & (O_CREAT | __O_TMPFILE))
    891897                op->mode = (mode & S_IALLUGO) | S_IFREG;
  • src/linux/universal/linux-4.4/include/linux/fcntl.h

    r28606 r32707  
    44#include <uapi/linux/fcntl.h>
    55
     6/* list of all valid flags for the open/openat flags argument: */
     7#define VALID_OPEN_FLAGS \
     8        (O_RDONLY | O_WRONLY | O_RDWR | O_CREAT | O_EXCL | O_NOCTTY | O_TRUNC | \
     9         O_APPEND | O_NDELAY | O_NONBLOCK | O_NDELAY | __O_SYNC | O_DSYNC | \
     10         FASYNC | O_DIRECT | O_LARGEFILE | O_DIRECTORY | O_NOFOLLOW | \
     11         O_NOATIME | O_CLOEXEC | O_PATH | __O_TMPFILE)
    612
    713#ifndef force_o_largefile
  • src/linux/universal/linux-4.4/include/linux/usb/hcd.h

    r31778 r32707  
    569569
    570570#define EndpointRequest \
    571         ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
     571        ((USB_DIR_IN|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT)<<8)
    572572#define EndpointOutRequest \
    573         ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_INTERFACE)<<8)
     573        ((USB_DIR_OUT|USB_TYPE_STANDARD|USB_RECIP_ENDPOINT)<<8)
    574574
    575575/* class requests from the USB 2.0 hub spec, table 11-15 */
  • src/linux/universal/linux-4.4/ipc/mqueue.c

    r28606 r32707  
    12521252                        timeo = MAX_SCHEDULE_TIMEOUT;
    12531253                        ret = netlink_attachskb(sock, nc, &timeo, NULL);
    1254                         if (ret == 1)
     1254                        if (ret == 1) {
     1255                                sock = NULL;
    12551256                                goto retry;
     1257                        }
    12561258                        if (ret) {
    12571259                                sock = NULL;
  • src/linux/universal/linux-4.4/kernel/sysctl.c

    r32569 r32707  
    20682068                if (*negp)
    20692069                        return -EINVAL;
     2070                if (*lvalp > UINT_MAX)
     2071                        return -EINVAL;
    20702072                *valp = *lvalp;
    20712073        } else {
    20722074                unsigned int val = *valp;
     2075                *negp = false;
    20732076                *lvalp = (unsigned long)val;
    20742077        }
  • src/linux/universal/linux-4.4/kernel/trace/trace_kprobe.c

    r32142 r32707  
    660660                return -EINVAL;
    661661        }
    662         if (isdigit(argv[1][0])) {
    663                 if (is_return) {
    664                         pr_info("Return probe point must be a symbol.\n");
    665                         return -EINVAL;
    666                 }
    667                 /* an address specified */
    668                 ret = kstrtoul(&argv[1][0], 0, (unsigned long *)&addr);
    669                 if (ret) {
    670                         pr_info("Failed to parse address.\n");
    671                         return ret;
    672                 }
    673         } else {
     662
     663        /* try to parse an address. if that fails, try to read the
     664         * input as a symbol. */
     665        if (kstrtoul(argv[1], 0, (unsigned long *)&addr)) {
    674666                /* a symbol specified */
    675667                symbol = argv[1];
     
    677669                ret = traceprobe_split_symbol_offset(symbol, &offset);
    678670                if (ret) {
    679                         pr_info("Failed to parse symbol.\n");
     671                        pr_info("Failed to parse either an address or a symbol.\n");
    680672                        return ret;
    681673                }
     
    684676                        return -EINVAL;
    685677                }
     678        } else if (is_return) {
     679                pr_info("Return probe point must be a symbol.\n");
     680                return -EINVAL;
    686681        }
    687682        argc -= 2; argv += 2;
  • src/linux/universal/linux-4.4/mm/vmscan.c

    r31102 r32707  
    25302530                        continue;
    25312531
    2532                 classzone_idx = requested_highidx;
     2532                classzone_idx = gfp_zone(sc->gfp_mask);
    25332533                while (!populated_zone(zone->zone_pgdat->node_zones +
    25342534                                                        classzone_idx))
  • src/linux/universal/linux-4.4/net/ipv4/tcp_input.c

    r32235 r32707  
    21662166        struct tcp_sock *tp = tcp_sk(sk);
    21672167        struct sk_buff *skb;
    2168         int cnt, oldcnt;
    2169         int err;
     2168        int cnt, oldcnt, lost;
    21702169        unsigned int mss;
    21712170        /* Use SACK to deduce losses of new sequences sent during recovery */
     
    22072206
    22082207                        mss = tcp_skb_mss(skb);
    2209                         err = tcp_fragment(sk, skb, (packets - oldcnt) * mss,
    2210                                            mss, GFP_ATOMIC);
    2211                         if (err < 0)
     2208                        /* If needed, chop off the prefix to mark as lost. */
     2209                        lost = (packets - oldcnt) * mss;
     2210                        if (lost < skb->len &&
     2211                            tcp_fragment(sk, skb, lost, mss, GFP_ATOMIC) < 0)
    22122212                                break;
    22132213                        cnt = packets;
  • src/linux/universal/linux-4.4/security/keys/encrypted-keys/encrypted.c

    r28606 r32707  
    429429                                      const u8 **master_key, size_t *master_keylen)
    430430{
    431         struct key *mkey = NULL;
     431        struct key *mkey = ERR_PTR(-EINVAL);
    432432
    433433        if (!strncmp(epayload->master_desc, KEY_TRUSTED_PREFIX,
  • src/linux/universal/linux-4.4/tools/include/linux/compiler.h

    r28606 r32707  
    116116        ({ union { typeof(x) __val; char __c[1]; } __u = { .__val = (val) }; __write_once_size(&(x), __u.__c, sizeof(x)); __u.__val; })
    117117
     118
     119#ifndef __fallthrough
     120# if defined(__GNUC__) && __GNUC__ >= 7
     121#  define __fallthrough __attribute__ ((fallthrough))
     122# else
     123#  define __fallthrough
     124# endif
     125#endif
     126
    118127#endif /* _TOOLS_LINUX_COMPILER_H */
  • src/linux/universal/linux-4.4/tools/perf/arch/x86/tests/intel-cqm.c

    r28606 r32707  
    1818                return pid;
    1919
    20         while(1);
     20        while(1)
    2121                sleep(5);
    2222        return 0;
  • src/linux/universal/linux-4.4/tools/perf/arch/x86/util/dwarf-regs.c

    r28606 r32707  
    6464#endif
    6565
     66/* TODO: switching by dwarf address size */
     67#ifndef __x86_64__
    6668static const struct pt_regs_offset x86_32_regoffset_table[] = {
    6769        REG_OFFSET_NAME_32("%ax",       eax),
     
    7678};
    7779
     80#define regoffset_table x86_32_regoffset_table
     81#else
    7882static const struct pt_regs_offset x86_64_regoffset_table[] = {
    7983        REG_OFFSET_NAME_64("%ax",       rax),
     
    96100};
    97101
    98 /* TODO: switching by dwarf address size */
    99 #ifdef __x86_64__
    100102#define regoffset_table x86_64_regoffset_table
    101 #else
    102 #define regoffset_table x86_32_regoffset_table
    103103#endif
    104104
  • src/linux/universal/linux-4.4/tools/perf/bench/numa.c

    r28606 r32707  
    15711571
    15721572        if (g->p.show_details >= 2) {
    1573                 char tname[32];
     1573                char tname[14 + 2 * 10 + 1];
    15741574                struct thread_data *td;
    15751575                for (p = 0; p < g->p.nr_proc; p++) {
    15761576                        for (t = 0; t < g->p.nr_threads; t++) {
    1577                                 memset(tname, 0, 32);
     1577                                memset(tname, 0, sizeof(tname));
    15781578                                td = g->threads + p*g->p.nr_threads + t;
    1579                                 snprintf(tname, 32, "process%d:thread%d", p, t);
     1579                                snprintf(tname, sizeof(tname), "process%d:thread%d", p, t);
    15801580                                print_res(tname, td->speed_gbs,
    15811581                                        "GB/sec",       "thread-speed", "GB/sec/thread speed");
  • src/linux/universal/linux-4.4/tools/perf/builtin-script.c

    r28606 r32707  
    12531253}
    12541254
    1255 #define for_each_lang(scripts_path, scripts_dir, lang_dirent, lang_next)\
    1256         while (!readdir_r(scripts_dir, &lang_dirent, &lang_next) &&     \
    1257                lang_next)                                               \
    1258                 if ((lang_dirent.d_type == DT_DIR ||                    \
    1259                      (lang_dirent.d_type == DT_UNKNOWN &&               \
    1260                       is_directory(scripts_path, &lang_dirent))) &&     \
    1261                     (strcmp(lang_dirent.d_name, ".")) &&                \
    1262                     (strcmp(lang_dirent.d_name, "..")))
    1263 
    1264 #define for_each_script(lang_path, lang_dir, script_dirent, script_next)\
    1265         while (!readdir_r(lang_dir, &script_dirent, &script_next) &&    \
    1266                script_next)                                             \
    1267                 if (script_dirent.d_type != DT_DIR &&                   \
    1268                     (script_dirent.d_type != DT_UNKNOWN ||              \
    1269                      !is_directory(lang_path, &script_dirent)))
     1255#define for_each_lang(scripts_path, scripts_dir, lang_dirent)           \
     1256        while ((lang_dirent = readdir(scripts_dir)) != NULL)            \
     1257                if ((lang_dirent->d_type == DT_DIR ||                   \
     1258                     (lang_dirent->d_type == DT_UNKNOWN &&              \
     1259                      is_directory(scripts_path, lang_dirent))) &&      \
     1260                    (strcmp(lang_dirent->d_name, ".")) &&               \
     1261                    (strcmp(lang_dirent->d_name, "..")))
     1262
     1263#define for_each_script(lang_path, lang_dir, script_dirent)             \
     1264        while ((script_dirent = readdir(lang_dir)) != NULL)             \
     1265                if (script_dirent->d_type != DT_DIR &&                  \
     1266                    (script_dirent->d_type != DT_UNKNOWN ||             \
     1267                     !is_directory(lang_path, script_dirent)))
    12701268
    12711269
     
    14131411                                  int unset __maybe_unused)
    14141412{
    1415         struct dirent *script_next, *lang_next, script_dirent, lang_dirent;
     1413        struct dirent *script_dirent, *lang_dirent;
    14161414        char scripts_path[MAXPATHLEN];
    14171415        DIR *scripts_dir, *lang_dir;
     
    14281426                return -1;
    14291427
    1430         for_each_lang(scripts_path, scripts_dir, lang_dirent, lang_next) {
     1428        for_each_lang(scripts_path, scripts_dir, lang_dirent) {
    14311429                snprintf(lang_path, MAXPATHLEN, "%s/%s/bin", scripts_path,
    1432                          lang_dirent.d_name);
     1430                         lang_dirent->d_name);
    14331431                lang_dir = opendir(lang_path);
    14341432                if (!lang_dir)
    14351433                        continue;
    14361434
    1437                 for_each_script(lang_path, lang_dir, script_dirent, script_next) {
    1438                         script_root = get_script_root(&script_dirent, REPORT_SUFFIX);
     1435                for_each_script(lang_path, lang_dir, script_dirent) {
     1436                        script_root = get_script_root(script_dirent, REPORT_SUFFIX);
    14391437                        if (script_root) {
    14401438                                desc = script_desc__findnew(script_root);
    14411439                                snprintf(script_path, MAXPATHLEN, "%s/%s",
    1442                                          lang_path, script_dirent.d_name);
     1440                                         lang_path, script_dirent->d_name);
    14431441                                read_script_info(desc, script_path);
    14441442                                free(script_root);
     
    15281526int find_scripts(char **scripts_array, char **scripts_path_array)
    15291527{
    1530         struct dirent *script_next, *lang_next, script_dirent, lang_dirent;
     1528        struct dirent *script_dirent, *lang_dirent;
    15311529        char scripts_path[MAXPATHLEN], lang_path[MAXPATHLEN];
    15321530        DIR *scripts_dir, *lang_dir;
     
    15511549        }
    15521550
    1553         for_each_lang(scripts_path, scripts_dir, lang_dirent, lang_next) {
     1551        for_each_lang(scripts_path, scripts_dir, lang_dirent) {
    15541552                snprintf(lang_path, MAXPATHLEN, "%s/%s", scripts_path,
    1555                          lang_dirent.d_name);
     1553                         lang_dirent->d_name);
    15561554#ifdef NO_LIBPERL
    15571555                if (strstr(lang_path, "perl"))
     
    15671565                        continue;
    15681566
    1569                 for_each_script(lang_path, lang_dir, script_dirent, script_next) {
     1567                for_each_script(lang_path, lang_dir, script_dirent) {
    15701568                        /* Skip those real time scripts: xxxtop.p[yl] */
    1571                         if (strstr(script_dirent.d_name, "top."))
     1569                        if (strstr(script_dirent->d_name, "top."))
    15721570                                continue;
    15731571                        sprintf(scripts_path_array[i], "%s/%s", lang_path,
    1574                                 script_dirent.d_name);
    1575                         temp = strchr(script_dirent.d_name, '.');
     1572                                script_dirent->d_name);
     1573                        temp = strchr(script_dirent->d_name, '.');
    15761574                        snprintf(scripts_array[i],
    1577                                 (temp - script_dirent.d_name) + 1,
    1578                                 "%s", script_dirent.d_name);
     1575                                (temp - script_dirent->d_name) + 1,
     1576                                "%s", script_dirent->d_name);
    15791577
    15801578                        if (check_ev_match(lang_path,
     
    15941592static char *get_script_path(const char *script_root, const char *suffix)
    15951593{
    1596         struct dirent *script_next, *lang_next, script_dirent, lang_dirent;
     1594        struct dirent *script_dirent, *lang_dirent;
    15971595        char scripts_path[MAXPATHLEN];
    15981596        char script_path[MAXPATHLEN];
     
    16071605                return NULL;
    16081606
    1609         for_each_lang(scripts_path, scripts_dir, lang_dirent, lang_next) {
     1607        for_each_lang(scripts_path, scripts_dir, lang_dirent) {
    16101608                snprintf(lang_path, MAXPATHLEN, "%s/%s/bin", scripts_path,
    1611                          lang_dirent.d_name);
     1609                         lang_dirent->d_name);
    16121610                lang_dir = opendir(lang_path);
    16131611                if (!lang_dir)
    16141612                        continue;
    16151613
    1616                 for_each_script(lang_path, lang_dir, script_dirent, script_next) {
    1617                         __script_root = get_script_root(&script_dirent, suffix);
     1614                for_each_script(lang_path, lang_dir, script_dirent) {
     1615                        __script_root = get_script_root(script_dirent, suffix);
    16181616                        if (__script_root && !strcmp(script_root, __script_root)) {
    16191617                                free(__script_root);
     
    16211619                                closedir(scripts_dir);
    16221620                                snprintf(script_path, MAXPATHLEN, "%s/%s",
    1623                                          lang_path, script_dirent.d_name);
     1621                                         lang_path, script_dirent->d_name);
    16241622                                return strdup(script_path);
    16251623                        }
  • src/linux/universal/linux-4.4/tools/perf/builtin-top.c

    r28606 r32707  
    637637                        if (errno == EINTR)
    638638                                continue;
    639                         /* Fall trhu */
     639                        __fallthrough;
    640640                default:
    641641                        c = getc(stdin);
  • src/linux/universal/linux-4.4/tools/perf/builtin-trace.c

    r28606 r32707  
    16181618                              "LOST %" PRIu64 " events!\n", event->lost.lost);
    16191619                ret = machine__process_lost_event(machine, event, sample);
     1620                break;
    16201621        default:
    16211622                ret = machine__process_event(machine, event, sample);
  • src/linux/universal/linux-4.4/tools/perf/tests/parse-events.c

    r28606 r32707  
    17281728
    17291729        while (!ret && (ent = readdir(dir))) {
    1730 #define MAX_NAME 100
    17311730                struct evlist_test e;
    1732                 char name[MAX_NAME];
     1731                char name[2 * NAME_MAX + 1 + 12 + 3];
    17331732
    17341733                if (!strcmp(ent->d_name, ".") ||
     
    17361735                        continue;
    17371736
    1738                 snprintf(name, MAX_NAME, "cpu/event=%s/u", ent->d_name);
     1737                snprintf(name, sizeof(name), "cpu/event=%s/u", ent->d_name);
    17391738
    17401739                e.name  = name;
     
    17441743                if (ret)
    17451744                        break;
    1746                 snprintf(name, MAX_NAME, "%s:u,cpu/event=%s/u", ent->d_name, ent->d_name);
     1745                snprintf(name, sizeof(name), "%s:u,cpu/event=%s/u", ent->d_name, ent->d_name);
    17471746                e.name  = name;
    17481747                e.check = test__checkevent_pmu_events_mix;
    17491748                ret = test_event(&e);
    1750 #undef MAX_NAME
    17511749        }
    17521750
  • src/linux/universal/linux-4.4/tools/perf/ui/browsers/annotate.c

    r28606 r32707  
    756756                        break;
    757757                case K_UNTAB:
    758                         if (nd != NULL)
     758                        if (nd != NULL) {
    759759                                nd = rb_next(nd);
    760760                                if (nd == NULL)
    761761                                        nd = rb_first(&browser->entries);
    762                         else
     762                        } else
    763763                                nd = browser->curr_hot;
    764764                        break;
  • src/linux/universal/linux-4.4/tools/perf/util/event.c

    r29599 r32707  
    417417        char filename[PATH_MAX];
    418418        DIR *tasks;
    419         struct dirent dirent, *next;
     419        struct dirent *dirent;
    420420        pid_t tgid, ppid;
    421421        int rc = 0;
     
    446446        }
    447447
    448         while (!readdir_r(tasks, &dirent, &next) && next) {
     448        while ((dirent = readdir(tasks)) != NULL) {
    449449                char *end;
    450450                pid_t _pid;
    451451
    452                 _pid = strtol(dirent.d_name, &end, 10);
     452                _pid = strtol(dirent->d_name, &end, 10);
    453453                if (*end)
    454454                        continue;
     
    559559        DIR *proc;
    560560        char proc_path[PATH_MAX];
    561         struct dirent dirent, *next;
     561        struct dirent *dirent;
    562562        union perf_event *comm_event, *mmap_event, *fork_event;
    563563        int err = -1;
     
    584584                goto out_free_fork;
    585585
    586         while (!readdir_r(proc, &dirent, &next) && next) {
     586        while ((dirent = readdir(proc)) != NULL) {
    587587                char *end;
    588                 pid_t pid = strtol(dirent.d_name, &end, 10);
     588                pid_t pid = strtol(dirent->d_name, &end, 10);
    589589
    590590                if (*end) /* only interested in proper numerical dirents */
  • src/linux/universal/linux-4.4/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c

    r30802 r32707  
    2323#include <stdint.h>
    2424#include <inttypes.h>
     25#include <linux/compiler.h>
    2526
    2627#include "../cache.h"
     
    17091710                case INTEL_PT_TIP_PGD:
    17101711                        decoder->continuous_period = false;
     1712                        __fallthrough;
    17111713                case INTEL_PT_TIP_PGE:
    17121714                case INTEL_PT_TIP:
     
    17631765                        decoder->continuous_period = false;
    17641766                        intel_pt_clear_tx_flags(decoder);
     1767                        __fallthrough;
     1768
    17651769                case INTEL_PT_TNT:
    17661770                        decoder->have_tma = false;
     
    18031807                case INTEL_PT_TIP_PGD:
    18041808                        decoder->continuous_period = false;
     1809                        __fallthrough;
    18051810                case INTEL_PT_TIP_PGE:
    18061811                case INTEL_PT_TIP:
  • src/linux/universal/linux-4.4/tools/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.c

    r28606 r32707  
    1818#include <endian.h>
    1919#include <byteswap.h>
     20#include <linux/compiler.h>
    2021
    2122#include "intel-pt-pkt-decoder.h"
     
    489490                if (!(packet->count))
    490491                        return snprintf(buf, buf_len, "%s no ip", name);
     492                __fallthrough;
    491493        case INTEL_PT_CYC:
    492494        case INTEL_PT_VMCS:
  • src/linux/universal/linux-4.4/tools/perf/util/parse-events.c

    r29439 r32707  
    139139#define PERF_EVENT_ID(config)           __PERF_EVENT_FIELD(config, EVENT)
    140140
    141 #define for_each_subsystem(sys_dir, sys_dirent, sys_next)              \
    142         while (!readdir_r(sys_dir, &sys_dirent, &sys_next) && sys_next)        \
    143         if (sys_dirent.d_type == DT_DIR &&                                     \
    144            (strcmp(sys_dirent.d_name, ".")) &&                                 \
    145            (strcmp(sys_dirent.d_name, "..")))
     141#define for_each_subsystem(sys_dir, sys_dirent)                 \
     142        while ((sys_dirent = readdir(sys_dir)) != NULL)         \
     143                if (sys_dirent->d_type == DT_DIR &&             \
     144                    (strcmp(sys_dirent->d_name, ".")) &&        \
     145                    (strcmp(sys_dirent->d_name, "..")))
    146146
    147147static int tp_event_has_id(struct dirent *sys_dir, struct dirent *evt_dir)
     
    160160}
    161161
    162 #define for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next)              \
    163         while (!readdir_r(evt_dir, &evt_dirent, &evt_next) && evt_next)        \
    164         if (evt_dirent.d_type == DT_DIR &&                                     \
    165            (strcmp(evt_dirent.d_name, ".")) &&                                 \
    166            (strcmp(evt_dirent.d_name, "..")) &&                                \
    167            (!tp_event_has_id(&sys_dirent, &evt_dirent)))
     162#define for_each_event(sys_dirent, evt_dir, evt_dirent)         \
     163        while ((evt_dirent = readdir(evt_dir)) != NULL)         \
     164                if (evt_dirent->d_type == DT_DIR &&             \
     165                    (strcmp(evt_dirent->d_name, ".")) &&        \
     166                    (strcmp(evt_dirent->d_name, "..")) &&       \
     167                    (!tp_event_has_id(sys_dirent, evt_dirent)))
    168168
    169169#define MAX_EVENT_LENGTH 512
     
    174174        struct tracepoint_path *path = NULL;
    175175        DIR *sys_dir, *evt_dir;
    176         struct dirent *sys_next, *evt_next, sys_dirent, evt_dirent;
     176        struct dirent *sys_dirent, *evt_dirent;
    177177        char id_buf[24];
    178178        int fd;
     
    185185                return NULL;
    186186
    187         for_each_subsystem(sys_dir, sys_dirent, sys_next) {
     187        for_each_subsystem(sys_dir, sys_dirent) {
    188188
    189189                snprintf(dir_path, MAXPATHLEN, "%s/%s", tracing_events_path,
    190                          sys_dirent.d_name);
     190                         sys_dirent->d_name);
    191191                evt_dir = opendir(dir_path);
    192192                if (!evt_dir)
    193193                        continue;
    194194
    195                 for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next) {
     195                for_each_event(sys_dirent, evt_dir, evt_dirent) {
    196196
    197197                        snprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path,
    198                                  evt_dirent.d_name);
     198                                 evt_dirent->d_name);
    199199                        fd = open(evt_path, O_RDONLY);
    200200                        if (fd < 0)
     
    221221                                        return NULL;
    222222                                }
    223                                 strncpy(path->system, sys_dirent.d_name,
     223                                strncpy(path->system, sys_dirent->d_name,
    224224                                        MAX_EVENT_LENGTH);
    225                                 strncpy(path->name, evt_dirent.d_name,
     225                                strncpy(path->name, evt_dirent->d_name,
    226226                                        MAX_EVENT_LENGTH);
    227227                                return path;
     
    16301630{
    16311631        DIR *sys_dir, *evt_dir;
    1632         struct dirent *sys_next, *evt_next, sys_dirent, evt_dirent;
     1632        struct dirent *sys_dirent, *evt_dirent;
    16331633        char evt_path[MAXPATHLEN];
    16341634        char dir_path[MAXPATHLEN];
     
    16481648        }
    16491649
    1650         for_each_subsystem(sys_dir, sys_dirent, sys_next) {
     1650        for_each_subsystem(sys_dir, sys_dirent) {
    16511651                if (subsys_glob != NULL &&
    1652                     !strglobmatch(sys_dirent.d_name, subsys_glob))
     1652                    !strglobmatch(sys_dirent->d_name, subsys_glob))
    16531653                        continue;
    16541654
    16551655                snprintf(dir_path, MAXPATHLEN, "%s/%s", tracing_events_path,
    1656                          sys_dirent.d_name);
     1656                         sys_dirent->d_name);
    16571657                evt_dir = opendir(dir_path);
    16581658                if (!evt_dir)
    16591659                        continue;
    16601660
    1661                 for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next) {
     1661                for_each_event(sys_dirent, evt_dir, evt_dirent) {
    16621662                        if (event_glob != NULL &&
    1663                             !strglobmatch(evt_dirent.d_name, event_glob))
     1663                            !strglobmatch(evt_dirent->d_name, event_glob))
    16641664                                continue;
    16651665
     
    16701670
    16711671                        snprintf(evt_path, MAXPATHLEN, "%s:%s",
    1672                                  sys_dirent.d_name, evt_dirent.d_name);
     1672                                 sys_dirent->d_name, evt_dirent->d_name);
    16731673
    16741674                        evt_list[evt_i] = strdup(evt_path);
     
    17231723{
    17241724        DIR *sys_dir, *evt_dir;
    1725         struct dirent *sys_next, *evt_next, sys_dirent, evt_dirent;
     1725        struct dirent *sys_dirent, *evt_dirent;
    17261726        char evt_path[MAXPATHLEN];
    17271727        char dir_path[MAXPATHLEN];
     
    17311731                return 0;
    17321732
    1733         for_each_subsystem(sys_dir, sys_dirent, sys_next) {
     1733        for_each_subsystem(sys_dir, sys_dirent) {
    17341734
    17351735                snprintf(dir_path, MAXPATHLEN, "%s/%s", tracing_events_path,
    1736                          sys_dirent.d_name);
     1736                         sys_dirent->d_name);
    17371737                evt_dir = opendir(dir_path);
    17381738                if (!evt_dir)
    17391739                        continue;
    17401740
    1741                 for_each_event(sys_dirent, evt_dir, evt_dirent, evt_next) {
     1741                for_each_event(sys_dirent, evt_dir, evt_dirent) {
    17421742                        snprintf(evt_path, MAXPATHLEN, "%s:%s",
    1743                                  sys_dirent.d_name, evt_dirent.d_name);
     1743                                 sys_dirent->d_name, evt_dirent->d_name);
    17441744                        if (!strcmp(evt_path, event_string)) {
    17451745                                closedir(evt_dir);
  • src/linux/universal/linux-4.4/tools/perf/util/pmu.c

    r29439 r32707  
    154154                return -1;
    155155
    156                 sret = read(fd, alias->unit, UNIT_MAX_LEN);
     156        sret = read(fd, alias->unit, UNIT_MAX_LEN);
    157157        if (sret < 0)
    158158                goto error;
  • src/linux/universal/linux-4.4/tools/perf/util/scripting-engines/Build

    r28606 r32707  
    22libperf-$(CONFIG_LIBPYTHON) += trace-event-python.o
    33
    4 CFLAGS_trace-event-perl.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-undef -Wno-switch-default
     4CFLAGS_trace-event-perl.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-nested-externs -Wno-undef -Wno-switch-default
    55
    66CFLAGS_trace-event-python.o += $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow
  • src/linux/universal/linux-4.4/tools/perf/util/strfilter.c

    r28606 r32707  
    270270                if (len < 0)
    271271                        return len;
     272                __fallthrough;
    272273        case '!':
    273274                if (buf) {
  • src/linux/universal/linux-4.4/tools/perf/util/string.c

    r28606 r32707  
    2222                        if (*p)
    2323                                goto out_err;
     24
     25                        __fallthrough;
    2426                case '\0':
    2527                        return length;
  • src/linux/universal/linux-4.4/tools/perf/util/thread.c

    r28606 r32707  
    228228{
    229229        size_t i;
    230         const u8 const cpumodes[] = {
     230        const u8 cpumodes[] = {
    231231                PERF_RECORD_MISC_USER,
    232232                PERF_RECORD_MISC_KERNEL,
  • src/linux/universal/linux-4.4/tools/perf/util/thread_map.c

    r28606 r32707  
    9393        DIR *proc;
    9494        int max_threads = 32, items, i;
    95         char path[256];
    96         struct dirent dirent, *next, **namelist = NULL;
     95        char path[NAME_MAX + 1 + 6];
     96        struct dirent *dirent, **namelist = NULL;
    9797        struct thread_map *threads = thread_map__alloc(max_threads);
    9898
     
    107107        atomic_set(&threads->refcnt, 1);
    108108
    109         while (!readdir_r(proc, &dirent, &next) && next) {
     109        while ((dirent = readdir(proc)) != NULL) {
    110110                char *end;
    111111                bool grow = false;
    112112                struct stat st;
    113                 pid_t pid = strtol(dirent.d_name, &end, 10);
     113                pid_t pid = strtol(dirent->d_name, &end, 10);
    114114
    115115                if (*end) /* only interested in proper numerical dirents */
    116116                        continue;
    117117
    118                 snprintf(path, sizeof(path), "/proc/%s", dirent.d_name);
     118                snprintf(path, sizeof(path), "/proc/%s", dirent->d_name);
    119119
    120120                if (stat(path, &st) != 0)
  • src/linux/universal/linux-4.9/Makefile

    r32679 r32707  
    11VERSION = 4
    22PATCHLEVEL = 9
    3 SUBLEVEL = 37
     3SUBLEVEL = 38
    44EXTRAVERSION =
    55NAME = Roaring Lionus
  • src/linux/universal/linux-4.9/arch/x86/include/asm/pat.h

    r31574 r32707  
    88void pat_disable(const char *reason);
    99extern void pat_init(void);
     10extern void init_cache_modes(void);
    1011
    1112extern int reserve_memtype(u64 start, u64 end,
  • src/linux/universal/linux-4.9/arch/x86/kernel/setup.c

    r31574 r32707  
    10551055
    10561056        /*
     1057         * This call is required when the CPU does not support PAT. If
     1058         * mtrr_bp_init() invoked it already via pat_init() the call has no
     1059         * effect.
     1060         */
     1061        init_cache_modes();
     1062
     1063        /*
    10571064         * Define random base addresses for memory sections after max_pfn is
    10581065         * defined and before each memory section base is used.
  • src/linux/universal/linux-4.9/arch/x86/mm/pat.c

    r31574 r32707  
    3737#define pr_fmt(fmt) "" fmt
    3838
    39 static bool boot_cpu_done;
    40 
    41 static int __read_mostly __pat_enabled = IS_ENABLED(CONFIG_X86_PAT);
    42 static void init_cache_modes(void);
     39static bool __read_mostly boot_cpu_done;
     40static bool __read_mostly pat_disabled = !IS_ENABLED(CONFIG_X86_PAT);
     41static bool __read_mostly pat_initialized;
     42static bool __read_mostly init_cm_done;
    4343
    4444void pat_disable(const char *reason)
    4545{
    46         if (!__pat_enabled)
     46        if (pat_disabled)
    4747                return;
    4848
     
    5252        }
    5353
    54         __pat_enabled = 0;
     54        pat_disabled = true;
    5555        pr_info("x86/PAT: %s\n", reason);
    56 
    57         init_cache_modes();
    5856}
    5957
     
    6765bool pat_enabled(void)
    6866{
    69         return !!__pat_enabled;
     67        return pat_initialized;
    7068}
    7169EXPORT_SYMBOL_GPL(pat_enabled);
     
    205203        }
    206204        pr_info("x86/PAT: Configuration [0-7]: %s\n", pat_msg);
     205
     206        init_cm_done = true;
    207207}
    208208
     
    225225
    226226        wrmsrl(MSR_IA32_CR_PAT, pat);
     227        pat_initialized = true;
    227228
    228229        __init_cache_modes(pat);
     
    242243}
    243244
    244 static void init_cache_modes(void)
     245void init_cache_modes(void)
    245246{
    246247        u64 pat = 0;
    247         static int init_cm_done;
    248248
    249249        if (init_cm_done)
     
    287287
    288288        __init_cache_modes(pat);
    289 
    290         init_cm_done = 1;
    291289}
    292290
     
    306304        struct cpuinfo_x86 *c = &boot_cpu_data;
    307305
    308         if (!pat_enabled()) {
    309                 init_cache_modes();
     306        if (pat_disabled)
    310307                return;
    311         }
    312308
    313309        if ((c->x86_vendor == X86_VENDOR_INTEL) &&
  • src/linux/universal/linux-4.9/crypto/rsa-pkcs1pad.c

    r31574 r32707  
    497497        pos++;
    498498
    499         if (memcmp(out_buf + pos, digest_info->data, digest_info->size))
     499        if (crypto_memneq(out_buf + pos, digest_info->data, digest_info->size))
    500500                goto done;
    501501
  • src/linux/universal/linux-4.9/drivers/base/core.c

    r31574 r32707  
    20962096                pm_runtime_barrier(dev);
    20972097
    2098                 if (dev->bus && dev->bus->shutdown) {
     2098                if (dev->class && dev->class->shutdown) {
     2099                        if (initcall_debug)
     2100                                dev_info(dev, "shutdown\n");
     2101                        dev->class->shutdown(dev);
     2102                } else if (dev->bus && dev->bus->shutdown) {
    20992103                        if (initcall_debug)
    21002104                                dev_info(dev, "shutdown\n");
  • src/linux/universal/linux-4.9/drivers/char/tpm/tpm-chip.c

    r32025 r32707  
    131131}
    132132
     133
     134/**
     135 * tpm_class_shutdown() - prepare the TPM device for loss of power.
     136 * @dev: device to which the chip is associated.
     137 *
     138 * Issues a TPM2_Shutdown command prior to loss of power, as required by the
     139 * TPM 2.0 spec.
     140 * Then, calls bus- and device- specific shutdown code.
     141 *
     142 * XXX: This codepath relies on the fact that sysfs is not enabled for
     143 * TPM2: sysfs uses an implicit lock on chip->ops, so this could race if TPM2
     144 * has sysfs support enabled before TPM sysfs's implicit locking is fixed.
     145 */
     146static int tpm_class_shutdown(struct device *dev)
     147{
     148        struct tpm_chip *chip = container_of(dev, struct tpm_chip, dev);
     149
     150        if (chip->flags & TPM_CHIP_FLAG_TPM2) {
     151                down_write(&chip->ops_sem);
     152                tpm2_shutdown(chip, TPM2_SU_CLEAR);
     153                chip->ops = NULL;
     154                up_write(&chip->ops_sem);
     155        }
     156        /* Allow bus- and device-specific code to run. Note: since chip->ops
     157         * is NULL, more-specific shutdown code will not be able to issue TPM
     158         * commands.
     159         */
     160        if (dev->bus && dev->bus->shutdown)
     161                dev->bus->shutdown(dev);
     162        else if (dev->driver && dev->driver->shutdown)
     163                dev->driver->shutdown(dev);
     164        return 0;
     165}
     166
     167
    133168/**
    134169 * tpm_chip_alloc() - allocate a new struct tpm_chip instance
     
    169204
    170205        chip->dev.class = tpm_class;
     206        chip->dev.class->shutdown = tpm_class_shutdown;
    171207        chip->dev.release = tpm_dev_release;
    172208        chip->dev.parent = pdev;
  • src/linux/universal/linux-4.9/drivers/char/tpm/tpm-sysfs.c

    r32679 r32707  
    286286void tpm_sysfs_add_device(struct tpm_chip *chip)
    287287{
     288        /* XXX: If you wish to remove this restriction, you must first update
     289         * tpm_sysfs to explicitly lock chip->ops.
     290         */
     291        if (chip->flags & TPM_CHIP_FLAG_TPM2)
     292                return;
    288293        /* The sysfs routines rely on an implicit tpm_try_get_ops, device_del
    289294         * is called before ops is null'd and the sysfs core synchronizes this
  • src/linux/universal/linux-4.9/drivers/crypto/caam/caamalg.c

    r31574 r32707  
    26022602        struct caam_ctx *ctx = crypto_ablkcipher_ctx(ablkcipher);
    26032603        struct device *jrdev = ctx->jrdev;
    2604         gfp_t flags = (req->base.flags & (CRYPTO_TFM_REQ_MAY_BACKLOG |
    2605                                           CRYPTO_TFM_REQ_MAY_SLEEP)) ?
     2604        gfp_t flags = (req->base.flags & CRYPTO_TFM_REQ_MAY_SLEEP) ?
    26062605                       GFP_KERNEL : GFP_ATOMIC;
    26072606        int src_nents, dst_nents = 0, sec4_sg_bytes;
  • src/linux/universal/linux-4.9/drivers/md/md.c

    r32142 r32707  
    18621862        sb = page_address(rdev->sb_page);
    18631863        sb->data_size = cpu_to_le64(num_sectors);
    1864         sb->super_offset = rdev->sb_start;
     1864        sb->super_offset = cpu_to_le64(rdev->sb_start);
    18651865        sb->sb_csum = calc_sb_1_csum(sb);
    18661866        md_super_write(rdev->mddev, rdev, rdev->sb_start, rdev->sb_size,
     
    22712271        if ((mddev->dev_sectors != le64_to_cpu(sb->size)) ||
    22722272            (mddev->reshape_position != le64_to_cpu(sb->reshape_position)) ||
    2273             (mddev->layout != le64_to_cpu(sb->layout)) ||
     2273            (mddev->layout != le32_to_cpu(sb->layout)) ||
    22742274            (mddev->raid_disks != le32_to_cpu(sb->raid_disks)) ||
    22752275            (mddev->chunk_sectors != le32_to_cpu(sb->chunksize)))
  • src/linux/universal/linux-4.9/drivers/media/pci/saa7134/saa7134-i2c.c

    r31574 r32707  
    356356/* ----------------------------------------------------------- */
    357357
     358/* On Medion 7134 reading EEPROM needs DVB-T demod i2c gate open */
     359static void saa7134_i2c_eeprom_md7134_gate(struct saa7134_dev *dev)
     360{
     361        u8 subaddr = 0x7, dmdregval;
     362        u8 data[2];
     363        int ret;
     364        struct i2c_msg i2cgatemsg_r[] = { {.addr = 0x08, .flags = 0,
     365                                           .buf = &subaddr, .len = 1},
     366                                          {.addr = 0x08,
     367                                           .flags = I2C_M_RD,
     368                                           .buf = &dmdregval, .len = 1}
     369                                        };
     370        struct i2c_msg i2cgatemsg_w[] = { {.addr = 0x08, .flags = 0,
     371                                           .buf = data, .len = 2} };
     372
     373        ret = i2c_transfer(&dev->i2c_adap, i2cgatemsg_r, 2);
     374        if ((ret == 2) && (dmdregval & 0x2)) {
     375                pr_debug("%s: DVB-T demod i2c gate was left closed\n",
     376                         dev->name);
     377
     378                data[0] = subaddr;
     379                data[1] = (dmdregval & ~0x2);
     380                if (i2c_transfer(&dev->i2c_adap, i2cgatemsg_w, 1) != 1)
     381                        pr_err("%s: EEPROM i2c gate open failure\n",
     382                          dev->name);
     383        }
     384}
     385
    358386static int
    359387saa7134_i2c_eeprom(struct saa7134_dev *dev, unsigned char *eedata, int len)
     
    361389        unsigned char buf;
    362390        int i,err;
     391
     392        if (dev->board == SAA7134_BOARD_MD7134)
     393                saa7134_i2c_eeprom_md7134_gate(dev);
    363394
    364395        dev->i2c_client.addr = 0xa0 >> 1;
  • src/linux/universal/linux-4.9/drivers/staging/comedi/comedi_fops.c

    r31574 r32707  
    29092909                if (IS_ERR(dev)) {
    29102910                        comedi_cleanup_board_minors();
     2911                        class_destroy(comedi_class);
    29112912                        cdev_del(&comedi_cdev);
    29122913                        unregister_chrdev_region(MKDEV(COMEDI_MAJOR, 0),
  • src/linux/universal/linux-4.9/drivers/staging/vt6656/main_usb.c

    r31574 r32707  
    523523        }
    524524
     525        if (vnt_key_init_table(priv))
     526                goto free_all;
     527
    525528        priv->int_interval = 1;  /* bInterval is set to 1 */
    526529
  • src/linux/universal/linux-4.9/fs/ext4/sysfs.c

    r31574 r32707  
    101101
    102102        ret = kstrtoull(skip_spaces(buf), 0, &val);
    103         if (!ret || val >= clusters)
     103        if (ret || val >= clusters)
    104104                return -EINVAL;
    105105
  • src/linux/universal/linux-4.9/include/linux/device.h

    r31574 r32707  
    374374 *              state.
    375375 * @resume:     Used to bring the device from the sleep mode.
     376 * @shutdown:   Called at shut-down time to quiesce the device.
    376377 * @ns_type:    Callbacks so sysfs can detemine namespaces.
    377378 * @namespace:  Namespace of the device belongs to this class.
     
    402403        int (*suspend)(struct device *dev, pm_message_t state);
    403404        int (*resume)(struct device *dev);
     405        int (*shutdown)(struct device *dev);
    404406
    405407        const struct kobj_ns_type_operations *ns_type;
  • src/linux/universal/linux-4.9/ipc/mqueue.c

    r31574 r32707  
    12501250                        timeo = MAX_SCHEDULE_TIMEOUT;
    12511251                        ret = netlink_attachskb(sock, nc, &timeo, NULL);
    1252                         if (ret == 1)
     1252                        if (ret == 1) {
     1253                                sock = NULL;
    12531254                                goto retry;
     1255                        }
    12541256                        if (ret) {
    12551257                                sock = NULL;
  • src/linux/universal/linux-4.9/kernel/locking/rwsem-spinlock.c

    r31732 r32707  
    234234out_nolock:
    235235        list_del(&waiter.list);
    236         if (!list_empty(&sem->wait_list))
    237                 __rwsem_do_wake(sem, 1);
     236        if (!list_empty(&sem->wait_list) && sem->count >= 0)
     237                __rwsem_do_wake(sem, 0);
    238238        raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
    239239
  • src/linux/universal/linux-4.9/tools/include/linux/compiler.h

    r31574 r32707  
    127127        ({ union { typeof(x) __val; char __c[1]; } __u = { .__val = (val) }; __write_once_size(&(x), __u.__c, sizeof(x)); __u.__val; })
    128128
     129
     130#ifndef __fallthrough
     131# if defined(__GNUC__) && __GNUC__ >= 7
     132#  define __fallthrough __attribute__ ((fallthrough))
     133# else
     134#  define __fallthrough
     135# endif
     136#endif
     137
    129138#endif /* _TOOLS_LINUX_COMPILER_H */
  • src/linux/universal/linux-4.9/tools/perf/bench/numa.c

    r31574 r32707  
    15741574
    15751575        if (g->p.show_details >= 2) {
    1576                 char tname[32];
     1576                char tname[14 + 2 * 10 + 1];
    15771577                struct thread_data *td;
    15781578                for (p = 0; p < g->p.nr_proc; p++) {
    15791579                        for (t = 0; t < g->p.nr_threads; t++) {
    1580                                 memset(tname, 0, 32);
     1580                                memset(tname, 0, sizeof(tname));
    15811581                                td = g->threads + p*g->p.nr_threads + t;
    1582                                 snprintf(tname, 32, "process%d:thread%d", p, t);
     1582                                snprintf(tname, sizeof(tname), "process%d:thread%d", p, t);
    15831583                                print_res(tname, td->speed_gbs,
    15841584                                        "GB/sec",       "thread-speed", "GB/sec/thread speed");
  • src/linux/universal/linux-4.9/tools/perf/builtin-top.c

    r31574 r32707  
    644644                        if (errno == EINTR)
    645645                                continue;
    646                         /* Fall trhu */
     646                        __fallthrough;
    647647                default:
    648648                        c = getc(stdin);
  • src/linux/universal/linux-4.9/tools/perf/tests/parse-events.c

    r31574 r32707  
    17801780
    17811781        while (!ret && (ent = readdir(dir))) {
    1782 #define MAX_NAME 100
    17831782                struct evlist_test e;
    1784                 char name[MAX_NAME];
     1783                char name[2 * NAME_MAX + 1 + 12 + 3];
    17851784
    17861785                /* Names containing . are special and cannot be used directly */
     
    17881787                        continue;
    17891788
    1790                 snprintf(name, MAX_NAME, "cpu/event=%s/u", ent->d_name);
     1789                snprintf(name, sizeof(name), "cpu/event=%s/u", ent->d_name);
    17911790
    17921791                e.name  = name;
     
    17961795                if (ret)
    17971796                        break;
    1798                 snprintf(name, MAX_NAME, "%s:u,cpu/event=%s/u", ent->d_name, ent->d_name);
     1797                snprintf(name, sizeof(name), "%s:u,cpu/event=%s/u", ent->d_name, ent->d_name);
    17991798                e.name  = name;
    18001799                e.check = test__checkevent_pmu_events_mix;
    18011800                ret = test_event(&e);
    1802 #undef MAX_NAME
    18031801        }
    18041802
  • src/linux/universal/linux-4.9/tools/perf/util/header.c

    r31574 r32707  
    31853185                ev_scale = (struct event_update_event_scale *) ev->data;
    31863186                evsel->scale = ev_scale->scale;
     3187                break;
    31873188        case PERF_EVENT_UPDATE__CPUS:
    31883189                ev_cpus = (struct event_update_event_cpus *) ev->data;
  • src/linux/universal/linux-4.9/tools/perf/util/intel-pt-decoder/intel-pt-decoder.c

    r31574 r32707  
    2323#include <stdint.h>
    2424#include <inttypes.h>
     25#include <linux/compiler.h>
    2526
    2627#include "../cache.h"
     
    17451746                case INTEL_PT_TIP_PGD:
    17461747                        decoder->continuous_period = false;
     1748                        __fallthrough;
    17471749                case INTEL_PT_TIP_PGE:
    17481750                case INTEL_PT_TIP:
     
    17981800                        decoder->continuous_period = false;
    17991801                        intel_pt_clear_tx_flags(decoder);
     1802                        __fallthrough;
     1803
    18001804                case INTEL_PT_TNT:
    18011805                        decoder->have_tma = false;
     
    18381842                case INTEL_PT_TIP_PGD:
    18391843                        decoder->continuous_period = false;
     1844                        __fallthrough;
    18401845                case INTEL_PT_TIP_PGE:
    18411846                case INTEL_PT_TIP:
  • src/linux/universal/linux-4.9/tools/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.c

    r31574 r32707  
    1818#include <endian.h>
    1919#include <byteswap.h>
     20#include <linux/compiler.h>
    2021
    2122#include "intel-pt-pkt-decoder.h"
     
    499500                if (!(packet->count))
    500501                        return snprintf(buf, buf_len, "%s no ip", name);
     502                __fallthrough;
    501503        case INTEL_PT_CYC:
    502504        case INTEL_PT_VMCS:
  • src/linux/universal/linux-4.9/tools/perf/util/probe-event.c

    r32569 r32707  
    619619}
    620620
     621/* Adjust symbol name and address */
     622static int post_process_probe_trace_point(struct probe_trace_point *tp,
     623                                           struct map *map, unsigned long offs)
     624{
     625        struct symbol *sym;
     626        u64 addr = tp->address + tp->offset - offs;
     627
     628        sym = map__find_symbol(map, addr);
     629        if (!sym)
     630                return -ENOENT;
     631
     632        if (strcmp(sym->name, tp->symbol)) {
     633                /* If we have no realname, use symbol for it */
     634                if (!tp->realname)
     635                        tp->realname = tp->symbol;
     636                else
     637                        free(tp->symbol);
     638                tp->symbol = strdup(sym->name);
     639                if (!tp->symbol)
     640                        return -ENOMEM;
     641        }
     642        tp->offset = addr - sym->start;
     643        tp->address -= offs;
     644
     645        return 0;
     646}
     647
     648/*
     649 * Rename DWARF symbols to ELF symbols -- gcc sometimes optimizes functions
     650 * and generate new symbols with suffixes such as .constprop.N or .isra.N
     651 * etc. Since those symbols are not recorded in DWARF, we have to find
     652 * correct generated symbols from offline ELF binary.
     653 * For online kernel or uprobes we don't need this because those are
     654 * rebased on _text, or already a section relative address.
     655 */
     656static int
     657post_process_offline_probe_trace_events(struct probe_trace_event *tevs,
     658                                        int ntevs, const char *pathname)
     659{
     660        struct map *map;
     661        unsigned long stext = 0;
     662        int i, ret = 0;
     663
     664        /* Prepare a map for offline binary */
     665        map = dso__new_map(pathname);
     666        if (!map || get_text_start_address(pathname, &stext) < 0) {
     667                pr_warning("Failed to get ELF symbols for %s\n", pathname);
     668                return -EINVAL;
     669        }
     670
     671        for (i = 0; i < ntevs; i++) {
     672                ret = post_process_probe_trace_point(&tevs[i].point,
     673                                                     map, stext);
     674                if (ret < 0)
     675                        break;
     676        }
     677        map__put(map);
     678
     679        return ret;
     680}
     681
    621682static int add_exec_to_probe_trace_events(struct probe_trace_event *tevs,
    622683                                          int ntevs, const char *exec)
     
    695756        /* Skip post process if the target is an offline kernel */
    696757        if (symbol_conf.ignore_vmlinux_buildid)
    697                 return 0;
     758                return post_process_offline_probe_trace_events(tevs, ntevs,
     759                                                symbol_conf.vmlinux_name);
    698760
    699761        reloc_sym = kernel_get_ref_reloc_sym();
  • src/linux/universal/linux-4.9/tools/perf/util/scripting-engines/Build

    r31574 r32707  
    22libperf-$(CONFIG_LIBPYTHON) += trace-event-python.o
    33
    4 CFLAGS_trace-event-perl.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-undef -Wno-switch-default
     4CFLAGS_trace-event-perl.o += $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow -Wno-nested-externs -Wno-undef -Wno-switch-default
    55
    66CFLAGS_trace-event-python.o += $(PYTHON_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow
  • src/linux/universal/linux-4.9/tools/perf/util/strfilter.c

    r31574 r32707  
    270270                if (len < 0)
    271271                        return len;
     272                __fallthrough;
    272273        case '!':
    273274                if (buf) {
  • src/linux/universal/linux-4.9/tools/perf/util/string.c

    r31574 r32707  
    2222                        if (*p)
    2323                                goto out_err;
     24
     25                        __fallthrough;
    2426                case '\0':
    2527                        return length;
  • src/linux/universal/linux-4.9/tools/perf/util/thread_map.c

    r31574 r32707  
    9494        DIR *proc;
    9595        int max_threads = 32, items, i;
    96         char path[256];
     96        char path[NAME_MAX + 1 + 6];
    9797        struct dirent *dirent, **namelist = NULL;
    9898        struct thread_map *threads = thread_map__alloc(max_threads);
Note: See TracChangeset for help on using the changeset viewer.