Faxina no sysfs: correção no kernel Linux evita vazamento em drivers térmicos Intel

Arrumando a casa: correção no driver térmico da Intel evita sujeira no kernel Linux!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • Fim da bagunça: O patch resolve um problema de vazamento de objetos no sistema de arquivos virtual (sysfs) que ocorria quando o driver térmico da Intel falhava ao inicializar.
  • Ordem dos fatores: O erro acontecia porque o driver ativava o recurso FIVR mas não o removia se o recurso seguinte (DLVR) apresentasse erro, deixando estruturas órfãs na memória.
  • Gerenciamento manual: A correção destaca a natureza do desenvolvimento em C no kernel, onde cada passo de alocação de recursos exige um "plano de desfazer" explícito para evitar falhas.
  • Preparação para o 7.0: A mudança faz parte do ciclo de polimento para o lançamento do Linux 7.0, garantindo que drivers existentes estejam robustos para a nova versão.
  • Estabilidade: Embora sutil, o bug poderia impedir o recarregamento correto de drivers e confundir ferramentas de monitoramento de hardware em sistemas Intel.

Linus Torvalds integrou hoje (18 de fevereiro de 2026) uma correção pontual, mas importante, enviada por Rafael Wysocki para o subsistema de gerenciamento térmico do kernel. O patch resolve um problema no driver Intel int340x, especificamente no tratamento de falhas durante a inicialização de reguladores de voltagem.

O bug, identificado pelo desenvolvedor Kaushlendra Kumar, causava um “vazamento” de grupos no sysfs (a interface do sistema de arquivos virtual do kernel) quando o registro de um componente falhava, deixando para trás estruturas de diretórios órfãs que deveriam ter sido removidas.

Para o iniciante: quem esqueceu a louça na mesa?

Para entender esse erro, imagine que o driver do kernel é um garçom arrumando uma mesa de jantar (o sistema). Ele tem duas tarefas em sequência:

  1. Colocar os pratos (Configurar o FIVR).
  2. Colocar os copos (Configurar o DLVR).

No código antigo, o garçom colocava os pratos com sucesso. Mas, se ao tentar colocar os copos ele tropeçasse e quebrasse tudo (erro de registro), ele entrava em pânico e saía correndo da sala, deixando os pratos lá na mesa para sempre, ocupando espaço inutilmente.

A correção ensina “bons modos” ao garçom: se ele não conseguir colocar os copos, ele deve recolher os pratos que já tinha colocado antes de ir embora, deixando a mesa limpa como encontrou. Em termos técnicos, isso evita que o sistema fique “sujo” com configurações parciais que não funcionam.

Detalhes técnicos da correção

A falha estava localizada no arquivo drivers/thermal/intel/int340x_thermal/processor_thermal_rfim.c, dentro da função proc_thermal_rfim_add.

Este driver lida com dois recursos de gerenciamento de energia e térmica dos processadores Intel modernos:

  • FIVR: Fully Integrated Voltage Regulator.
  • DLVR: Digital Linear Voltage Regulator.

O código original tentava criar o grupo sysfs para o DLVR logo após ter criado o do FIVR. Se a chamada sysfs_create_group para o DLVR falhasse (retornando um código de erro), a função retornava imediatamente. Isso deixava o grupo do FIVR, que foi criado linhas antes, registrado no sistema sem um caminho de saída limpo.

O patch introduz uma verificação no caminho de erro:

C
if (ret) {
    if (proc_priv->mmio_feature_mask & PROC_THERMAL_FEATURE_FIVR)
        sysfs_remove_group(&pdev->dev.kobj, &fivr_attribute_group);
    return ret;
}

Agora, se o DLVR falhar, o kernel verifica se o FIVR estava ativo e o remove explicitamente antes de abortar a operação.

Curiosidades e bastidores da discussão

Este tipo de bug é muito comum em programação em C, onde o gerenciamento de recursos é manual. Em linguagens de alto nível, “destrutores” automáticos resolveriam isso, mas no kernel, o desenvolvedor precisa lembrar de desfazer cada passo anterior em caso de erro (o famoso padrão goto error_handling).

O patch faz parte da preparação para o Linux 7.0-rc1, indicando que a comunidade está polindo drivers existentes para garantir estabilidade na próxima grande versão do kernel. Embora o impacto não seja catastrófico (não é um vazamento de memória RAM massivo), vazamentos de objetos no sysfs podem confundir ferramentas de monitoramento de espaço de usuário e impedir que o driver seja recarregado corretamente.

Status de lançamento

O patch fa2827e foi mesclado na árvore principal (master) em 18 de fevereiro de 2026.

  • Status atual: Integrado ao kernel principal.
  • Disponibilidade: Estará presente na versão final do Linux 7.0 e provavelmente será portado para versões estáveis anteriores que contenham este driver (backport).
  • Hardware afetado: Laptops e dispositivos embarcados utilizando processadores Intel com suporte a int340x thermal (geralmente gerações mais recentes com gerenciamento avançado de voltagem).
Compartilhe este artigo
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre GNU/Linux, Software Livre e Código Aberto, dedica-se a descomplicar o universo tecnológico para entusiastas e profissionais. Seu foco é em notícias, tutoriais e análises aprofundadas, promovendo o conhecimento e a liberdade digital no Brasil.